Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,830 posts.
Finding Windows HANDLE leaks, in Chromium and others
Three years ago I found a 32 GB memory leak caused by CcmExec.exe failing to close process handles. That bug is fixed, but ever since then I have had the handles column in Windows Task Manager ena…
Organizational Debt
We all know that classic aphorism: Year comes to an end, Rust blog post press send. This is mine. There are lots of cool technical improvements to Rust that I want the project to achieve this year, and a few in particular that I’m definitely going to be putting a lot of time into. But this blog post is going to talk…
One-Process Programming Notes
This content covers my recent exploration of writing internet services, iOS apps, and macOS programs as an indie developer.
Io_uring By Example: cat, cp and a web server with io_uring
io_uring is a clever new, high-performance interface for asynchronous I/O for Linux without the drawbacks of the aio set of APIs. In this 3-part article series, we look at how to use io_uring to ge…
Single File Elixir Scripts
Experiment and debug with Elixir Scripts!
An x86 Assembler in 256 LOC (2017)
For the first “real” post in this blog, we’ll build an x86 assembler in less than 256 lines of C code. Obviously, it won’t implement every x86 instruction, but it will implement a surprisingly useful subset: data movement, control flow, integer arithmetic, bitwise operations, and function calls. We won’t be able to…
A hands-on introduction to static code analysis
An example-rich description of the architecture of static code analysis systems along with a hands-on tutorial on how to implement it.
Django 1.8 and Python 3: Complex app tutorial, end-to-end
Check out the new Django Tutorial! Learn about different environments, internationalization & localization, testing, documentation, template inheritance...!
Deno vs. Oracle: Canceling the JavaScript Trademark
Oracle is holding the JavaScript trademark hostage, and we’re pursuing legal means to #FreeJavaScript. Here’s a brief update.
Teach Yourself Scheme in Fixnum Days (2015)
A practical introduction to the programming language Scheme
Creating a pick and place control board with the RP2040
A look into the hardware design of Starfish
A Short Intro to Constraints
The essence of constraint is projection.
Fundamental Algorithms III
Three more fundamental algorithms in the series. Today, recursive permutations, subsets of the given set and variations with repetitions. Th...
An Experimental New Type Inference Scheme for Rust
While on vacation, I’ve been working on an alternate type inference scheme for rustc. (Actually, I got it 99% working on the plane, and have been slowly poking at it ever since.) This scheme simplifies the code of the type inferencer dramatically and (I think) helps to meet our intutions (as I will explain). It is…
Safe C++ proposal is not being continued
One year ago, the Safe C++ proposal was made. The goal was to add a safe subset/context into C++ that would give strong guarantees (memory safety, type safety, …
What Made Lisp Different (2002)
(This article came about in response to some questions on the LL1 mailing list. It is now incorporated in Revenge of the Nerds .) When McCarthy designed Lisp in the late 1950s, it was a radical departure from existing languages, the most important of which was Fortran . Lisp embodied nine new ideas:
Code doesn’t have to be a mess
High-level strategies to keep software simple as it evolves over time.
Designing a Language (2017)
Of course you want to design (and implement!) your own programming language! It’s fun. It’s creative. It’s empowering.
Stop validating email addresses with your complex regex
Just stop, y’all. It’s a waste of your time and your effort. Put down your Google search for an email regular expression, take a step back, and breathe.
IntelliJ IDEA and the whole IntelliJ platform migrates to Java 8
If you've already tried IntelliJ IDEA 16 EAP announced last week, you'll be glad to know that we've just released a new build.With this build IntelliJ IDEA and the whole IntelliJ platform migrates
GitHub dropped Pygments
My first-ever open source contribution, a couple years ago, was to a project called Pygments. My motivation? GitHub was displaying Racket source code poorly. Pygments didn't have a Racket lexer. GitHub was using a Scheme lexer for Racket code. The Scheme ...
git's –end-of-options Flag
The git flag I assumed was an LLM hallucination
Nim version 2.0.0 release candidate
The first release candidate for Nim version 2.0 is ready for testing.