Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,540 posts.
24 days of Rust – Rayon
Let me start this article with a confession: I suck at writing parallel code. I have only a vague idea about mutexes, locks and other low level primitives for handling data between threads. And since I work mostly with Python, I tend to use multiprocessing (if I bother to parallelize at all) rather than threads…
WASM SYNTH, or, how music taught me the beauty of math
TL;DR: I built a synthesizer using C++ and WebAssembly. Check out the finished product (browser compatibility table), the source, watch the talk or keep on reading the article! The Presentation Intr
These years in Common Lisp: 2023-2024 in review
This is a personal pick of the most interesting projects, tools, libraries and articles that popped-up in Common Lisp land in the last two years.Newcomers might not realize how the Common Lisp ecosystem, though stable in many ways, actually evolves, sharpens, tries new solutions, proposes new tools, ships new…
Matrices and Graph
The single most undervalued fact of linear algebra: matrices are graphs, and graphs are matrices
Finding bugs in Haskell code by proving it
Last week, I wrote a small nifty tool called bisect-binary , which semi-automates answering the question “To what extent can I fill this file up with zeroes and still have it working”. I wrote it it in Haskell, and part of the Haskell code, in the Intervals.hs module, is a data structure for “subsets of a file”…
Metronomes in JavaScript
Monica Dinculescu's blog
Building a BFT JSON CRDT
CRDTs are a family of data structures that are designed to be replicated across multiple computers without needing to worry about conflicts when people write data to the same place.
Clearing up some things about LinkedIn mobile’s move from Rails to node.js
There’s an article on highscalability that’s talking about the move from Rails to node.js (for completeness: its sister discussion on Hacker
Using a self-rewriting README powered by GitHub Actions to track TILs
I’ve started tracking TILs—Today I Learneds—inspired by this five-year-and-counting collection by Josh Branchaud on GitHub (found via Hacker News). I’m keeping mine in GitHub too, and using GitHub Actions to …
Fantastic Learning Resources
People sometimes ask me: Alex, how do I learn X?. This article is a compilation of advice I usually give. This is things that worked for me rather than the most awesome things on earth. I do consider every item on the list to be fantastic though, and I am forever grateful to people putting these resources together.
Building games through natural language using OpenAI’s code-DaVinci model
TL;DR: OpenAI has a new code generating model that’s improved in a number of ways and can handle nearly two times as much text (4,000 tokens.) I built several small games and applications without t…
Building Bauble
I made something that I think is pretty neat, and I want to tell you about it. This is a little hot air balloon made out of alternating layers of brass and bronze that stack together with these angled facets: It’s 3D printed, sort of, but it really is solid metal – it’s not a metallic filament. It’s made by “lost wax…
My Favorite Programming, Computer and Science Books: Part Five
Hi everyone! Here's part five of my favorite programming, computer and science books. If you're just joining, please see part one, part two, part three and part four. I've been collecting and researching science, math, physics, programming books since 2001 or 2002, so it's been close to 15 years of book research…
Twelve LaTeX packages to get your paper accepted (2017)
(with Abhik Roychoydhury and Aditya Kanade) Why do some people get all their papers accepted, and others do not? You may already know th...
Git from the Bottom Up (2008)
Welcome to the world of Git. I hope this document will help to advance your understanding of this powerful content tracking system, and reveal a bit of the simplicity underlying it — however dizzying its array of options may seem from the outside.
Virtual Memory with 256 Bytes of RAM
I just finished updating my C compiler and minimal CPU specification to include virtual memory. The process of adding virtual memory support to a CPU, a kernel, and a compiler toolchain has made me realize that there is a lack of good explanations for how all of these parts fit together. I also realized that a…
Setenv Is Not Thread Safe and C Doesn't Want to Fix It
You can't safely use the C setenv() or unsetenv() functions in a program that uses threads. Those functions modify global state, and can cause other threads calling getenv() to crash. This also causes crashes in other languages that use those C standard library functions, such as Go's os.Setenv ( Go issue ) and Rust's…
Recent Performance Improvements in Function Calls in CPython
How costly it is to call functions and builtins in your python code? Does inlining help? How have the recent CPython releases improved performance in these areas?
Programmers should never trust anyone, not even themselves
Programmers should be paranoid.
I don't always use LaTeX, but when I do, I compile to HTML (2013)
Since I haven't published anything in almost two months, let me jot down one thought that has come to mind frequently over the past few months.
The compiler is your best friend
The compiler is a powerful tool, yet many developers have a painful relationship with it. Can we do better?
No-Panic Rust: A Nice Technique for Systems Programming
Can Rust replace C? This is a question that has been on my mind for many years,as I created and now am tech lead forupb, a C libraryfor Protocol Buffers. Th...
The program is the database is the interface
That transfer to John Smith isn't covered by any of the tagging rules. So I select the date, switch to the editor window and paste the date into the date->tag definition:
Inside Rust's std and parking_lot mutexes – who wins?
A teardown of Rust's mutex internals plus real benchmarks so you know when to choose std or parking_lot.