Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,545 posts.
Waitin' (on Leiningen)
UPDATE: This post now contains obsolete information. Please read the new ClojureScript Quick Start instead
Optimization story: Switching from GMP to gcc's __int128 reduced run time by 95%
A flash of intuition while trying to find a way to lend brian d foy a hand in his search for excellent numbers helped me reduce run time by 95 percent.
Understanding how AES encryption works
Deepen your understanding of AES implementation using golang.
Zero point leet seconds (2018)
While calculating certain round-trip times, here is a number I came across that is surprisingly memorable: It takes light 0.1337 seconds to travel the length of the Earth's equator via vacuum or air. Let me repeat that. It takes light "zero point leet" seconds to travel once around the equator.
Millet, a Language Server for SML
A language server for Standard ML.
Amiga C Tutorial (2022)
Amiga C Tutorial
A Graphical Introduction to Lattices
Here is my (extended) family tree: Everyone in the tree shares at least one common ancestor and at least one common descendant. This ...
TLA+ Modeling Tips
Model minimalistically Start from a tiny core, and always keep a working model as you extend. Your default should be omission. Add a compone...
PostgreSQL and SQL:2023
In a previous article, I introduced what is new in SQL:2023. Now I want to show the status of SQL:2023 support in PostgreSQL. See the previous article for details on these features.
Way too many ways to wait on a child process with a timeout
I often need to launch a program in the terminal in a retry loop. Maybe because it's flaky, or because it tries to contact a remote service that is not available. A few scenarios:
Bill Gates's Personal Easter Eggs in 8 Bit BASIC (2008)
If you type “WAIT6502,1″ into a Commodore PET with BASIC V2 (1979), it will show the string “MICROSOFT!” at the top left corner of the screen. Legend has it Bill Gates himself inserted this easter egg “after he had had an argument with Commodore founder Jack Tramiel”, “just in case Commodore ever…
Why I'm Excited About Native CSS Variables
A few weeks ago CSS variables—more accurately known as CSS Custom Properties—shipped in Chrome Canary behind the Experimental Web Platform Features flag.[1] When Chrome engineer Addy Osmani first tweeted about the release, he was met with a surprising amount of negativity, hostility, and skepticism. At least, it was…
Crafting formulas: Lambdas all the way down
We build complex mathematical formulas bottom-up using pure lambda calculus. Includes instructions of how to translate Taylor series and other approximations to lambda terms.
Webserver Back End with Orleans Actor System, Dotnet Core and Server-Side Redux
A radically different web server architecture that turned my twenty years of experience in building websites upside down
Make a Doom level, part 1: the basics
I love Doom. Or, well, I love Doom 2, which is the game we actually had when I was nostalgia years old. I love the aesthetic — pixely in a 3D(ish) environment, and consistent in a way that meshes together really well. The classic levels are abstract (occasionally too abstract), but still detailed enough to feel like…
An almost perfect real-world hack
Almost immediately after we bought our house I received a letter in the mail. The local school district was appealing the tax assessment of my house. The issue in question was the value of my property in 2002 (don’t ask, it’s a long story, and a silly law). My property tax is some percentage of the 2002 value of my…
Fun with NFL Stats, Bokeh, and Pandas
An exploration of NFL play-by-play statistics with Bokeh and Pandas.
Building a command line tool to design a farm layout in Stardew Valley
This week's post will cover a command line tool that helps you play the video game Stardew Valley .
High-performance, exactly-once, failure-oblivious distributed programming (2018)
This is one post in a series about programming models and languages for distributed computing that I’m writing as part of my history of distributed programming techniques.Relevant ReadingTrill: A h...
How to Implement an FPS Counter
TL;DR: Don’t base your FPS calculations on a specific number of frames. Instead, maintain a rolling window of frames that happened during the last second. Use precise timers. Read on for more details.
Echo/printf to write images in 5 LoC with zero libraries or headersnetpbm
tl;dr: With the Netpbm file formats, it’s trivial to output pixels using nothing but text based IO
Zigzag Decoding with AVX-512
I’ve been working on speeding up AVX-512 vertex decoding in meshoptimizer recently; in the process I stumbled upon two optimizations that I did not end up using but I thought they might be fun to write about! The optimizations that actually made it in require some higher level background / explanations that will have…
Formulog: ML + Datalog + SMT
If you read a description of a static analysis in a paper, what might you find? There’ll be some cute model of a language. Maybe some inference rules describing the analysis itself, but those rules probably rely on a variety of helper functions. These days, the analysis likely involves some logical reasoning: about…