@jamesacowling But "strong opinions that I type out to myself, playing devil's advocate, to find my actual informed stance before communicating it with others" isn't as pithy!
https://t.co/mbzlm2Dnak
More research into limited scope storage systems (TigerBeetle for XYZ) could be interesting, too. Even if it was just to showcase extra options out there for specific domains.
Related, but people often get these wrong (too):
- The fallacy of composition
- The fallacy of division
For example, your house is “safe” because you build with “safe” bricks.
Or, that to build a “safe” house your bricks should be “safe”.
In fact, a house is “safe” when it is designed to be “safe” (even if/when the bricks are not)!
Correctness is a design problem.
And this should not be new to us as programmers.
It’s the end to end principle. Probably the most important principle in designing distributed systems.
And how resilient systems like the Internet work (a reliable system out of unreliable parts—being more reliable than a system that is only reliable if all the parts are reliable).
For these reasons, this is also the basis on which TigerBeetle was designed:
To be safe, even if a programmer gets some logic wrong (assertions will trip), or if the filesystem writes/reads to/from the wrong sector, or disk firmware lies about fsync (cf. Protocol-Aware Recovery for Consensus-Based Storage).
In other words, correctness starts when you lift up your eyes:
- You don’t “rewrite” for correctness (too late).
- You don’t “not allocate” for correctness (not enough).
- You don’t even “test” for correctness (again, too late).
Rather, before all these (and more than these!) you treat correctness as an end to end systems problem:
You “design” for correctness.
This is why PR diff speed matters. This isn't a dunk on GitHub specifically, because GitLab, Forgejo, etc. are all equal or worse. But this is the kind of thing that drives me nuts, because this is a core workflow and its slow enough I literally take my hands off the keyboard.
Btw, when my mouse jiggles on the left, its because the page is literally skipping frames and I'm instinctively shaking my mouse to see if it'll respond. And on the keyboard input you can literally here me finish typing before a letter even shows up.
For someone like me who is an expert at these tools, my brain navigates the tool dramatically faster than it can keep up, and that is not good. The tool should not get in the way.
Some people have been saying this since the beginning, that the only way for Zig to succeed is to get a big tech patron.
By now they've been saying this for almost 10 years :^)
People just don't realize how efficient a tightly run open source project can be.
So yeah we do need donations, but so far things have been working out.
@seanparsons@lemire The approach goes:
- Per-file build constraints (eg: foo_amd64.go)
- Runtime/init dispatch on available CPU features via https://t.co/ieVe4Hyk1Y
@Mappletons I don't doubt growth has triggered many of the issues, but those graphs are misleading.
Without a labeled y-axis, they tell us nothing. 2023's baseline wasn't zero, and without labels it's impossible to tell whether the axis is linear.
@matthewisabel@mitchellh Are atomic (or at least automated) stack merges on the roadmap? The docs state that each PR needs merged in-order:
- Merge bottom
- Stack auto-rebases
- Wait for re-triggered CI
- Repeat
If the point is to ease code review, baby sitting 5 independent merges is a regression :\