Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,827 posts.
Fifty problems with standard web APIs in 2025
Recently, I made a free game . It's a little mystery investigation game which I was inspired to write after enjoying games like Case of the Golden Idol , Roottrees are Dead , and Return of the Obra Dinn . I thought my UX ideas were pretty simple, so I decided to implement it in HTML5 .
I spent a year building an Android course for the elderly
This is my story about an adventure into online teaching, video course making, and choosing a hard-to-reach audience, who desperately needs help.
Curl doesn’t spew binary anymore
One of the least favorite habits of curl during all these years, I've been told, is when users forget to instruct the command line tool where to store the downloaded file and as a direct consequence, curl instead sends a lot of binary "gunk" to the terminal. The end result of that is at best … Continue reading curl…
Go 1.18 will embed source version information into binaries
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
Building a QNX 7 Desktop
Describes the process of building a QNX 7 x86_64 machine from (almost) scratch.
New for AWS Lambda – Container Image Support
February 9, 2021: Post updated with the current regional availability of container image support for AWS Lambda. With AWS Lambda, you upload your code and run it without thinking about servers. Many customers enjoy the way this works, but if you’ve invested in container tooling for your development workflows, it’s not…
Damn Cool Algorithms: Levenshtein Automata
Posted by Nick Johnson | Filed under python , tech , coding , damn-cool-algorithms
Windows 3.1 All Over Again
Reactive programming and thread sharing. Javascript, Node.js, Go, Rails, Elixir and Erlang. Rewind the clocks to Windows 3.1 In 1992 with Windows 3.1 we had this thing non-preemptive multitasking, i.e. “Cooperative Multitasking”. Cooperation is a funny term, it should actually be “Programmer Controlled Multitasking”…
Think in math, write in code (2019)
Programmers love to discuss programming languages. We not only debate their technical merits and aesthetic qualities, but they become integrated into our personal identities, along with the values and traits that we associate with them. Some even defend a form of Linguistic Determinism that thinking is confined to…
Speculating the entire x86-64 instruction set in seconds with one weird trick
As cheesy as the title sounds, I promise it cannot beat the cheesiness of the technique I’ll be telling you about in this post. The morning I saw Mark …
How Photoshop solved working with files larger than can fit into memory
Learn how Adobe managed to let users edit even the biggest files on the web version of its iconic Photoshop app.
On mutex performance and WTF::Lock
One of the things I’ve been doing this quarter is removing Gecko’s dependence on NSPR locks . Gecko’s (non-recursive) mutexes and condition variables now use platform-specific constructs, rather than indirecting through NSPR. This change makes things smaller, especially on POSIX platforms, and uses no dynamic memory…
Add an AI Code Copilot to your product using GPT-4
The AI Code Copilot has been replaced by the more powerful AI Chat feature.
I wrote a linker everyone can understand
When we wrote our assembler we made many design choices that helped us cut down on the complexity of the assembler itself. One of those decisions was to have the assembler directly output executables. That was a good choice in that it allowed us to quickly test as we were developing: once we implemented an opcode, we…
Counting Things in Python: A History
Sometimes the Pythonic way to solve a problem changes over time. As Python has evolved, so has the Pythonic way to count list items. Let’s look at...
GCC 5.1 released
Command-line optimization and target options are now streamed on a per-function basis and honored by the link-time optimizer. This change makes link-time optimization a more transparent replacement of per-file optimizations. It is now possible to build projects that require different optimization settings for…
Using Fourier Transforms to Multiply Numbers
The purpose of this article is to show you step-by-step examples of how to use the Fourier transform algorithm to multiply two numbers. The primary advantage of using fourier transforms to multiply numbers is that you can use the asymptotically much faster 'Fast Fourier Transform algorithm', to achieve better…
Best algorithms book I ever read
Best algorithms book I ever read I took a fair amount of time looking at data structures and algorithms while I was st...
Bloom filters are good for search that does not scale
Jonathan Arns's personal blog
Reverse-Engineering YouTube: Revisited
Back in 2017 I wrote an article in which I attempted to explain how YouTube works under the hood, how it serves streams to the client, and also how you can exploit that knowledge to download videos from the site. The primary goal of that write-up was to…
Programming Books You Wish You Read Earlier
There are so many programming books out there, sometimes it's hard to know what books are best. You won't find cracking the coding interview, the pragmatic programmer, or even the best python book. These are the best programming books curated from each major Software field.