- Jailbreaking language models with user roleplay
- Resolving an email deliverability mystery
- GPT-3.5 crashes when it thinks about useRalativeImagePath too much
- Forging signed commits on GitHub
- Everything the Rust format! macro can do
- How to average hues
- Playing with raw census data
- Hidden HTML markup Google Sheets adds to the clipboard
- Undocumented Google Sheets formula functions
- Turning off Rust's borrow checker, completely
- Tracking PDF forms as plain text
- Each step of decoding a PNG
- Writing semantic ASCII
- HTML comments work in JavaScript too
- Zopfli is *really* good at compressing PNGs
- Analyzing the public hostnames of Tailscale users
- Your Phone app has an email client
- Google's new related search box optimizes for the wrong metric
- How good is Codex?
- Accidentally causing a Switch rumor
- Using Colemak for a year
- SecurityClassificationLevel in email headers
- Interesting things in Nintendo's OSS code
- Writing a Boolean expression parser in Rust
- TagTime Web: my stochastic time tracking web app
- Reddit's website uses DRM for fingerprinting
- Data WhiteOps collects
- Gmail's fake loading indicator
- How I improved this blog
- Generating our own knowledge panels
- A bookmarklet to amplify YouTube
- How to use private JS class variables
- AlertReady To Retire Ku Band Alerts
- Easily upload files to IPFS, online
- How to watch YouTube video frame-by-frame
- Next Canada-wide emergency alert test announced for May 8
- Nim: How to use a cstringArray
- New Blog!