I'm Funding Ladybird Because I Can't Fund Firefox
More from Blog | jackkelly.name
I’ve been very impressed by the Cosmopolitan Libc project and the αcτµαlly pδrταblε εxεcµταblε file format that makes it all possible. Building a crazy polyglot binary that works on two architectures and half-a-dozen operating systems is one thing, but Mozilla’s Llamafile project showed that APEs were more than just a cool hack: it’s stunning...
Haskell’s expressive type system means that type signatures can carry a lot of information. Haskell’s polymorphism means that you sometime write a function that works across an enormous range of types, and are often left wondering “what do I actually call my variables?”. It is often the case that there’s nothing to say beyond “this variable is a...
I have travelled a lot this year, and after yet another trip where I lugged too many things around, I’ve been thinking about ways to cut back. The classic guide for this is onebag.com, which covers a very interesting mix of techniques and some carefully-chosen lightweight gear that will take you to the farthest corners of the map. Perma-nomad...
It’s really easy to misuse lazy I/O (e.g., hGetContents) in nontrivial Haskell programs. You can accidentally close a Handle before the computation which reads from it has been forced, and it’s hard to predict exactly when data will be produced or consumed by IO actions. Streaming libraries in Haskell avoid these problems by explicitly...
I have a nascent side project which is intended to participate in a bootstrap chain. This means it shouldn’t depend on too many things, that the transitive closure of its build dependencies must also be small, and at no point in the process should any build depend on an opaque binary blob. Choices on the language side are pretty constrained. Zig...