Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 49,218 posts.
Emacs for Professionals
This is a series of brief articles aimed at teaching Emacs to computer professionals who are unfamiliar with it. I do not dwell on the basics of the user interface, which can be learned from the built-in tutorial. Instead, each article in this series will distill one very specific command line (CLI) tool or technique…
Log by time, not by count
By default, log based on fixed time intervals rather than number of messages.
GitHub Actions Pitfalls
During one of my assignments, I worked with GitHub Actions pretty much every day. I implemented workflows, created new actions, and helped people migrate their projects from jenkins to actions. As much as I like actions – and I like them a lot – there are some things that caught me off guard. I have collected some of…
Just know stuff (or, how to achieve success in a machine learning PhD)
Introduction So I recently completed my PhD in Mathematics from the University of Oxford. (Hurrah! It was so much fun.) In 2-and-a-bit years I wrote 12 papers, received 4139 GitHub stars, got 3271 Twitter followers, authored 1 textbook – doing double-duty as my thesis – and got the coveted big-tech job-offer. On…
A bug I wish I hadn't caught
When I catch a bug before release I’m usually glad, because I’ve narrowly averted ruining someone’s experience or eating their data. Today I found a bug that I wish I hadn’t caught, a bug that I wish I’d released into the wild to witness in its full glory. I found this bug in my digital card game Ring of Worlds, and…
The Future of Startup Funding
August 2010 Two years ago I wrote about what I called " a huge, unexploited opportunity in startup funding:" the growing disconnect between VCs, whose current business model requires them to invest large amounts, and a large class of startups that need less than they used to. Increasingly, startups want a couple…
The Design of the Roland Juno Syntheziser's Oscillators
A comprehensive deep dive into the design of Roland's legendary DCO
In-App Purchase Rules
Your app must use Apple’s in-app-purchase (IAP) system for all purchases made in the app.
Nix wrote half of my debugger
A few days ago I wrote about Rewind VM, a deterministic VM where every run of a Nix build is a pure function of its inputs, thread schedule included! I have been using it to find, reproduce and solve numerous race conditions in Nix builds, but it’s been making me feel a little crazy. What is this superpower, and why…
The One Billion Row Challenge in CUDA
On my journey to learn CUDA, I decided to tackle the One Billion Row Challenge with it.
SSH quoting
A while back there was a thread on one of our company mailing lists about SSH quoting, and I posted a long answer to it. Since then a few people have asked me questions that caused me to reach for it, so I thought it might be helpful if I …
Taking over 60k spyware user accounts with SQL injection
Serverless means it's secure, right?
Open-source self-hosted comments systems for static websites
A side-by-side comparison of open-source, self-hosted commenting systems for static sites — so choosing one doesn’t mean opening every repository yourself. Stars, open issues and last-commit dates are refreshed daily. Missing a system, or a column you need? Leave a comment below or open an issue.
Building the Largest Ship in the World
The Maersk Triple E is the largest ship on the planet, the pride and joy of the largest shipping company in the world. The ship was a huge hit with the public last year when it docked ...
Using USB-VGA dongles as SDR transmitter
Yesterday, during OsmoDevCon 2018, Steve Markgraf released osmo-fl2k, a new Osmocom member project which enables the use of FL2000 USB-VGA adapters as ultra-low-cost SDR transmitters. How does it wor
Code-GUI bidirectional editing via LSP
I built a small proof-of-concept for a system that enables real-time bidirectional editing between any modern code editor and a GUI, enabled by an LSP1 server. Code-based CAD I like working on small projects at home that benefit from CAD. I’m also a programmer with a personal development environment that I’ve spent…
Janet for Mortals (2023)
I wrote a book. It’s called Janet for Mortals, and it’s free, and it’s on the internet, and you can read it right now. And you should read it right now, instead of reading this blog post, because this blog post is not very interesting if you haven’t read the book. Heck, this blog post is not very interesting even if…
A peek under Bitcoin’s hood: Writing a client that can create a transaction
Sam Lewis is a Melbourne based geek who develops cool bits of code. He likes data, embedded stuff and AFL.
Book Review: A Philosophy of Software Design (2020)
View this page on my new site This review is largely in response to the article "It's probably time to stop recommending Clean Code", and the ensuing Redd...
Improving Shell Workflows with Fzf
I show how I improved four of my shell workflows to parameter-less commands with the help of fzf.
OnionShare 2 adds anonymous dropboxes
After nearly a year of work from a growing community of developers, designers, and translators, I'm excited that OnionShare 2 is finally ready. You can download it from onionshare.org. OnionShare is an open source tool for securely and anonymously sending and receiving files using Tor onion services. It
Redis Geo
Note (version) : I wrote this originally as a Redis module in early 2014, then Redis included a modified version directly into official Redis releases in 2016. Note (implementation) : The implementation included with Redis 3.2+ changed some parameter orderings from my original (intentional, well-thought-out) design…
Linux is an interpreter
And why you would want to exec a cpio
The ‘here is’ key
The Lear Siegler ADM-3A terminal is a very important artefact in computing history.
Cracking the Adventure Time cipher
I recently read “Adventure Time: Volume 1”, a comic book based on the smart animated series of the same name. In the comic, I found some odd looking messages at the …