DoubleClickjacking: A New type of web hacking technique
data:blog.metaDescription
Understanding Memory Management, Part 1: C
UPDATED: 2025-02-15: Fixed some bugs in the examples and pointed out that you don't usually just want to panic on memory allocation failure.
It's hard to build an oscillator
Especially if you want it to work.
Linux Kernel Exploitation: Attack of the Vsock
What started off as casual scrolling through the KernelCTF submissions quickly spiraled into a weeks-long deep dive into a deceptively simple patch - and my first root shell from a Linux kernel exploit!
The model is the product
Old data, new models
My first impressions of Gleam
What I’ve learned in my first few hours using Gleam for a small project.
Introduction to GrapheneOS
In this blog post, you will learn about the security oriented smartphone operating system GrapheneOS
My first attempt at iOS app development
A week ago, I knew absolutely nothing about Swift. Today, I have a working iOS app sitting on my Mac and my test device
Jujutsu VCS: Introduction and patterns
Jujutsu (jj), a new version control system written in Rust, has popped up on my radar a few times over the past year. Looked interesting based on a cursory look, but being actually pretty satisfied with Git, and not having major problems with it, I haven’t checked it out. That is, until last week, when I finally…
Go Proposal: Secret Mode
Automatically erase memory to prevent secret leaks.
Toad is a unified experience for AI in the terminal
My startup for terminals wrapped up mid-2025 when the funding ran dry. So I don’t have money, but what I do have are a very particular set of skills. Skills I have acquired over a very long career convincing terminals they are actually GUIs.
My favourite computer ergonomics hack
In this post I will talk about my favourite computer ergonomics hack, a DIY device I call "The Beeper".
Build a link blog like Simon Willison
Achieving Data Freedom Through Open Source and Rust
Rating 26 years of Java changes
I first started programming Java at IBM back in 1999 as a Pre-University Employee. If I remember correctly, we had Java 1.1.8 installed at that time, but were moving to Java 1.2 (“Java 2”), which w…
Trump's attacks on universities get darker, with shadows reaching our shores
The US has become a hostile and authoritarian state to foreign scientists and is choosing ideology over science.
What happened to Transmeta, the last big dotcom IPO
Linus Torvalds worked for them after he completed his degree, but left in 2003
A dark adtech empire fed by fake CAPTCHAs
Late last year, security researchers made a startling discovery: Kremlin-backed disinformation campaigns were bypassing moderation on social media platforms by leveraging the same malicious advertising technology that powers a sprawling ecosystem of online hucksters and website hackers. A new report on the fallout…
Why is GitHub UI getting slower?
Matyáš Racek's blog
Accessible open textbooks in math-heavy disciplines
The challenge The authoring platform of choice in many math-heavy disciplines is LaTeX. It produces typeset documents of excellent quality and handles formulas and mathematical diagrams extremely w…
FPGA Based IBM-PC-XT
Recently I undertook a hobby project to recreate an IBM XT Personal Computer from the 1980s using a mix of authentic parts and modern technology. I had a clear goal in mind: I wanted to be able to …
Why do people leave comments on OpenBenches?
I'm still a believer in the promise of Web 2.0. The idea that giving people a curated space to chat produces tiny sparks of magic. My wife Liz and I have been running the OpenBenches project for about 8 years - it's a crowd-sourced repository of memorial benches. People take a geotagged photo of a bench's plaque…
Environment variables are a legacy mess: Let's dive deep into them
Programming languages have rapidly evolved in recent years. But in software development, the new often meets the old, and the scaffolding that OS gives for running new processes hasn’t changed much since Unix.
The Big OOPs: Anatomy of a Thirty-Five Year Mistake
My presentation from the inaugural Better Software Conference, with notes.
A statistical analysis of Rotten Tomatoes
Can Hollywood's stamp of artistic excellence still be trusted?
OpenAI's o1 Playing Codenames
I got OpenAI's o1 to play codenames and the results were surprisingly good
What was Radiant AI, anyway?
A ridiculously deep dive into Oblivion’s controversial AI system and its legacy
Mark Zuckerberg personally lost the Facebook antitrust case
It's damned hard to prove an antitrust case: so often, the prosecution has to prove that the company intended to crush competition, and/or that they raised prices or reduced quality because they knew they didn't have to fear competitors.
One Dog vs. the Windows 3.1 Graphics Stack
a bunch of weird and random technical stuff