Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,544 posts.
GitHub monoculture
I continue to notice an unsettling trend: the rise of the GitHub monoculture. More and more, people seem to believe that GitHub is the center of the programming universe.
Using XPath in 2023
In the latest release of htmx , you can add event listeners to elements with hx-on :
How to allocate memory
Many programmers use malloc() and free() and pay no more mind to "allocating memory", but I often find 2-20× speed improvements by rethinking memory usage, so it is something I usually want to examine when joining a distressed project.
Curate your shell history
You can make your shell history more useful by removing the typos and false starts.
How I Build Web Apps As A Freelancer
It's now roughly seven or eight years that I'm building dynamic front ends for the web. From digital art wallets to games (1, 2) and synthesizers, I've seen it all. And since my process
QOA, the Quite OK Audio Format
Audio formats typically fall into one of three categories: “lossless” , “complicated” or “bad” . After developing a simple image format last year, I tried to come up with an audio format that fits neither of these categories.
Crates.io phishing attempt
Earlier this week, an npm supply chain attack. It’s turn for crates.io, the main public repository for Rust crates (packages). The phishing e-mail looks like this: And it leads to a GitHub login pa...
A monoid is a category, a category is a monad, a monad is a monoid
In the last few months I taught three graduate mini-courses about string diagrams and graphical linear algebra – at Phd Open in Warsaw, a winter school in Estonia, and a graduate school in Le…
A simple way to scale pixel art games
Previously in How to present MS-DOS screenshots , I encouraged readers to take the original pixel aspect ratio into account when showing pictures of old games. There’s also a subtler issue to consider: the blur analog display systems had.
Git ls-files is Faster Than Fd and Find
Git ls-files is up to 5 times faster than fd or find in this benchmark, but why?
How MOS 6502 illegal opcodes work
The original NMOS version of the MOS 6502, used in computers like the Commodore 64, the Apple II and the Nintendo Entertainment System (NES), is well-known for its illegal opcodes: Out of 256 possible opcodes, 151 are defined by the architecture, but many of the remaining 105 undefined opcodes do…
A quick look at OS/2's builtin virtualization
A while ago, someone on the fediverse mentioned "OS/2's virtualization features" to me. I don't remember who it was, sorry. I had the chance to take a look at this today.
LLM codegen go brrr – Parallelization with Git worktrees and tmux
If you're underwhelmed with AI coding agents or simply want to get more out of them, give parallelization a try. After seeing the results firsthand over the past month, I'm ready to call myself an evangelist. The throughput improvements are incredible, and I don't feel like I'm losing control of the codebase.
Of abusive behavior in programming communities
It is traditional for each release of perl to be announced with a form letter beginning with a quote, or epigraph, chosen by the release engineer. For Perl 5.16.0, I chose the penultimate stanza from W.H. Auden’s September 1, 1939.
Improve developer habits by showing time cost of DB queries
This is the first in a series of posts where I share a quick, easy to implement tip that I’ve found useful in my development career
Datasette Apps: Host custom HTML applications inside Datasette
Today we launched a new plugin for Datasette, datasette-apps, with this launch announcement post on the Datasette project blog. That post has the what, but I’m going to expand on …
Covariance and Contravariance
Subtypes and supertypes are a common part of modern programming. Covariance and contravariance tell us where subtypes are accepted and where supertypes are accepted in place of the original type. This shows up frequently in most of the programming most of us do, but many developers are unaware of the concepts beyond a…
Improving Emacs Isearch Usability with Transient
Emacs incremental search (isearch) has an embarrassingly rich feature set. That said, I rarely use isearch beyond its basics for the twofold reasons: There are many isearch commands that are...
Announcing the new Roslyn-powered .NET Framework Reference Source
In 2007 ScottGu's team announced they were releasing the .NET Framework source ...
Self-Enforcing Protocols
There are several ways two people can divide a piece of cake in half. One way is to find someone impartial to do it for them. This works, but it requires another person. Another way is for one person to divide the piece, and the other person to complain (to the police, a judge, or his parents) if he doesn’t think it’s…