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👆2I 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.
WOW!
What did you say to the intern when you realized what you did?
Were you calm and collected; did you tell your superior? That’s amzing story.
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👍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…
@stefan.van.den.oord https://fazzone.github.io/autochrome.html might be interesting to look at
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)…
Thanks!
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
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?
We’re on Caddy here and happy with it so far.
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 🙂
also docs around performance tuning for caddy is not as great as nginx, if you ignore the "vw golf caddy performance tuning" search hits
nginx is a safe bet I think
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
since babashka supports httpkit now, I could add that to my benchmark just for giggles
Might be a little bit slower since the ring handler is interpreted, but worth a try :)
You can tweak memory with bb -Xmx<something>
if that's a concern on your server
Some people use S3 for hosting and serving, would you consider that too? (not that I use S3)
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 🙂
no problemo 🙂
What is your performance target?
don't have any explicit targets, testing with 100 concurrent requests for a 3MB file, comparing the 95th percentile between the softwares
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
@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
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.
Ah. 🙂
Good story!