Writing a NetBSD kernel module
Kernel modules are object files used to extend an operating system’s kernel functionality at run time .
Implementing strcmp, strlen, and strstr using SSE 4.2 instructions (2008)
Created 18 years ago by Peter Kankowski Last changed 17 years ago Contributors : Dap and Adam Messinger Filed under Low-level code optimization
Scandalous Weird Old Things About The C Preprocessor (2015)
Updated 2018-01-21: Added clarification related to assertion about lack of context free nature of the C preprocessor.
Get Started with Rust, WebAssembly, and Webpack
This guide will walk you through setting up Rust, WebAssembly, and Webpack to easily interoperate between low-level Rust code and…
Implementing VisiCalc (2003)
I'm writing this in preparation for the Computer History Museum's The Origins and Impact of VisiCalc panel on April 8th 2003. This is basically a draft and I hope to do some more editing as time permits and you should expect many typos until then. I'm also going to continue to edit and change this as I remember…
Papers I like (part 2)
Continued from part 1. Once I was about a thousand words into describing background for GEMM, it became pretty clear that it made more sense to group the numerical math papers into one post, so her…
Zip Files All the Way Down (2010)
A well-known scientist (some say it was Bertrand Russell) once gave a public lecture on astronomy. He described how the earth orbits around the sun and how the sun, in turn, orbits around the center of a vast collection of stars called our galaxy. At the end of the lecture, a little old lady at the back of the room…
Fire And Motion (2002)
Sometimes I just can’t get anything done. Sure, I come into the office, putter around, check my email every ten seconds, read the web, even do a few brainless tasks like paying the American E…
What colour are your bits? (2004)
As of Summer 2024, my article "What Colour are your bits?" has been online 20 years, and people are still linking to it as a benchmark. It's clear that people still care about intellectual property in general and copyright in particular, and the difference, if any, between id...
The Configuration Complexity Clock
When I was a young coder, just starting out in the big scary world of enterprise software, an older, far more experienced chap gave me a ste...
The Aggregate Magic Algorithms (2015)
There are lots of people and places that create and collect algorithms of all types ( here are a few WWW sites). Unfortunately, in building systems hardware and software, we in The Aggregate often have found it necessary to do relatively obscure low-level things very efficiently. Many of the tricks we've devised or…
QArt – Pictures in QR code with no inherent errors
QR codes are 2-dimensional bar codes that encode arbitrary text strings. A common use of QR codes is to encode URLs so that people can scan a QR code (for example, on an advertising poster, building roof , volleyball bikini , belt buckle , or airplane banner ) to load a web site on a cell phone instead of having to…
The qmail security guarantee
Of course, ``security hole in qmail'' does not include problems outside of qmail: for example, NFS security problems, TCP/IP security problems, DNS security problems, bugs in scripts run from .forward files, and operating system bugs generally. It's silly to blame a problem on qmail if the system was already…
The Minimum Every Software Developer Absolutely Must Know About Unicode (2003)
Ever wonder about that mysterious Content-Type tag? You know, the one you’re supposed to put in HTML and you never quite know what it should be? Did you ever get an email from your friends in…
React, Facebook, and the Revocable Patent License. Why It’s a Paper 🐯.
Update(9/25/17): My article about the licensing change.
Mathematical Proof That the Lightning Network Cannot Be a Decentralized Bitcoin Scaling Solution
Have you heard of the Bitcoin Lightning Network? It is a proposal that claims that:
Ideology
Some people claim that unit tests make type systems unnecessary: "types are just simple unit tests written for you, and simple unit tests aren't the important ones". Other people claim that type systems make unit tests unnecessary: "dynamic languages only need unit tests because they don't have type systems." What's…
Modern garbage collection
A look at the Go GC strategy
Designing with types: Making illegal states unrepresentable
Encoding business logic in types