Thanks for the nice article. The SQLite docs that explain this bug are emphatic about how utterly rare, even irreproducible it is. How, then, was it found, one wonders?
Thousands of cheeses, each of which is a unique experience. Heck, even the serving temperature completely alters the experience. Next: wines, charcuterie, ...
Pity the fool who can't taste the difference between any of these.
The compiler is being actively worked on by Adam and his team at Nectry, but unfortunately those developments are not currently being backported to the open source repo. I'm fairly confident this will happen eventually.
I maintain my own private fork with some small modifications which I started polishing up this week to release it for a talk that I'm preparing.
The project I'm using this on is an ecommerce site [0] written in 100% Ur/Web with a hand-rolled backend ERP system written in PHP (not by me) which I am slowly replacing bits of with new Ur/Web code. As of today, we have 22223 lines of Ur/Web code, weighing in at 701 KiB.
One reason I love writing production code in Ur/Web is that LLMs are incapable of synthesising something even remotely resembling it. Keeps me on my toes.
I am a sucker for underdog software (anyone else using Ur/Web in prod?) and I was instantly infatuated when I first came across Fossil. I wasted a week of my life trying to fall in love with it but actually realising all the little things that make Git awesome. Beautiful diff output. Staging changes in hunks. Fixup commits, interactive rebase with autosquash. Git lets you treat not just your code as art but also your code evolution. In Fossil you don't get to clean up your branch into a coherent story. No, every path to and from dead-end blood-soaked alleys stays with you forever, unless you just don't commit anything until you have smoothed over all the details. No committing and pushing your WIP code to keep it safe (I mean you can, but you cannot then ever undo that). I'm sure other people feel very differently and that's ok. But Git's UX is on a completely different planet, imho.
Yes, I am someone who, when my branch code-wise is ready to be merged, I will still take however long it needs to clean the history into a coherent, bisectable set of patches.
To be fair, Fossil is kinda cool in many ways, but it's a downgrade for my dev UX. Also the configuration interface for access controls and suchlike to the repo server, issue tracker, etc. is... eccentric. I wouldn't be surprised to find some incorrectly/unsafely configured repos in the wild.
That is true! The system I mentioned above, which I had to refactor, was written in the worst Haskell that I've ever seen and nobody at the company dared touch it with a 10-foot pole.
> Not sure if tools and technologies can solve accidental complexity.
... and then say
> For me, consistent systematic naming and prefixes/suffixes to make names unique are a hint that a person is thinking about this or has experience with maintaining old systems. This has a huge effect on how well you can search, analyze, find usages, understand, replace, change.
I have battle scars from refactoring legacy systems where my predecessors did _not_ consistently or uniquely name things and I would not have seen it through without my sidekick, the type checker!
Getting AI vibes from this article? It is strangely repetitive and meandering. Also tell-tale "It's not X, it's Y" and sort of unspecific mostly.
Also, why would you have billions of open transactions? That is the implication I got from the article as someone who doesn't know anything about Postgres.
(I use SQLite and perhaps I have Stockholm syndrome, but I like how it pushes you towards a design with small transactions, ideally entirely database-side.)
Very cool! Although this part feels a bit hand-wavy (or shall I say, AI-wand-wavy?)
<quote>
Machine learning decode: building on our previous work23, here we apply machine-learning-based decode (see section ‘Reading and decoding data’) to account for noise and inter-voxel cross-talk.
</quote>
+1. This is 100% hallucinated. Creds: My first programming language was GRAFIS CAD Fachsprache, a parametric pattern drafting software for garments, which incidentally powers our business (https:/liepelt.design—the website and intranet of which we are developing in ur/web btw just to clarify the geek factor!)