Some notes on local-first development
How local-first software works: sync engines, CRDTs, replicated databases, developer tools, architecture tradeoffs, and when to use each approach.
The latest blog posts to take off on Hacker News. 3,824 posts.
How local-first software works: sync engines, CRDTs, replicated databases, developer tools, architecture tradeoffs, and when to use each approach.
“Margin collapse” has a dastardly reputation, one of the trickier parts of CSS. Fortunately, it gets a lot easier once you learn a few rules! In this tutorial, we take a deep dive into the governing principles, and learn how to use them to our advantage.
We launched the Datasette Cloud blog today. The Datasette Cloud site itself is a Django app - it uses Django and PostgreSQL to manage accounts, teams and soon billing and payments, then launches dedicated containers running Datasette for each customer.
I received a letter from a reader the other day. It was handwritten in crabbed penmanship so that it was very difficult to read. Nevertheless, I tried to make it out just in case it might prove to be important.
All large numbers are large, but some are larger than others
Every release has a killer feature. Qt 6.6 features the opposite - staying alive. This blog post describes work to make Qt clients more robust and seemlessly migrate between compositors, providing resistance against compositor crashes and more.
The Case for LLMs as Hallucination Engines
Yesterday I was on a train. I clicked on a link and my browser loaded a long article for me to read. Halfway through reading it, the train went into a tunnel and I lost signal. That meant I couldn't see the images on the other half of the page for the rest of the journey. I had a sea of broken images. Even though the…
Ready, set , begin… (you don’t know how hard I tried to resist to making that pun). We begin our inquiry with the theory of sets. Set theory and category theory share many similarities. We can view category theory as a generalization of set theory. That is, it’s meant to describe the same thing as set theory…
Reasons to not use your own domain for email on Eduardo Bautista's blog.
The software industry is learning once again that complexity kills
The Book8088 is an interesting little machine. It is essentially a 1980's computer in a laptop form factor. With apologies to Sergey Kiselev...
Facets of Prolog
Prompted by Keith Frankish's recent streamed discussion of LLM intentionality on YouTube , there's a particular idea I wanted to share which...
I've experienced first-hand how using UUID hurts the usability of computer systems, and I want you to understand why you certainly don't need it.
Summary In this post I’ll go into detail about how, during my contracting work for Shimmer Industries (a company founded by Eskil Steenberg which is focused on developing a real-time lighting designing software), I worked on a piece of software which enabled us to use the MacOS and iOS APIs using a custom C API…
Nvidia is an amazing company that has executed a contrarian vision for decades, and has rightly become one of the most valuable corporations on the planet thanks to its central role in the AI revol…
Two communicating processes on a single machine have a few options. They can use regular TCP sockets, UDP sockets, unix domain sockets, or shared memory. A recent project I was working on used Node…
If you ever tried to learn how the Harris corner detection algorithm works, you might have noticed that the process is not intuitive at all. First, you start with an energy function, approximate it using Taylor approximation, get a matrix from that, then find the eigenvalues of that matrix, etc. But when you come to…
Let's write the docs like it's 2023.
I've got a reputation at work as being a skilled debugger. It's a frequent occurrence that the weird stuff lands on my desk [1] after it goes through another skilled engineer or two. To say my job is substantially "debug the weird shit" would not be an understatement and I'm here for it.
I've been floating ways to simplify the memory management story in Rust around the core team lately. Memory management is a contentious topic, since we've worked hard to get to the current state of things, and with the push toward stability lately, there is a (quite reasonable!) resistance to any changes at this…
HDMI is a relatively modern video connector we take for granted on modern PCs and monitors. Now vintage PCs can join in the fun too with a native connection to modern HDMI monitors without any additional adapter. (A production run has been made for this board. You can contact explit[at]mailbox[dot]org if you wish to…
Some notes about the UK air traffic control meltdown
Microsoft announces vague changes to the default web browser setting for Windows Insider. Nothing but wishful thinking. Still force-opens web links in Edge.
A discussion of the minimal version of Make included in 'The AWK Programming Language', as well as a Python port of the AWK program.
Detailed explanation on how RISC-V boot process works and what role SBI has in the RISC-V software stack. Concrete example with OpenSBI.
How to speed up a ubenchmark 300x Static Hermes: How to Speed Up a Micro-benchmark by 300x Without Cheating This is th...