Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,540 posts.
Understanding the BM25 full text search algorithm
BM25 is a widely used algorithm for full text search. I wanted to understand how it works, so here is my attempt at understanding by re-explaining.
Writing an engineering strategy
Once you become an engineering executive, an invisible timer starts ticking in the background. Tick tick tick. At some point that timer will go off, at which point someone will rush up to you demanding an engineering strategy. It won’t be clear what they mean, but they will want it, really, really badly. If we just…
How to create 2D visibility/shadow effects for your game
How to create 2D visibility/shadow effects for your game.
Why I'm still using Python
16 years and counting...
Storing UTC is not a silver bullet
Note: this is a pretty long post. If you’re not interested in the details, the conclusion at the bottom is intended to be read in a standalone fashion. There’s also a related blog post …
The problem with Angular
In the last six months or so I talked to several prospective clients that had a problem finding front-end consultants in order to help their dev teams get a grip on their Angular projects.
Making Rust as Fast as Go
software engineer in sydney, australia
D as a C Replacement
Sircmpwn (the main developer behind the Sway Wayland compositor ) recently wrote a blog post about how he thinks Rust is not a good C replacement . I don’t know if he’d like the D programming language either, but it’s become a C replacement for me.
URL-Driven State in HTMX
Build stateful HTMX applications using URL parameters as your state store, creating naturally bookmarkable and shareable interfaces
Why Searching Through 500M Pwned Passwords Is So Quick
In the immortal words of Ricky Bobby, I wanna go fast [https://www.youtube.com/watch?v=_qJGsSuFRIg]. When I launched Pwned Passwords V2 last week [https://www.troyhunt.com/ive-just-launched-pwned-passwords-version-2/], I made it fast - real fast - and I want to talk briefly here
The Wavefunction Collapse Algorithm Explained
The Wavefunction Collapse Algorithm teaches your computer how to riff. The algorithm takes in an archetypical input, and produces procedurally-generated outputs that look like it.
The unreasonable effectiveness of f-strings and re.verbose
... in which we look at one or two ways to make life easier when working with Python regular expressions.
Implementing simple cooperative threads in C
Using setjmp(), longjmp(), and assembly to implement a simple threading system in C!
Functorio
You might have heard people say that functional programming is more academic, and real engineering is done in imperative style. I’m going to show you that real engineering is functional, and …
Anatomy of a Terminal Emulator
How does a terminal emulator work? What are ANSI escape codes? Understanding terminal internals for development, fun and mischief.
Programming in the Apocalypse
A climate change what-if Over a few beers... Growing up, I was obsessed with space. Like many tech workers, I consumed everything I could find about space and space travel. Young me was convinced we were on the verge of space travel, imagining I would live to see colonies
So you want to write your own CSV code (2014)
So You Want To Write Your Own CSV code? Fields separated by commas and rows separated by newline. Easy right? You can write the code yourself in just a few lines.
Simple Systems Have Less Downtime (2020)
The Maersk Triple-E Class container ship is 1,300 feet long, carries over 18,000 containers across 11,000 miles between Europe and Asia, and… Its entire crew can fit inside a passenger van. As a former naval architect and a current marketing consultant to startups, I found that
Log4Shell Log4j vulnerability (CVE-2021-44228) – cheat-sheet reference guide
Summary of CVE-2021-4228 (Log4Shell), trivial RCE in log4j, a common Java logging framework. Includes list of affected platforms.
One year of C
It’s now nearly a year that I started writing non-trivial amounts of C codeagain (the first sokol_gfx.h commit was on the 14-Jul-2017), so I guess it’stime f...
Zig Is Self-Hosted Now, What's Next?
Why self-host Zig?<br> For great justice, of course… and also a few more reasons actually.
That Time I Recreated Photoshop in C++
As I’m getting older I look back on all the things I’ve done as a creative developer, and I see so many cool projects! But I never wrote down any development
Performance optimization is hard because it's fundamentally a brute-force task
I’m not talking about skill, knowledge, or convincing a world focused on radical acceleration that optimization is necessary. Performance optimization is hard because it’s fundamentally a brute-force task, and there’s nothing you can do about it. This post is a bit of a rant on my frustrations with code optimization…