Software
Wed, Nov 11, 2026 - 7400 Words
How pictures should be resized, rotated and dithered, and how to judge the result. Three articles: expert notes with the mathematics, measurements and references; a plain-language summary
; and a checklist of best practices and gotchas
.
Read more →
Wed, Nov 11, 2026 - 13900 Words
What the numbers in a picture mean, from the CIE observers to HDR formats, and how they go wrong. Four articles: expert notes with computed figures and references; a general-audience summary
; a guide to best practices, gotchas and recognizing errors
; and reference tables
with formulas.
Read more →
Sat, Sep 12, 2026 - 1300 Words
A monospace vector font for debug overlays: 95 ASCII glyphs of lines and quadratic beziers in 1.8 KB of data, a decoder you can read over coffee, and an anti-aliased pixel writer. Public domain.
Read more →
Fri, Jul 26, 2024 - 2700 Words
Derivation of a minimal size tree for playing perfect tic tac toe
Read more →
Mon, Aug 28, 2023 - 2700 Words
This is a note on the correct usage of alpha blending, pre-multiplied alpha, gamma correction, and linear colors for image processing.
Read more →
Sun, Jul 23, 2023 - 1100 Words
XCode corrupts PNG images for iOS builds. This post details the error.
Read more →
Sat, Jun 24, 2023 - 2300 Words
Variation among SSIM implementations make comparing results a mess. This version matches the output of the original, unlike most of those in common use as of 2023.
Read more →
Sat, Aug 27, 2022 - 700 Words
A robust algorithm for computing roots of quadratic equations, much better than common code.
Read more →
Mon, Dec 7, 2020 - 4000 Words
I built a RTK-GPS gadget and wrote enough software to do basic GNS tasks such as finding distances, decoding GPS NMEA and RTCM messages, finding intersections, and doing boundary detection.
Read more →
Sun, Jun 23, 2019 - 3200 Words
Over decades I’ve written a lot of personal code. I made a bar chart race showing how many lines I’ve written in different languages over time.
Read more →
Sat, Jun 1, 2019 - 1400 Words
Here’s a brief summary of C# features by version.
Read more →
Wed, May 15, 2019 - 100 Words
This is a 60 minute talk in which I tried to cover 30 algorithms and data structures in a concise manner. It covers all sorts of areas: sorting, string searching and matching, backtracking, randomness, skip lists, hashing, bloom filters, graph algorithms, space partitioning, concurrent and immutable data structures, cache oblivious techniques, compression, boolean satisfiability, and control theory.
Read more →
Mon, Feb 25, 2019 - 200 Words
These slides are from a talk I gave on many aspects of computing, starting with classical computing (Hilbert’s 10th problem, Church and Turing, Godel, boolean functions, complexity theory, transistors, Moore’s law and demise), then going through physics (relativity, quantum mechanics, quantum field theory), and finally into quantum computing basics (qubits, superposition, entanglement, no cloning, basic gates) and quantum algorithms (Deutsch, Simon, Shor, Grover).
Then I cover advanced quantum topics, such as quantum machines,quantum complexity theory, the Quantum-Church-Turing-Deutsch principle, graph isomorphism, quantum error correction, and quantum security. A final speculative section covers even weirder computation ideas (closed timelike curves, string computing) and how computing seems intertwined with the nature of reality (It from Bit, Simulation Hypothesis, Free Will Theorem).
Read more →
Sat, Jul 21, 2018 - 200 Words
This talk is an intro to wireless communications, starting with the basic physics of EM waves and how they interact with materials, then how antennas work, then on to antenna properties and design. Next modulation schemes are discussed, showing how data is encoded and transmitted over noisy channels via modulation, spread spectrum, time and frequency division, and other methods. Noise in the form of doppler, intermodulation, and other causes is covered. Information theory (channel capacity, Shannon entropy, error correction) is covered. Finally specific protocols are analyzed under this framework: FM, NTSC, remotes, WiFi, Bluetooth, ZigBee, satellite radio, GPS, and cellular formats.
Read more →
Mon, Apr 2, 2018 - 100 Words
This talk covers cryptography best practices as of April, 2018. Background on each area is covered, with each section ending with a best practices slide. Sections are Symmetric Encryption, Asymmetric Encryption, Key Lengths, Hashing/HMAC, Password usage, Key Exchange, Random number generation, Digital Signatures,
Read more →
Wed, Mar 14, 2018 - 100 Words
This talk is an introduction to functional programming, with a focus on F#. The first section covers functional programming history, techniques, and benefits. The second part shows how this is used in F#, covering F# syntax and some special features like Type Providers, Units of Measure, and performance compared to C#.
The third section goes into mind-bending topics like immutable data structure implementation, currying, the y-combinator, contravariant and covariant functors, and category theory.
Read more →
Wed, Jan 10, 2018 - 100 Words
This talk covers CPU architecture from the early days (Intel 4004) through modern designs (2018, Intel i7 and i9), with a view towards how the Meltdown and Spectre exploits were discovered. It covers virtual memory, process separation, cache issues, RAM details, pipelining and stalls, branch prediction, Moore’s law versus physics, and finally how Meltdown and Spectre are the consequence of many of these design decisions.
In the end I show the code for Meltdown along with a demo.
Read more →
Mon, May 1, 2017 - 8100 Words
Here’s FRACTRAN, a weird fraction based programming language, written in FRACTRAN.
Read more →
Sun, Mar 5, 2017 - 1500 Words
How does one generate uniform random numbers in [0,1] using IEEE 754 floating point formats? It’s tricky.
Read more →
Tue, Feb 21, 2017 - 900 Words
Here’s bit tricks for efficient divisibility testing.
Read more →
Sat, Sep 17, 2016 - 400 Words
This is a hard puzzle about using two NOT gates to build three.
Read more →
Mon, Aug 29, 2016 - 5900 Words
Here’s some notes on compression.
Read more →
Mon, Aug 29, 2016 - 1700 Words
Here’s an embedded compression format I designed to meet certain requirements. It’s small, fast, and efficient.
Read more →
Fri, Jul 1, 2016 - 100 Words
A post to test site features such as tables, math, code…
Read more →