off-topic

https://github.com/clojurians/community-development/blob/master/Code-of-Conduct.md Clojurians Slack Community Code of Conduct. Searchable message archives are at https://clojurians-log.clojureverse.org/
Thomas Harned 2020-10-13T01:10:20.302200Z

Shooting yourself in the foot with git is a software engineering right of passage. This Summer I accidentally nuked all of my Intern’s work one week before he was to present it. I was up until midnight on a Friday reading git documentation. I was eventually able to recover it after about 5 tense hours. Likewise, I no longer copy/paste git commands without understanding what’s going on under the hood.

2👆2
2020-10-13T01:59:26.302400Z

I became hesitant to write that scale, for multiple reasons: • It’s not so simple, because it’s not on a 1 dimension axis. • It implies judging existing frameworks / libraries to place them on the scale. Doing so might start a flame war which would distract me from my work on Vrac. • It implies that I would know what I am doing, which is not granted.

tio 2020-10-13T06:35:53.303200Z

WOW!

tio 2020-10-13T06:36:05.303400Z

What did you say to the intern when you realized what you did?

tio 2020-10-13T06:36:20.303600Z

Were you calm and collected; did you tell your superior? That’s amzing story.

2020-10-13T09:44:50.304Z

Declarativeness is mostly about being able to clearly define a particular problem space. I think it's reasonable to say html is a declarative solution to the document representation problem, and react.js is a declarative solution to the document mutation problem. Declarativeness failures happen when the problem space becomes too broad or too vague, then your elegant DSL ends up bloated with turing-complete escape hatches. A modern webapp is considerably more complex than a document, html is not an acceptable declarative solution in that problem space, hence javascript. react.js kind of embraces that mismatch and still requires a fair amount of imperative logic to do anything useful.

1👍
Stefan 2020-10-13T11:16:18.305700Z

Is there a tool out there that can do diffs and 3-way merges for version control that understands lisp? That would be very useful for git et al. I feel…

borkdude 2020-10-13T11:16:53.306Z

@stefan.van.den.oord https://fazzone.github.io/autochrome.html might be interesting to look at

Stefan 2020-10-13T11:18:50.306700Z

Yes that’s indeed the right direction. I’ll see if I can integrate it with git diff somehow (and if that’s fast enough)…

Stefan 2020-10-13T11:18:55.306900Z

Thanks!

borkdude 2020-10-13T11:19:25.307500Z

There was an attempt in #autochrome-github by Martin Klepsch to make this into a Github action, I think the project isn't active anymore

victorb 2020-10-13T13:59:04.309900Z

not related to Clojure so hope I'm in the right place. Looking at deciding what HTTP server to use for bunch of static files of different sizes. Doing a small benchmark between caddy, nginx and apache as those are the ones I've used before. What other HTTP servers are people using for static file hosting?

vncz 2020-10-13T14:00:03.310Z

We’re on Caddy here and happy with it so far.

victorb 2020-10-13T14:01:41.310200Z

Cheers, already got that one in my list, performance seems not-as-good as nginx, at a glance (with default + custom configs) but only for files greater than 100kb. Otherwise the config syntax is very nice so +1 with being happy with Caddy 🙂

victorb 2020-10-13T14:02:32.310400Z

also docs around performance tuning for caddy is not as great as nginx, if you ignore the "vw golf caddy performance tuning" search hits

borkdude 2020-10-13T14:04:59.310600Z

nginx is a safe bet I think

victorb 2020-10-13T14:05:47.310800Z

yeah, for sure, it's what I've used most of the times before, both at scale and hobby usage. But looking to see if I'm missing some alternatives that could blow the "big 3" out of the water

victorb 2020-10-13T14:06:33.311300Z

since babashka supports httpkit now, I could add that to my benchmark just for giggles

borkdude 2020-10-13T14:11:35.311500Z

Might be a little bit slower since the ring handler is interpreted, but worth a try :)

borkdude 2020-10-13T14:12:12.311800Z

You can tweak memory with bb -Xmx<something> if that's a concern on your server

1🙏
dharrigan 2020-10-13T14:22:32.312100Z

Some people use S3 for hosting and serving, would you consider that too? (not that I use S3)

victorb 2020-10-13T14:23:40.312300Z

no, looking for self-hosted software. Mainly trying to keep the data to one location but I also don't want to have additional costs just because of "Premium Traffic(TM)" or whatever they call it, but thanks for the recommendation 🙂

dharrigan 2020-10-13T14:25:29.312600Z

no problemo 🙂

dominicm 2020-10-13T14:28:46.312800Z

What is your performance target?

victorb 2020-10-13T14:51:20.313Z

don't have any explicit targets, testing with 100 concurrent requests for a 3MB file, comparing the 95th percentile between the softwares

jumar 2020-10-13T16:21:09.315200Z

It’s usually wise to employ CDN like CloudFront that can save you some costs and headache and provide better performance for your users - unless it’s something like intranet app

victorb 2020-10-13T16:54:46.315400Z

@jumar thanks for the recommendation! Still looking for software I can run myself, not cloud solutions 🙂 Trying to keep the data in one location (not spread out across edge nodes) and want to retain the privacy of my users, so no 3rd parties

Thomas Harned 2020-10-13T21:23:36.319800Z

Fortunately it happened late on a Friday so everyone was already signed off for the weekend. I sent an email that there was an “issue” I was working to resolve and left it at that. After I fixed it, I told them the whole story on Monday and everyone had a good laugh at my expense.

tio 2020-10-13T22:03:42.320Z

Ah. 🙂

tio 2020-10-13T22:03:45.320200Z

Good story!