Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,544 posts.
FogBugz goes dark
Today I got an email titled ‘Your Manuscript Account Balance’ which said: Your Manuscript account is now in arrears in the amount of $31.25. Use this link to specify a credit card for y…
Ideas for Game Clones to Code (2012)
So you know a little bit about programming (perhaps you've read the free book, "Invent Your Own Computer Games with Python" , a free programming book for beginners whose author shamelessly plugs at every chance) but you want to get better at coding. You can't seem to find any open source projects that are at your…
Hotpatching a C Function on x86
In this post I’m going to do a silly, but interesting, exercise that should never be done in any program that actually matters. I’m going write a program that changes one of its function definitions while it’s actively running and using that function. Unlike last time , this won’t involve shared libraries, but it will…
A first look at Django's new background tasks
Django 6.0 introduces a built-in background tasks framework in `django.tasks`. But don't expect to phase out Celery, Huey or other preferred solutions just yet.
Why does Sattolo's algorithm produce a permutation with exactly one cycle?
I recently had a problem where part of the solution was to do a series of pointer accesses that would walk around a chunk of memory in pseudo-random order. Sattolo's algorithm provides a solution to this because it produces a permutation of a list with exactly one cycle, which guarantees that we will reach every…
Exploring Mathematics with Matplotlib and Python
Data Visualization can be a great tool for mathematical exploration and experimentation. In this article, I show you an example using Matplotlib and Python.
How I Learned Symmetric-Key Cryptanalysis
personal web-log
The Re-Frame Guide: Front-End Architecture in Clojure
This Re-frame tutorial walks you through the main parts of Re-frame's structure, how they work together, and how they help you succeed in the long run building your single page application.
Writing a Profiler in 240 lines of pure Java
A few months back, I started writing a profiler from scratch, and the code since became the base of my profiler validation tools. The only problem with this project: I wanted to write a proper non-safepoint-biased profiler from scratch. This … Continue reading →
Lessons Learned from Reading Post Mortems
I love reading postmortems. They're educational, but unlike most educational docs, they tell an entertaining story. I've spent a decent chunk of time reading postmortems at both Google and Microsoft. I haven't done any kind of formal analysis on the most common causes of bad failures (yet), but there are a handful of…
Write your own Virtual CPU in C++ (2014)
I've previously covered writing my own virtual CPU , but I never really fleshed it out and it was never a real thing... For a while, wel...
Cranelift, Part 4: A New Register Allocator
This post is the fourth part of a three-part series 1 describing work that I have been doing to improve the Cranelift compiler. In this post, I'll describe the work that went into regalloc2 , a new register allocator I developed over the past year. The allocator started as an effort to port IonMonkey's register…
Lz_xor
If LZ compression is compilation , what other instructions are useful to add? I've spent the last several years, off and on, trying to figur...
Reverse Engineering Protobuf Definitions from Compiled Binaries
How to extract raw source protobuf definitions from compiled binaries, regardless of the target architecture
Baby’s Second Garbage Collector
This blog post is meant to an iteration on the tutorial and introduction to garbage collection implementation presented in this classic blog post . We are still working with simple garbage collectors, but this time another one with a bit more complexity.
Microsoft Open Sources .NET and Mono
Miguel de Icaza's Blog
An unordered list of things I miss in Go
I like Go. I think it is a reasonable good language , and has some good qualities that makes up for its flaws. However, this doesn't mean I think the language couldn't be better, far from it.
The day I started believing in unit tests
Right after getting my degree, I was lucky to be hired into a small but decent R&D department as an embedded software engineer. My first task was to create a Unit Test project and have it run in our build pipeline after compilation. I was not particularly excited about this task, it seemed like busywork to me. I…
Things engineers believe about Web development
I wrote most of this post sometime in 2022 but I think it holds up alright in 2024 so I decided to publish it for posterity. I don’t really like doing posts like this—I’d much rather share some innocuous learnings or tips but it turns out I have opinions too 😓 Sorry! 2024-02-21: I’ve added a few reflections at the end…
JSON with Commas and Comments
Summary: JWCC is a minimal extension to the widely used JSON file format with (1) optional commas after the final element of arrays and objects and (2) C/C++ style comments. These two features make it more suitable for human-editable configuration files, without adding so many features that it’s incompatible with…