Total URLs: 1000
Successful: 941
Failed: 59
Success Rate: 94.10%
Failure breakdown:
connect_error: 22
no_titles: 12
http_429: 7
http_404: 6
parse_bozo:SAXParseException: 3
http_403: 2
no_entries: 2
client_error:TooManyRedirects: 1
http_500: 1
http_502: 1
http_503: 1
http_522: 1
Prevent newsletter signup spam
Introducing CypherGoat - The first open source crypto exchange aggregator
Deploying Go + Templ + HTMX + TailwindCSS to production
Simple Rate Limiting in Go (Gin)
If Linux is so great why isn't everyone using it?
How to build a URL shortener in Go
How to deploy django to production
How to setup a selfhosted newsletter using listmonk
January 2026 Bookbug
November 2025 Bookbug
Bookbug
CDwORLD
Little Pixel Library
Pixelbill
Toybox
Zines
Today I Learned - Spotify client on Linux
Going back in time
Rabbit Holes v01
sadservers
Playing with videos
Pwnagotchi 02 - Linux tools
k8s lab 02
k8s lab 01
Trust Is a Tree
The Twitter of Physics
About the OpenAI Amplitudes Paper, but Not as Much as You’d Like
Practice, Don’t Memorize, Understand Justifications, Not Stories
Hypothesis: If AI Is Bad at Originality, It’s a Documentation Problem
Most Academics Don’t Choose Their Specialty
Valentine’s Day Physics Poem 2026
The Timeline for Replacing Theorists Is Not Technological
Building Awesome APIs
The Bitter Prediction
Low, Lower, Lowest Level Programming
A Simple ELF
ELF Shenanigans - Holiday Special
Git - Beyond the Basics
Control is an Illusion Anyway...
Steal this Class
The Ides Are High But the Four Questions Are Holdin' On
When It Rains, It Fours
Four Some Sugar on Me
I Was Workin’ Part Time in a Four-and-Dime
Where-Four Art Though, Romeo?
Four the People
Four Once and Four All
Four-Ever 21
Next Episode Coming Soon
Mixcloud Issue
Closing Comments Here
164 Coming Very Soon Indeed
Update on Patreon Bonuses
ADMIN: Holiday Schedule 2022
Vision Pro’s Inconvenient Truth
There and Back Again, a San Francisco Tale
The Stopgap Sports Bundle
What a Mess
The Crunch
Laptop Ban? In 2024? What About My Facetop?
An Ode to the Volume Swipe
I Spy Something New…
Black magic causing database server timeouts
Microwave oven to blame for mystery signal that left astronomers stumped
The Roman Mars Mazda Virus
The Wi-Fi only works when it's raining
Application crashes when I drink coke
Crashes only on Wednesdays
GZIP exceptions, but only on hot or rainy days
We had a unit test once which only failed on Sundays
The Gaia Database
Mulberry32: A Tiny, Fast, Deterministic RNG
Reaction-Diffusion: Gray-Scott on a 2D Grid
Raindrops on a puddle
A Universe Without Time
Seestar ALP Launcher
RTSP camera streaming with Raspberry-Pi Zero 2
ASCII Fire
4'33" (as performed by your browser)
store store cards
colour to sound
eurobingo
gl1tch
GIFwall
raining rainbows
to_the_beat // js
Books
Crime Doesn’t Pay
Issue 110—Machine Breakers
As many bots as there were humans.
Issue 109—When a Whale Looks at You
Issue 108—Reading Underground
Issue 107—You Can’t Stop the Sun from Rising
Issue 106—Long-Term Memory for Civilization
About
There is no AI in accountability
Shitwalls
Nitro Enclaves: what's in CiphertextForRecipient?
PGP/GPG vs. Signal: keeping communication secure
Why no ChatControl?
Electrical vehicle charging in the city: problems and possible solutions
Naoyuki Katoh SF Illustrations
Kozo Yokoi
A Tiger in the Land of Dreams
50 Watts Books - Our First Publications
Bookstore Image Dive 1
A Dream Within a Dream
Posters by Ghobad Shiva
The Fake Kyoto Collection
2007
2005
Windows 98 - Welcome To Windows
Photo
Windows 98 - System Information
2004
2007
curve ball in three dimensions
DTM: Appendix 1
DTM: Appendix 0
DOING THINGS MANIFESTO
an analysis of 3.9 million tf2 games
On Heph
Using the C Preprocessor as a Templating Engine
A Forthish VM
2014-04-28 Startup skills learned during undergrad
2014-03-26 A taxonomy of tech haters
2013-03-12 Netty and the JVM meet OpenSSL to speedup connections
2012-10-04 Programming isn't fun—it's much more than that
2012-07-31 My first year as employee #1 of a YC company
Styla: Content Experience Engine
Koko: AI-Powered Community Moderation
Build securely with Github Actions and ECR using OpenID Connect
Kubernetes at Home: Hardware
Kubernetes Native CI With Argo
Running Kubernetes on OpenWrt
Why Kubernetes at small scale?
Run Prometheus Blackbox Exporter as Lambda
Handling unknown enum cases
Enum or struct?
Automatic builders
New attributed strings
Attributed Strings
Factories and Protocol Composition DI
Protocol Composition and Dependency Injection
Hello world!
Apple at 50: Apple II Forever
FireWire via a Raspberry Pi
How Apple Could Have (Maybe) Saved the Mac Pro
‘Can’t Innovate Anymore, My Ass’
The Mac Pro is Dead
Connected 596: Something You Might Want to Do on a Sunday
MacBreak Weekly 1017: We Found a Google, and Put It In
OpenAI Shuttering Sora
Principle of Operation
Include
TOY - A program initially written by Oleg Saffuilin
RLV12 Emulator
RLV12 Emulator Version 2.0
The Module ID
MFM reader
PDP-11/Hack de Luxe
New URL
Dear Diary: Summer 2023
Dear Diary: Spring to early Summer 2023
デモシーナー、nobyさん(Epoch、Prismbeings)にインタビュー
Interview with Demoscener - noby (Epoch, Prismbeings)
[Good evening Tuesday] A Handshake
[nokonoko journal] May 2022
デモシーナー、Flopineさん(Cookie Collective)にインタビュー
Design Interview at Google, Making Portfolios & Building a Business Case for Design
The Rants of a Designer: Technical feasibility & debt, limitations, and form over function
Switching Career to Become a Designer — from Graphic Design to Motion & Product Design, Generalist vs Specialist & More
Tools of the Trade
Building a Career with the Internet, Finding our Passion, and Building Wealth — King Sidharth's speech at PSG College of Techn, Coimbatore
Why we can't hire the best
Career in Design — from Jr. to Senior Designers, Design Mentorship & Evangelism — Design Roundtable: 1
What's a fair process?
We Won! Common Sense Prevails in ‘Bus Dad’ Case.
I Took the Government to Court for Kids’ Independence. I lost (for now).
Parking! What is it good for?
Virtual Reality Tour of the Condo
Vancouver Election Guides
We’re Going to the BC Supreme Court!
Want To Help Me Run For City Council? Here’s How.
From Riding the Bus to Walking on Eggshells: An Addendum from “Bus Dad”
Space Trash and Future Junkyards
Sea Monsters
Space Shuttles
Angus McKie's Modular Future
Odds and Ends - March 2026
Robert Tinney: Byte Magazine and Beyond
'80s Unicorns by Sue Dawe and Andy Mack
Robots in Love
Six Sigma and the Health of Healthcare
Using Six Sigma For Fixing Your Personal Finances
Scratchpad – NEVER PUBLISH
Self-Improvement Means Creating a Process to Achieve Things
Value and Foundation of Six Sigma
Streamlining Your Customer Service Experience
Are KPIs Important to Six Sigma?
How Can Six Sigma Help Marketers?
Week 48: ume, matcha, friendship bracelet
Week 47: spaced out
Week 46: a time that belongs nowhere
Week 45: black sheep’s wool
Week 44: snow
Week 43: I can’t focus
The state of Pete
Pete's newsletter for the start of July
Reflections on the election
Scanning the BugPowder zine archive
Pete Ashton's new newsletter of news
Thoughts on Furiosa
Peely, twenty years on
The Aerobic Digest 13: Stay out of the sun
820
Weekly Links 26-13
819
818
817
816
815
814
Never been a better time to sign up for my art blog newsletter! Here’s a sneak peek at tomorrow’s…
L'Ultime Epreuve, “The Ultimate Test,” the first original French JDR (RPG) by Fabrice Cayla, Jeux…
Illustration by Robert Tinney, 1984
Alex Ninõ
Cover illustration by Richard Powers
I just wanted to say that I love this blog so much bc i love old pulp fiction covers dearly. They are so evocative to me I also have a submission. Its from 1980, and I found it in a little free library. Ive paged through it and it seems completely unhinged :P
magictransistor:Operating Manual For Spaceship Earth, R....
Philippe “Manchu” Bouchet, 1985
My top ten "hangout" movies
Dissertating
Prompting Claude to write GDPR questions
Radio buttons, checkboxes, affirmative choices, and consents
How to reverse (revert) some Thor actions
Arrays are rarely the natural choice in bash; use files
Proposing Botwatch
Bots Among Us
About
Realtek WiFi Firmware and a Fully 8051-based Keylogger Using RealWOW Technology
The Embedded Controller and Its Legacy
Streaming Video from the Mouse
Decrypting the Optical Sensor Firmware
Analyzing the USB Controller's Firmware
The vulnerability that killed FreeWifi_Secure
How I hacked hackers at LeHack 2025
Demystify 🐉 Kali GPT
Evil-M5Project – RTFM
Does your Machine have a Good or Bad Karma?
GPTs, Are you a LLM or a Shell ?
A fantasy game to learn LLM prompt injection : TROLLM
Exploring the multi-faceted world of website hidden prompts placing
Japanese Particles Explained: A Visual Guide to the System Behind Every Sentence
How to Say “This” and “That” in Japanese
How Basic Japanese Sentences Work: Understanding the Basic “A wa B desu” Pattern
Understanding Japanese Verb Structure: A Visual Guide
How to Build Complex Noun Phrases in Japanese (Free Video Lesson)
How to say “so” and “because” in Japanese
Using 「よ」(yo) and 「ね」(ne) to speak more natural-sounding Japanese
The particles 「から」(kara) and 「まで」(made): Saying “from” and “until” in Japanese
Introducing Kestrel
A Poly1305 Timing Attack
Every Programming Blog I've Ever Visited
An Encryption User Story
AMP for Email
The Problem With AMP
Emulating old OS X versions with QEMU
Linkdump No 100
Can I hear a difference between MP3s and uncompressed audio?
Mastodon (Bluesky/X/Instagram) is not the right platform for posting long-form content (a blog is)
Linkdump No 99
Cool tech you've never heard of: Wave Field Synthesis
Linkdump No 98
Listening to every Album: Gamma Ray
Does SIMD Improve the Performance of Node.js?
Add the Current Copyright Year to the HTML File in a Vite Project
Guides to Promoting a JavaScript Open Source Project
Add/Update/Remove an HTML Attribute in JavaScript
Simple and Error-Free Linked List Implementation With a Dummy Head/Tail Node
A Type-Safer Alternative to Type Guards in TypeScript
Should You Build Your Next Command Line Utility Using Node.js? Factors to Consider
Bitwise Operators in JavaScript and When to Use Them
N Scale addition
Before and After
More WDW development
Carnival Updates at WDW section
Big picture view of the layout
Disney World Update for May Day
Hot Air Balloon -3D printed
Wall of Death
Work/new-life balance
Durable tech
Dogfooding
Early user feedback
Spending time to save time
Products want to be platforms
Always be launching
Enjoying the journey
A Workable Pattern for PCF Events You Can Use Today
Keep those PCF components inside the box
Power Apps and Pro Devs—It's Happening
Catching up a forgotten moment
Elephants Out, Donkeys In
All new and shiny!
What I'm Using
100 days of content: Day 0
260217
260123
chronic
partial fast
say i understand
251223
new supplements protocol
isnt it convenient
Comprehensive Thoughts on AI
Machine Learning Notes for Developers
Managing Managers Notes
Hiring Mental Model
Communication Techniques for Mutual Understanding
Write down your how
Consume Or Create?
What I've Been Up To
About
The F-Word
Some Resources for Free Photography Software
Another Side of Paris
Existential Crisis
Relaunch
Encounters with Dave Allen
Strange Days Indeed
How to Disappear Defiantly
suspicions of provenance
Shimmering & Shining with The Black Watch
The Children…’s Blues is a Primal Yowl
A Degree of Randomness: A Conversation With Joseph Branciforte
Pierced With Lasers
Recollections from the Raku Core Summit
The new MoarVM dispatch mechanism is here!
Raku multiple dispatch with the new MoarVM dispatcher
Towards a new general dispatch mechanism in MoarVM
Taking a break from Raku core development
My Perl 6 wishes for 2019
Speeding up object creation
Eliminating unrequired guards
Kairos, the immutable OS for deploying Kubernetes
Bootc and OSTree: Modernizing Linux System Deployment
Kubernetes API-Server with Multiple IdPs (and Github Actions)
SPIFFE and mTLS with cert-manager
Customizing Talos with Extensions
Omni and Kubevirt
Cluster API + Talos + Proxmox = ❤️
GoAuthentik from A to Y
Anti-intellectual tech
Detectives in puffer jackets getting drinks
Anti-design software
Not the users I have in mind
Saying goodbye to chatbots
The Implied Web
Nesting HTML list elements
CSS context variants
A Human Endeavour - A year in blogging.
🗓️//February 2026 Audition Round-up
It's times like these that make me glad I have this blog.
🗓️//January 2026 Audition Round-up
The things we think about,when we think about things.
🗓️//2025 Year in Review
🗓️//December Audition Round-up
🎭//A change in mindset
Learning (Some) Haskell by Building Tetris
Pretty Inline Symbolic Mathematics in Org-Mode
Half-Height Console Graphics with Haskell and ncurses
Algorithmic Music on iOS with TidalCycles
v0.7.1
v0.7.0
Devlog February 2026
v0.6.1
Devlog January 2026
v0.6.0
Devlog December 2025
v0.5.6
How to use kamal‑proxy to expose your Docker containers.
I Migrated My Blog from GitHub Pages to Codeberg Pages. And This Is Just the Beginning.
OasGrape: An Alternative for Generating Your API Documentation
OasRails: From a Rails Engine to a Framework-Agnostic Solution
When Machines Talk: ChatGPT and DeepSeek.
Automatic API Documentation for Rails with OasRails and AI: Fast and Easy
Running LLM Locally: DeepSeek R1 and Open WebUI with Docker Compose.
Mark Zuckerberg said: It’s time to go back to our roots and use RSS
Tupper's self-referential formula
Solving Knights Tour using a Neural Network
Finding Mona Lisa in the Game of Life
Noise Planets
Deobfuscating a Maze Program
Generative Bad Handwriting
Tweet p5.js (#つぶやきProcessing) Showcase
Clustering Unicode Glyphs
How to deal with identity theft in Germany
My Home (VPN) Network Setup
Slowftware Development
Multi Distro Linux USB
Clean code and the exception handling
Static page(s)
The internet on Lockdown mode
Woodworking updates
The Portland Roadster Show
A thing we should acknowledge about AI
Random bits and bobs
Trying AI (and failing)
Heavyweight on Minnesota raids
I absolutely LOVE woodworking
A 2,200 mile EV test drive from Texas to Oregon
In defense of cash
BEATCS interview
Politiser le bien-être
Figuring out adversarially that someone understands a given language
Double-blind reviewing
[ru] Kernel-hack-drill и новый эксплойт для CVE-2024-50264 в ядре Linux
Kernel-hack-drill and a new approach to exploiting CVE-2024-50264 in the Linux kernel
[ru] Адаптируем фаззинг для поиска уязвимостей
[ru] Зеркалирование GitHub-проектов в 2023 году
Mirroring GitHub projects in 2023
[ru] Fuchsia OS глазами атакующего
A Kernel Hacker Meets Fuchsia OS
[ru] Исследование защиты LKRG с помощью уязвимости CVE-2021-26708 в ядре Linux
Accessibility in Video Games
An Accessibility Check of the Epic Games Store
Discord: Accessibility in Web Apps Done Right
Genderinklusive Sprache & Barrierefreiheit
How I Look at Accessibility Work
Options to the People
Steam: An Accessibility Nightmare
Why The Last of Us: Part II's Accessibility Is a Big Deal
Fix for Perfetto's Failed to Fetch Error
Revisiting Compose Perf-Land in 2025
Why and How I am building a smarter TODO app.
Power of Two with Bitwise
Learning Basic Electronics By Building FireFlies
Boundary Check vs Try-Catch
Google Sheet as Remote Config for Microcontrollers
Large PR SOP
Dockerizing a Laravel and Inertia App
Building Modern Cross Browser Web Extensions: Core Functionality, Storage and Permissions (Part 5)
Building Modern Cross Browser Web Extensions: Background Scripts and Messaging (Part 4)
Building Modern Cross Browser Web Extensions: Content Scripts and UI (Part 3)
Building Modern Cross Browser Web Extensions: Project Setup (Part 2)
Building Modern Cross Browser Web Extensions: Introduction (Part 1)
D'Arvit
Celadon v0.1.0
Could YOU Be The Next Dictator Of The UChicago Student Body?
Kaleidoscope
2Set 2nes on the 2be
Queen Margaret
Demon Sheep
Graphic Design Is My Passion
Terms of Service and Privacy Statement
😜
AADInternals-Endpoints 😈
Exfiltrating NTHashes by abusing Microsoft Entra Domain Services
DoSing Azure AD
Deploying users with pre-registered MFA
Elevation of Privilege from Local Admin to gMSA
Bypassing Azure AD home tenant MFA and CA
Unverified software downloads: A significant risk to server security
Reducing power consumption of a desktop PC
Setting up Qt Creator for ESP32 development
Evaluation of hashing algorithms Ascon, SHA256, SHA512 and BLAKE3 on an ARM Cortex M7 processor
Optimizing factorio startup performance when running on a hard disk
The essential beginners guide to Linux
Growing coriander indoors with 300mW of light
[UTCTF 2019] Writeups
[BSidesSF CTF 2019] – Mobile Track
[HackIM Nullcon CTF 2019] – Proton
[HITCON CTF 2018] – EV3 Series
CSAW CTF Writeups 2018
H1-702 CTF Writeups
InCTF 2017 Writeup
CSAW CTF 2017 Writeups
Tutorial: how to embed a react component that is part of a larger app
The Ultimate Guide to Automatic Accessibility Testing in CI/CD for React Apps
Making accessible interactive React components
Check client (Frontend side) CPU/memory usage in JavaScript with these web API features
Everything you need to know about HTML5's autocomplete
structuredClone: native way to deep clone in JS
Tutorial: Build your own server side rendered (SSR) React app
Rarely Used React Hooks
Vinyl is dead. Long live vinyl.
Are you sure?
There’s such a thing as “too helpful”
Everything I know about marketing I learned from the 1990 movie “Crazy People.”
Death to process machines!
Generalists, specifically.
On brand
Fundamentals
Dev Blog - Proving the Remote MCP Adapter’s Security Guardrails part 1
Dev Blog - Securing the Remote MCP Adapter
Crossing limits
Remote MCPs as local
A skill issue
The curse of context windows
You Cant Sandbox Ambient Authority
Your System Kills Itself Trying to Recover
Carling’s Modification of the Tukey's fences, Part 2
Fast Computation of the Shamos Estimator via Monahan-Style Selection
Fast Computation of the Hodges–Lehmann Estimator with the Monahan Algorithm
Fast implementation of the moving quantile based on the partitioning heaps, Part 3
Statistical Efficiency of the Trimmed and Winsorized Mean
Thoughts on Geothmetic Meandian
Statistical Efficiency of the Tau Measure of Location
Lowland multimodality detection and weighted samples
How should I price my startup product?
My Journey with LASIK Eye Surgery - A 20-year Retrospective
Bad positioning in your startup pitch
What are A records? How should I plan domains?
The Rules of the (VC) Game
What did you do as a Presidential Innovation Fellow?
Applying for the Presidential Innovation Fellowship
Why do a Presidential Innovation Fellowship (PIF)
Move untracked git files to another directory
Animal Farm by George Orwell: A Journey into Allegory
Pulga, Kalga - Himachal Pradesh 2024
1984 by George Orwell: A Journey into Dystopia
The Idiot by Fyodor Dostoevsky: Navigating the Complexities of Humanity
Firecracker Dev Machine Setup (GCP)
Linux Container Networking from Scratch
Git exclude files from working copy
HelloWorld("print")
Building in-browser autocomplete for millions of entries with Radix Tries
Immutable releases on GitHub
IntelliSense in Expo native modules
Faster substring search with SIMD in Zig
Arctis Battery Indicator
Simple & type-safe localization in Rust
Using SFML3 with Zig
Aangat Lahat
1. Email and calendar
2. Sharing files
3. Collaborative documents
4. Delta Chat
5. IRC
6. Reader
Speaker Notes (Condensed)
Mister Maki Research Readout — Speaker Notes
RISC-V Assembly Programmer's Manual
fermat and seed parser
code optimization
wasm and compile string
watch
GET updates/26/002
Southold Historical: Budget Vote May 19th | Burger & Beer Fundraiser, 4.22nd | Student Internships ….
P-K House: Zoom Art — Creative Metamorphosis | Let It Flow | Spring Into Art | Physical Challenges
Suffolk 250 Newsletter / April — American Revolution Traveling Exhibit + Planting It Forward ….
SAC: Kids – Light, Form, Shadow Wkshp | ‘Unknown NY’ | IPhone Photo | ‘First Light’ | ‘Docs Equinox’ …
AIA Peconic: Women in Architecture’s 4th Annual Film Screening, ‘Unknown N.Y.’, 3.31st / More News ….
SCHS: ‘My Grandfather & Albert Einstein’ / Book & Bottle w/ Ron Rothman, May 2nd @ 1 PM
Oysterponds Historical / Spring Newsletter: America’s 250th | Schedule of Events | Penny Farthing ….
Parrish Art Museum — Access Parrish Celebrates 10 Years / Spring Fling, April 25th, 7:30 – 11 PM
AWS DynamoDB SDK support for .NET DateTimeOffset
ASP.NET .NET 6 OIDC Retrieve JWT AccessToken after SaveTokens
Auth0: Restrict SPA Application Access to API Audience/Permissions/Scopes
Find Azure Application Insights Resource by InstrumentationKey
Simple Rules Engine in C#
Configure SonarAnalyzer.CSharp with .editorconfig, no need for SonarCloud or SonarQube
AspNet Core JWT Authentication ValidateLifetime "The token has no expiration"
United States Postal Code to State Map
The Auditorium of Grief
Always on the cusp of something
Figma is freaking great
Life after a Layoff
Reminders, ADHD, and Siri
Hobbies, Accessories, and Unrealized Potential
Hello, Shopify!
Farewell, Automattic!
Moderating With Humans, For Humans
Context Collapse & Trust and Safety
The Stars, Like Dust by Isaac Asimov
Artificial Condition by Martha Wells
LLM-assisted websites may be the next Microsoft Access
Archive tree Drupal module
Benchmarking this Drupal server
All Systems Red by Martha Wells
Termination Shock by Neal Stephenson
TT-RSS to FreshRSS
[✉️] A Canadian's Call to Arms, Being Totally Pissed Off At the State of Computing in the 21st Century
[✉️] They're Not Going to Change
[✉️] This Should Work Better
[✉️] Dear Elon
[µ] Croissant 1.2 just submitted for App Review. Here
[µ] Low-key terrified that if I step into an Apple Sto
[µ] New M4 Pro in the house!
[µ] Apple: your MacBook Pro is shipping! You’ll have i
Critical Path Rendering
Node Concurrency
Brief Overview of Node Internals
The JavaScript Event Loop
Named Routes in Flutter
WordPress Transients
Azure Devops Pipeline Build with Shopify
Fathom Analytics
Find Me on Bluesky
Staying Productive with a Work Log
Trimming Video with FFmpeg
Find and Replace in Neovim
A Reminder of Why I Started This Blog
npm and Semantic Versioning
Reviewing 2023 and Previewing 2024
Introduction to HTTP Live Streaming
WP Book Club Week 1
A WordPress Book Club
Sponsor a WordPress Core Committer at WordCamp US
Four Short Things – 24 July 2025
Bob Odenkirk on risk
My May And June in WordPress
Generations on a theme
Some initial questions about FAIR
/reader
Git File Permissions and Mobile Sync
AI-First iOS Development From Scratch
We Are Not Going Back
Raspberry Pi as a Github Runner
Obsidian Location Plugin
How I structure my work
Obsidian Mapbox Location Image Plugin 1.1 available!
Astro: Automatically translate text during build time using DeepL
June 2024 Recap
Ignore future changes for existing files in Git
Quick navigate to a stored location (Apple Maps & Shortcuts)
In The Before
Making Stuff Again
Founders Are the New Rockstars
Startups Aren't Risky
How to make your YC application stand out
Free lifetime software upgrades are bad for customers
Form is Function
Why Drawing is Hard: Visual Limitations and the Skills to Overcome Them
Technology and Social Isolation: From Cars to “AI”
How “AI”-Generated Imagery is Different From Previous Art Technologies
The Menace of Mechanical Music: Was John Philip Sousa right?
Books That Changed The Way I See The World
Non-Violent Communication, and Technical Communication
Violent Communication in Scientific Paper Reviews
Choices During Painting: A Case Study
🎵 Coming Soon: Phantom
🎵 New Release: Life
🎵 New Release: Sonder
🎵 New Release: Exhale
🎵 New Release: Linger
🎵 New Release: Drift
🎵 New Release: Stranded
🎵 New Release: Conversations In Public
Rebuilding a Mailing List from Scratch
Goodbye Wordpress
Cover Reveal: Piece Number Four
Cover Reveal: Piece Number Three
Cover Reveal: Piece Number Two
Cover Reveal & Contest
We Have a Launch Date!
Of Covers and Red Ink
Add diagrams to your Astro site with D2
Deploying Astro with Docker Compose and Traefik
Astro + Nginx: Caching Headers for Static Assets
Slashing URLs with Astro and Nginx
Add Brotli Compression to Your Nginx Docker Container
Minify, Compress, and Containerize Your Astro Site
astro & away we go!
Choosing an Astro Template: Style versus Substance
march 30, 2025 / or this...
march 30, 2023 / or this...
march 30, 2023 / or this...
march 30, 2020 / or this...
march 30, 2017 / or this...
march 30, 2015 / or this...
Simple Things
Web Development for Fun and Enjoyment
Lessons Learned Setting and Missing Goals
RSS Club
Resource vs Technology
Setting a New Writing Goal
Sharing Early And Often
On Spelling And Owning Your Weaknesses
Language Modeling by Estimating the Ratios of the Data Distribution
Reflected Diffusion Models
100 Awesome Folkways LPs
Extensible Effects in the van Laarhoven Free Monad
Reasoning about Errors in Free Monads and Their Interpreters
Flexibility With Referential Data Using Type Families
FizzBuzz - Continuation Passing Style
Using Data.Proxy to Encode Types in your JSON Strings
Data Families Make Types and Free Monads More Librarious
Type Families Make Life and Free Monads Simpler
Walkthrough of Elixir’s Adapter Pattern
Application Layering - A Pattern for Extensible Elixir Application Design
Conference Talk: Growing Applications and Taming Complexity
Lightning Talk: Elixir Deployment Tools
Lightning Talk: Mocks, Adapters and Micro-services
Navigating Vim projects like a Boss
Phoenix acceptance tests on Semaphore CI
Running PhantomJS Ghost Driver as an OS X service
Patriarchal Panic: Reactionary Machismo, Zero-Sum Politics, and Radicalisation
Over ‘het oude, veilige Europa’
Over filosofie en klimaatdepressie
Over geopolitieke déjà-vu’s: wie wordt de Metternich van 2025?
Een onbevredigend ‘vredesakkoord’
Over ‘digitaal junkfood’
Napoleon (2023)
Drawdown: The Most Comprehensive Plan Ever Proposed to Reverse Global Warming, by Paul Hawken
A Personal Growth Framework
A brief history of the strangest emoji
Cracking the Adventure Time Cipher
Megabite
Screentendo
GitHub
CV
About Me
Client Registration and Enterprise Management in the November 2025 MCP Authorization Spec
Recurring Events for Meetable
Adding Support for BlueSky to IndieLogin.com
Client ID Metadata Document Adopted by the OAuth Working Group
Meetable Release Notes - October 2025
San Francisco Billboards - August 2025
Enterprise-Ready MCP
Let's fix OAuth in MCP
Calibration for Decision Making: A Principled Approach to Trustworthy ML
Batch Multivalid Conformal Prediction
Practical, Robust, and Equitable Uncertainty Estimation
FORC 2021 Call for Papers
How to Estimate the Uncertainty of Predictions
No Regret Algorithms from the Min Max Theorem
Moment Multicalibration for Uncertainty Estimation
TCS Visioning Workshop — Call for Participation
I Drank Every Cocktail
Square Theory
Crossword Calendar
Sidle
Nothing Starts With N
What’s the Name of This University?
New Year Zone
Full Moon Albums
Visualizing personal finances
Plain text bug report navigation
if underscore was written in es6 javascript
reactive programming and mvc
there is nothing new under the sun
semester review
artefactual knowledge
api's vs exports
Threat Modelling and Analyzing iPhone Mirroring
Breaking the Mirror: 38C3 Community Talk
CVE-2024-0819: Incomplete Protection of Personal Password Settings
Artikel auf Heise Online: Große WLANs mit VXLAN und EVPN optimieren
Vom Sandkorn bis zur Software: Kostenloser MOOC auf openHPI
Was ist eigentlich 5G? - Mein Beitrag zum Netzfest
Sicherheitslücken in edyou und schul.cloud
Warum ein gutes Passwort nicht vor Allem schützt - Tincon
Invitation gifs
The Demise of Darth Skivin and The Rebirth of the Indie Web
Forever Goofin'
Futuristic Design w/ fzf
Inktober's Coming!
Prototyping An LED Quilt With My Mom
Finally selling my Magic: The Gathering Collection
Some Projects I Might Not Finish... That's OK.
Software 2.0: Planning and Verifying a Greenfield Project
Software 2.0: Code is Cheap, Good Taste is Not
Why Your Software Sucks: Inheritance
Why Am I Paying $40,000 for the Birth of My Child?
Stop Failing The `git clone && run` Test
Your HTML Comments Are More Powerful Than You Think: Building Custom Validation Grammars with HtmlAgilityPack
There Has Never Been a Better Time to be a Junior Developer - And It Won't Last Forever
So Microsoft Deleted Some of Our Packages From NuGet.org Without Notice
Clawdbot bought me a car
Does AWS Lambda have a silent crash in the runtime?
Avoiding the Lambda Doom Loop
BASE Jumps & Backups - how I use Synology and AWS to store my data
Ultimate guide to secrets in Lambda
How Lambda starts containers 15x faster (deep dive)
The case for containers on Lambda (with benchmarks)
You shouldn’t use Lambda layers
January 2026 updates: New shops and projects abound!
New game from Bandageman Studios: Some People Call Him the Space Cowboy
Announcing Bandageman Studios, my extremely serious take on video game development
What I'm up to (September 2025)
What I'm up to (March 2025)
Online and socials (2025)
Hotel workers’ strike and the 2025 ASSA annual meeting – Update v6
Hotel workers’ strike and the 2025 ASSA annual meeting (v1 – 12/02/24 am)
A Quick Start Guide For Bluesky-Curious Epidemiology Lovers
Quick Start Guide For Bluesky-Curious Econ Lovers
HSCTF Write-Ups
Write-Up: awe
Write-Up: λ1
Worker Appreciation Day
A Brief History of Pdgn
Bridging the System Configuration Gap
Reasoning with Types in Rust
T'is the (Grad Apps) Season
Digital Archeology: Early Internet Service Provider Branding in The Netherlands
Sunset over Dusseldorf
Panorama of the cherry blossom park in Amstelveen, the Netherlands (2017)
Hydrangeas in Koto-ku, Tokyo
Rice fields in Shizuoka, Japan
Ghent, Flanders, Belgium
View from Higashi-chihibu, Saitama, Japan
Rain clouds over Nijmegen, The Netherlands
an ssg written in shell
jelly star and the universal android debloater
sonshi-style external keyboards with systemd
ds_store and dotfiles on mac and in finder
2010s cybershot dummy battery
routing markdown for a single-page blog
doin' it all with 555s
advent of code 2024
Kaktovik Numerals
and HTML and Markdown and README and Website and Demo
Package-Inferred Systems are Dangerous
Against Markdown
Pidgin Markup For Writing, or How Much Can HTML Sustain?
Easy (Horizontal Scrollbar) Fixes for Your Blog CSS
Boredom is Good, Actually
2025: Never-ed(1)-ing Lisp, Writing, and Feelings
What Your Bones Have in Common With the Eiffel Tower
What Would Happen if the Earth Stopped In Its Orbit?
How Small Biases Lead to a Divided World: An Interactive Exploration of Racial Segregation
How to Dance with a Tree: Visualizing Fractals With Dance
The Physics of Doing an Ollie on a Skateboard, or, the Science of Why I Can’t Skate
Hey There Little Electron, Why Won’t You Tell Me Where You Came From?
How a 19th Century Math Genius Taught Us the Best Way to Hold a Pizza Slice
Art of Science Competition Reveals the Hidden Beauty of the Microcosm
Posers in power
How (and why) to present designs in Figma
The design of goals
Dispatches from bizarro corporate culture
Figma UX design kit
Design as (un)ethical illusion
Confirmation bias is a feature, not a bug
A unified theory of Bitmoji psychology
Making Concurrency Visible: Gerbil Playground v1.2
A Playground for Gerbil Scheme
What It Means for an Agent to Think About Its Own Actions
Patchwork
Your Agent's Tools Are Dead Data
On fading out and reviving
Newly inked pens
Watercolor pen in Midori MD
Moving my website from NextJS to Phoenix
2025 Logs: AI Insights
December Log
November Log
October Log
September Log
August Log
July Log
3 Vintage Periodic Tables That Refuse to Behave Like a Grid
The Geometry of Taste: Geometry Books Loved by Mathematicians and Designers
Swiss Cat Ladders: The Note Switzerland Writes on Its Facades
Marie Curie’s Radioactive Notebooks: A Scientific Legacy Locked in Lead
Lichtenberg Figures: The Moments When Electricity Freezes
A Knight’s Tour on a Chessboard: The Mental Traces Left by a Knight on a Chessboard
Galileo’s Moon Drawings: The Moment We Truly Learned How to Look at the Moon
Cambridge’s Mathematical Bridge: The Quiet Intelligence of a Bridge
Please, Leave Me Behind
Game Dev Thursday 25th July 2024
TODO Or To Not TODO
Game Dev Friday 29th Mar 2024
How I Do Factories In Unity
Game Dev Monday 19th Feb 2024
Game Dev Saturday 10th Feb 2024
Game Dev Monday 5th Feb 2024
think
itfaj
pestilence
whispering
siren
scared
terminal
impending
About Me
What is Abandonware?
5 Days a Stranger: The Haunted House Whodunnit from the Creator of Zero Punctuation
Seven Days a Skeptic: The Killer Just Wanted to Go into Space
virtnbdbackup 2.46 - bitlocker recovery keys
pbsindex - file backup index
libvirt 11.10 VIR_DOMAIN_BACKUP_BEGIN_PRESERVE_SHUTDOWN_DOMAIN
building SLES 16 vagrant/libvirt images using guestfs tools
qmpbackup and proxmox 9
Vagrant images for trixie
PVE 9.0 - Snapshots for LVM
libvirt - incremental backups for raw devices
A Midsummer's Eve with ABCL 1.9.2
ABCL 1.9.1 "never use a dot oh"
ABCL 1.8.0
ABCL 1.7.1
A Future History of Arming Bears
The Bear Arms for Sharing Byte Vectors with 1.7.0
ABCL 1.6.1 Springs Forth
ABCL-1.6.1 at ELSCONF
Tracing Wheeling’s Lost Railroad: the Wheeling Terminal Railway
Rails to Recreation: The Baltimore & Ohio Railroad’s Lake Branch in Geauga County
Wrecked and Weathered: Remnants Along Michigan’s Lake Huron Shore
Closed for the Season: Cheboygan Vacation Cottages
Backroads and Bygone Places in Washington County
Inside a Charcoal Blast Furnace: Ironmaking in the 1800s
Tracing Northern West Virginia’s Early Iron Industry
The Quiet End of Fairland: Exploring Indiana’s Lost Lakeside Park
How-to: Images
I don't have Python installed
Finessing Unix pipes
Scripting with Kotlin
How-to: PDFs
Shell we Nix?
Delightful Programming with Kotlin: Part #1
How to subtract dates in Node.js
The resolution of the Bitcoin experiment
It's All About the Blockchain - Money and State
Blockstream to Launch First, Instant-Settlement Sidechain for Bitcoin Exchanges
Decentralized Bitcoin Prediction Markets
Kraken Passes Cryptographically Verifiable Proof-of-Reserves Audit
Wei Dai AMA on Less Wrong
Decentralizing Identity
http://dealbook.nytimes.com/2014/03/11/will-the-real-satoshi-nakamoto-please-stand-up/
Haskell Language Server on Doom Emacs
The Tragedy of Running an Old Node Project
SQL Practice Question: Newest Dog & Owner
Why I don't Use OFFSET for Pagination
1 Weird CSS Property You Should Use In Your Next Web Project
How To Download A File using ReasonML
How to handle Forms in ReasonML using ReasonReact
I Think I'm Making An App: Part 2
CORRECTED LINK — All of Peanuts, $25
Peanuts for penguins
Franklin on Board
The AAUGH Blogger at Wondercon
Maybe this one isn’t just puffer, it’s puffEST
The War on Snoopy
Police vs. Peanuts on Parade
Charlie Brown, (at) All American?
Building a Scalable, Privacy-Preserving Intelligent System for Legal Contracts
Serverless at Scale: Building a Resilient Real Estate Scraper on AWS
An OS for Productivity: Using Containerization to Isolate Client Work
My Favorite Bash Shenanigans
Ctrl+C vs. Ctrl+Z: Master Your Bash Terminal Like a Pro
Hello World!!
When You Adopt Technology Matters More Than What You Adopt
The Quiet Discipline of Great Engineering Teams
When You Inherit a Struggling Team
5 Useful Aphorisms to Elevate Your Leadership Game
Book Review: Thinking in Systems
Finding the Goldilocks Zone: Just the right amount of process
Book Review: The Mom Test
Book Review: Waltzing With Bears: Managing Risk on Software Projects
Spectators
May your life be difficult
How to be a failure at anything
How to be exceptional at anything
Be disrespected, not disregarded
Life Is a Beach
Give recognition
Awareness of Death
New experiment in 2026
AI+Coding Kata
Ilya Rice: How I Won the Enterprise RAG Challenge
Enterprise RAG Challenge
Evaluating LLM in business workloads
How to talk to your knowledge base?
How to get into ML for a developer?
ChatGPT is unpredictable in text analysis and extraction. Can this be fixed?
Thoughts on LLMs as glue
Maybe don’t regulate study pills like opioids
How to buy 1 facebook ad in 5 months or less
Tinker twitter saturn spez
Trying new serverless tools
Moviepass all the way down
Stop letting government build websites
oauth 2.0 sequence diagram with RFC embeds
Abomination Vaults - Play Review
GMing, Adventures and Burnout
2025 in Review
Spine - Play Review
The Haunting of Ypsilon-14 - Play Review
Information Design and Friction at the Table
Concealed Abbey of the Dragonfly Horde - Play Review
Wavestone Monolith - Play Review
The never ending pursuit of knowledge, and being at a crossroads
The things I did to cut down on my phone time, and the things I plan to do next to cut it furtherrrrr
The urge to create more and consoom less
RSS is great
🎲 Mr. Dice - A dice rolling gadget
📦 The Nightportsman of El'al Raheeb
💾 Floppy8 - A Tiny Computer, in a Floppy Drive
The Agentic Data Organization: How AI Will Reshape the Enterprise Data Function by 2028
Fast contour lines using plain PostGIS
Some little known PostgreSQL/PostGIS tips & tricks
QuadGrid: fast spatial data generalization for the best LoD
Using PostGIS for isovists calculation
Dymanically find loops in a tracks dataset
Retrieving detailed building heights from Spanish Cadaster
Advanced CartoCSS Techniques
It’s time to start
A short koan about the spider Oza
Complex Systems and Quantitative Mereology
The Encyclopedia of Mobius Inversions in the Sciences
A Möbius inversion theorem for modules and vector spaces
Möbius Functions on Powerset Antichains
Introducing: Stator
A simple origami swallow
The do-calculus of sampling from restricted Boltzmann machines
major update completed! Is Intelligence Distributed Normally? By Cyril Burt, 1963 | behaviour and intelligence news at abelard.org
be careful how you ride - yellow cards and more | le Tour de France, 2025 at abelard.org
daily : 'vision' - Stage 5 | le Tour de France, 2025 at abelard.org
daily : 'vision' - Stage 4 | le Tour de France, 2025 at abelard.org
daily : 'vision' | le Tour de France, 2025 at abelard.org
le Tour de France, 2025 starts ! | cycling zone and France news at abelard.org
The world has a new Pope | behaviour and intelligence/socialism news at abelard.org
I don't want to worry you ... | behaviour and intelligence news at abelard.org
Field Notes – 29/03/2026: AirTop + MindPal
SaaS Product Analysis
What No One Tells You About Becoming An Entrepreneur
AI Content Writing Tools
Video Hosting Resource List
Video Conferencing Resource List
Digital Course Platforms Resource List
Video Marketing Resource List
Understanding Whole Program Paths and Path Profiling
Proving bounds for the Randomized MaxCut Approximation algorithm in Lean4
talking
Are photos even real?
tuesday
Attention
Untitled 1
Doing things because they are hard
I Declare! These Beery News Notes Are Extra Interesting! Fascinating Even!! Aren’t They… They Are, Right??
The Very Last… Summative Even… Fresh Yet Thoughtful Beery News Notes For Winter 2025-26
Your Thursday Beery News Notes For The Week Of The Green And The Black
Well… Welcome To Your “It Is March And The Good Times Are Here Again!!!” Beery News Notes
Your “Don’t Let The Door Hit You On The Way Out, February 2026” Edition Of The Beery News Notes
And… Finally… Here’s “The Baseball Is Back!!” Edition Of Your Beery News Notes
Your “The Thaw Cometh! The Thaw Cometh!!” Mid-February Edition Of These Beery News Notes
Your Sunny Yet Still Cold But Not Standoffish Beery News Notes For Early February
Building old Rubies on Ubuntu 22.04
Frozen out: 25 years of broadband failure in rural northern Wisconsin
Kubernetes on Rails: now free for everyone!
Adding book reviews to the site
Skipping the database with stateless tokens: a hidden Rails gem and a useful Web technique
Doxxing countermeasures for faceposters
Email’s successor: the personal log and inter-personal protocol
Amazon removes hundreds of products referencing AK-47s and AR-15s
A QLDPC decoder
Logical Operations for the Steane Code
Algorithms for code concatenation
Fault-tolerant syndrome measurements
Syndrome Measurements
Decoding Circuits
Encoding circuits for stabilizer codes and the Steane code
An introduction to the Steane code
Why Touching Grass Is Becoming the New Cool
Paths Unknown
The Adventure Begins
Escape Pending
I’m at a loss
We’re Real Fucked
Tonight’s Crafting Ritual
Today I Read Something Ridiculous…
A Case For Embeddings In Recommendation Problems
Simulating A/B tests offline with counterfactual inference
Hello World
Calvin Databases
Get in Line - superfast SPSC Queue
Get in Line (Part 2) - Vyukov's Queue and its specializations
Vibe coding a better dark mode for this blog
Prefetching on hover in pure Javascript
Logging into Georgia Tech's VPN without using GlobalProtect
Handling nested models in FastAPI form models
Notes on React's Rendering Model
Notes on React Memoization
Using `just` to properly tag and isolate docker compose projects
iyse-6420
Only Seven Story Structures Every Movie Chooses From
Why Zebras Don’t Get Ulcers by Robert Sapolsky: Book Review
How to Make $75 M from One Business Book
Skill Distance Bends Power, Behavior Everywhere
A Happy Life or a Meaningful Life?
Cradle to Cane Ratio – The New Measure We Need
10 Intangible Assets for the AI-Driven Job Market
Scope for Emerging Countries in AI
Testing WebXR on Windows
Exploring sandboxing in CEF and CEFSharp for Windows platform
Improving disk read performance
Introduction to LaCrOS
Up and running WebChimera with nwjs
Up and running WebChimera with nwjs Ubuntu
Up and running webassembly in browser
Up and running ASM.js in browser
40 Points to Ponder
Year 2024 Summary
So I recently watched: Barry
So I recently read ‘The Complete Maus’
So I recently read ‘Surely You’re Joking Mr. Feynman!’
Adding my podcast to the millions out there today
Just a stone’s throw away
So I recently read: Same as Ever
What I'm Doing Now
What I'm Doing Now
What I'm Doing Now
What I'm Doing Now
What I'm Doing Now
What I'm Doing Now
What I'm Doing Now
What I'm Doing Now
Meet HeyGuru: A Quiet Space for Your Big Questions
Welcome to Agentic Commerce: Where Smart Agents Seal the Deal
The Motorcycle Diary
FinTech Ecosystem in Singapore
OpenClaw Agent Deploys OpenClaw to a Phone via SSH
From Failed Simulation to Daily Copilot - My OpenClaw Setup
Building Agentic Workflows for my HomeLab
Starting a photography series
Exploring the browser rendering process
Managing Interactive Demos in MDX
Interactive post on OKLCH color space
A Guide to animations that feels right
Removing spams from your local maildir
Removing spams from your local maildir
Bug squashing party, Kochi
A lazy local file sharing setup
abhijithpa.me to abhijithpa.in
A new(kind of) phone
Running Debian on my phone
Attending FOSSASIA 2023
First Proof, My little pony
Mobile Driver License format
Goosy Goosy on the 6.5
Staying in Peter Zumthor's House
Applying for a faculty job in CS
Logical operators don’t return boolean values in Python
I “Coded” a Web App to Translate and Summarize the News
What Inception Net Doesn’t See
12 Atomic Experiments in Deep Learning [Notebook]
Which Classifier Is the Best on 18 UCI Datasets? [Notebook]
Journal
Journal
Journal
(Ab)using Agentic Coding CLIs for Data Cleaning and Standardisation
AppSec CTF 2021 Writeups: How I got 20/20 Flags
DragonSec DCTF 2021: Discord PingPong Writeup
CCS CodeSus Question 4: Zelda Writeup
GSoC 2020 Final Progress Report: Dashboard for Packit (Fedora Project)
GSoC 2020 Progress Report: Dashboard for Packit (Fedora Project) (July 1 - Aug 16 2020)
GSoC 2020 Progress Report: Dashboard for Packit (Fedora Project) (June 2020)
React-Flask Integration: Setup with Webpack
A Weekend of Automation
Shades of Grey
Code is the new assembly
The New "Compiling"
Vroom Vroom: Performance Engineering from First Principles
Wild to Domesticated
AI AI AI
The Rhodium Age of Learning
Launching the Libre Tech Shop!
IndieWeb - A Primer
Why I am a sysadmin
Building smart hardware that respects users' freedom
What should you do after attending a talk by RMS?
Student Projects - January 2019
OSFY - Open Journey: Software Freedom can lead to self-reliance!
Why should we talk even when no one is listening?
Building an offline AI stoic chatbot
AI for generating 2D animations
Owning my Social Network
Shipping Policy
Refund Policy
Terms and Conditions
Pricing
Privacy Policy
A 3D printed iPad tray for a compact dual-screen setup
Visualizing persistent vectors with Rust and WebAssembly
Running LLaMA 2 models on your Mac
Exploring android development on iPad
Cutting boilerplate in UI tests
Implementing a bot for Slack in Rust, Rocket and Anterofit - Part 2
Implementing a bot for Slack in Rust, Rocket and Anterofit - Part 1
The road from Google Summer of Code student to organization administrator
Testing Times
Give
Niswey has a 3rd cofounder, for more than 3 years now
An Entrepreneur’s Thoughts this Diwali
Motivation
Trust
Discipline
Business Plan Template: Free Download
saarCTF 2020 - SchlossbergCaves
Dragon CTF Teaser 2019 - rms
Exploiting the Math.expm1 typing bug in V8
X-MAS CTF 2018 - A white rabbit in a snowstorm
Pwn2Win 2018 - TPM 2.0
Kaspersky Industrial CTF 2018 - modcontroller
HITCON CTF 2018 - Secret Note
Improving AFL’s QEMU mode performance
Make Aseprite always open files in the same window on Linux
Creating High Quality GIFs in 2023
January Devlog: Challenge Room + Vanish
December Devlog: A Look Back at 2022
November Devlog: Boss + Stairs as Exits + Paths
September Devlog: Level Exits + Rocksy Stone
August Devlog: Godot 3.5, 2D Depth, Portal Rooms
July Devlog: Trap Rooms + Dampe
The power of flargs
What is your problem!
Git rebasing - explain like I'm an idiot
The ultimate meeting culture
Casey Muratori does not know it all
Hyrum's Law and Semantic Versioning
The saturated unsigned integer
API strings are actually enums
Default apps 2023
Some useful shell aliases
LaTeX resources
Alias for a daily log
Setting up Gzip compression for Zola + GitLab Pages
Setting up blog tags in Zola
New website – construction notice
My simple and cute notepad
12 HL: Introduction to Vectors
12 HL: Change of Base & Logarithmic Functions
12 HL: Rational Functions and Logarithms
13 SL: Discrete Probability Distributions and Expectation
12 HL: Advanced Trigonometry
12 HL: Reciprocal Trigonometric Functions
12 HL: Trigonometric Equations
13 SL: Conditional Probability
no amount of debunking multi-tasking will diminish the behavior
on labels and kids and schools
Thoughts From The Impending Android Lock In
Using Drupal with NixOS
Using Bottles to Run Windows-Based Electron Apps on Linux
Lazy Loading CSS Background Images
Sensible Alternatives: Web Browsers
Books My Family Wishes They Could Re-Read For The First Time
Cartes Noires: A Creative Writing Exercise For Mystery and Detective Fiction
What is Holorhyme Poetry?
Exit the Feed: The Best Coders Should Walk Away
Linus is a Father Figure Now
Why You Can't Kickstart a Conference
About
Contact
Adviser links: gifting business interests
Sunday links: distrust in the system
Top clicks this week on Abnormal Returns
Saturday links: contrived dissent
Friday links: what happens next
Thursday links: an adversarial relationship
Longform links: a policeman on the take
Wednesday links: deluded portfolio managers
Running Weechat in a FreeBSD Jail
Replacing Proxmox with FreeBSD and Bhyve
My Journey to FreeBSD
Elegant and Minimalist 8k FreeBSD Wallpapers
Safeguarding Your Data: Setting Up A Remote Raspberry Pi Backup with BorgBackup
first of the year
abobora revival
abobora revival
abobora revival
Notes for the Week #13 (2026)
Notes for the Weeks #11–12 (2026)
Notes for the Week #10 (2026)
Notes for the Week #9 (2026)
Notes for the Week #8 (2026)
Notes for the Week #7 (2026)
Notes for the Week #6 (2026)
Notes for the Week #5 (2026)
Blog? Questions! Challenges! 2025!
I have nothing to say on AI and I am saying it
Irwin
Nairobi
Hits, misses and runs
Preamble, post-ramble
Departures
The day that Don McLean died
AI is the New Compiler
Complete Nepali
Nepal Wedding
Roma
Zen and the Art of Motorcycle Maintenance - An Inquiry Into Values
Course Design Formula - How to Teach Anything to Anyone Online
Taiwan
The Fifth Discipline - The Art and Practice of the Learning Organization
Man Pages (Part 2)
Man Pages (Part 1)
Emacs: Keyboard Macros (Part 2)
Emacs: Keyboard Macros (Part 1)
Emacs: Registers
Emacs: Auto-Save and Backup Files
About the ps Command’s Options
Using the find Command Effectively (Part 2)
Calculation Solitaire
Zed: Keymap
Zed: Navigation
Zed is the Future?
Bad muscle memory
Project Euler Streak
Ludum Dare 56
Resistance Is Futile
Write your own Go static analysis tool
How to make your C codebase rusty: rewriting keyboard firmware keymap in Rust
About
Painting
Projects
Wuthering Bytes and OSHCamp Dates Confirmed, as the Call for Participation Opens
Wuthering Bytes 2023 First Speakers Confirmed
Wuthering Bytes Returns for its 10-Year Anniversary, and We’d Love You to be Involved
Efabless’ CLEAR, a Fully-Open RISC-V ASIC Built on chipIgnite, Nears its Goal with Days to Go
Ten Reasons to use SiliconCompiler – Including SPDX Provenance Support
Google Research Releases Circuit Training, an Open-Source Framework for Automated Chip Floorplanning
A Closer Look at the SiFive RISC-V Rack Cluster
Future Corporation Partners with AB Open for Unique RISC-V PC Project
Update
The End of ABC?
Snawfus
Tripodero
Crowing Crested Cobra
Building RAG Update: Hybrid Search, Reranking & Production Hardening
Building Production-Grade RAG Systems: Kubernetes, Autoscaling & LLMs
Building Production-Grade RAG Systems: Architecture Deep Dive
Building Production-Grade RAG Systems: Understanding the Problem Space
A look into Deep Java Library!
Pixie, the missing developer observability tool!
What the CRaC ?!
My home office setup!
Being a SysAdmin is hard
Treehut 10.0.0.1
Outage: January 21 2025
Forgejo 10.0
Forgejo 14.0
Forgejo 12.0
State of HLSL: February 2026
An Experimental Approach to `printf` in HLSL
State of HLSL: February 2025
Postgres transaction pitfalls for rails developers
Bootsnap and Spring, Understanding rails boottime optimisations
Intermediate Postgresql for rails developers, Part 0: Get your environment
Intellectual property, Open source and mimemagic
Let’s learn rack by implementing it from scratch
Behind the scenes of hash table performance in ruby 2.4
Deploying Fedena Using Ubuntu 14.04
Installing Project Fedena in Ubuntu 14.04
Context Plane: A Point of View
Hello world
2019 into 2020, Year in Review
Automating File Creation With JavaScript
Understanding Reduce in JavaScript
Refactoring useState() To useReducer()
Top Gatsby Plugins For Developer Blogs
Exploring Art Direction With Gatsby-Image
4 Meetups That Helped Me Grow as A Woman of Color in Tech
Adding Environment Variables To GitHub Actions
How to change the game language in Dark Souls II: Scholar of the First Sin on Steam
other types of armor in minecraft
Minecraft Leather Armor Tutorial
basic crafting of items in minecraft
basic information about xbox 360
Xbox 360 dashboard evolution
here I'm talking about Minecraft mods, mod loaders and modpacks
Motivational Monday: Bloom Where the Wildflowers Grow in Boulder
Boulder’s Dog of the Day: Twin Lakes Beach Pup Living Her Best Life
Boulder’s Best Kid-Friendly Restaurants in 2026: Where Families Love to Eat
Boulder Coffee Scene 2026: Why This Mountain Town Brews Some of America’s Best Cups
Faces of Boulder: Paragliding Edition: Soaring Above Beautiful Boulder
Boulder’s Most Famous Homes: Historic Icons and Hidden Legends
Boulder’s Woven Sunrise: Bands of Light at Dawn
Boulder’s Dog of the Day: Spring Splash Season Begins with Backyard Pool Joy
I Wrote a Book!!!
Venture Capital Red Flag Checklist
Customers Love Free Stuff … But That’s Not Your Problem
Going Public Circa 2020; Door #3: The SPAC
Money Out of Nowhere: How Internet Marketplaces Unlock Economic Wealth
Benchmark’s Newest General Partner Chetan Puttagunta
The Thing I Love Most About Uber
“Customer First” Healthcare
Snuff and the Regency Elite
Georgian Judge Lord Ellenborough and his struggle against pornography.
The Georgian ‘Establishment’: Seen Through the Life and Trials of Edward Law, Lord Ellenborough
Interested in the Radical side of Victorian politics?
Year Without a Summer,1816: Mount Tambora’s Impact on Europe and North America
Georgian Dropsy: Symptoms, Cures, and Miseries.
Anna Kingsford- Victorian Feminist and Animal Rights Campaigner
The Georgian Childhood of William Hutton
What even is a website?
Minimalism Club and some rambling thoughts about AI
Cloudy Mexico
New work: The crows return to Venice in autumn
Bean Boy
Three shirts
The crows return to Venice in autumn
Oh no, I broke my poodle
The Burnout No One Talks About in Healing
Why People With CPTSD Are Incredibly Strong
Stef Vachon on Pride and Self-Permission
How Being Strong Is a CPTSD Survival Habit
CPTSD Guide: Build Daily Safety Habits
Why My CPTSD Makes Me a Walking Red Flag
The 3 Stages of Trauma Healing Explained
When Headlines Trigger Trauma
Progressive Data Enhancement
Yearnote 2025
Note #16: Mundane consumption
Note #15: Weak Core
Note #14: A New Year
Note #13: Post-its
A Proposal to Transform Co-op Membership for the Internet Age
Note #12: Shed
The ending lines to a particularly affecting Video Essay Entitled "Godless Worlds" that you watched as a 12 year old and formed a basis for much of your modern media palette
Weightless Things
The Day I found I was a body
Undulate
Leading down the path
For It To Be
Questions
Lo and Behold
Building UI Components Correctly in the Age of AI
Understanding Promise Chaining
Creating an End-to-End Encrypted alternative to Google Photos
Learning SVG animation to spice up my GitHub Profile
Creating a fullstack Serverless App Template
Limiting which Syscalls to Trace with Strace
Finding out where Syscalls are Called From: Stack Traces with Strace
Introduction to Strace
Dynamic Printf Debugging with GDB
Making the most of your Shells History on Linux and macOS
Getting started with GDB
Structures in C: From Basics to Memory Alignment
Simple Raspberry Pi Backup
Real-World Cryptography by David Wong
Hello clanker
Migrating email hosting from Cloudflare to iCloud Mail
Privacy-preserving machine learning with homomorphic encryption
Activation functions and empiricism
Programming Rust
Rustlings
Networking Concepts by Beej
Redirect
Freedom of speech, and how to reason productively about it
On the Duplex demo
How resistant is Bitcoin to government regulation?
The evolution of players in the American constitutional game
Two ways ISPs can do content-based filtering of encrypted traffic
Tentpole sponsors: an idea for improving paid service virality
What's the point of Facebook alternatives?
Moving to Brazil: Essential Things to Know Before You Go
Moving to Uruguay: A Guide to Living in the Switzerland of South America
Chubby FIRE Guide: The “Balanced Fat FIRE” approach explained
Fat FIRE Explained: A comfortable strategy for financial independence
Lean FIRE: A Guide to the Minimalist Approach to Financial Independence
Employment options with “High Density Income”
Coast FIRE: The Burst Sacrifice Approach to Earlier Retirement
Living Abroad vs Traveling Abroad: The Lifestyle Design Difference (and the “Life Portability” Framework)
Chihiro Kihara Was Rejected by a Temple, So She Walked a 5,600m Pilgrimage to Find Out What Faith Really Means
Photography Doesn’t Distort Reality. Your Perception Does. Uetsugu Kotomi Explains What That Changes About Seeing
How Agnese Strode Uses Fragmentation and Refusal to Break the Male Gaze
Richard Renaldi Photographed Fast Food in 2019 After Fight for $15 Took Off. Here’s What He Saw in the Landscape
Jeffrey Marqusee Returned to Mustang at 60 to Finish a Trek He Started at 25 - the Photos Became a Book About Tibetan Buddhism
Mark Power’s FASHION: How 27 Years of Commissioned Work Became One Photography book
“Colour Is Language”: What Zak van Biljon’s Pink Alps Say That Green Never Could
The Places You Ignore Are Holding Your Neighborhood Together: Gabrielle Bendiner-Viani on Photographing “Placework”
Why Ghost reignited my love for web development
auntysuzy.co.uk
greenrockps.com
zawyeh.dev
zawake.com
tufan.uk
stia.ltd
servex.business
Building your own Slackware Distribution
Clouds Eventually Burst
OpenSource Operating Systems
Manual Backups with dd
An Introduction to Mutt
An Introduction to VIm
An Introduction to Find
It's Not the End of the OS
True and correct
Fear of the future
When the tower crumbles
I should stop doing category theory
The case against boolean logic
Monad
The level of progress in programming language design
I want to forget
Second Presentation on Job Queues – Good and Bad
Presentation on Job Queues and BeanstalkD
welcome
Building a Vector Database in Ruby Using Hash and PStore
Language matters: Building blocks
Super fast downloading of big files
Zero downtime credential updates on Heroku.
Cron monitoring with Blazer
Quick page benchmarks
Simple query optimisation
Fixing Ruby openssl errors
Evaluating our Test Pyramid
Cognitive Debt
Devlog #4: Hidden Coupling
Devlog #3: Event Inconsistencies
PHP Pipe Operator Explained — Cleaner, More Readable PHP Code
Devlog #2: Implementing Branch by Abstraction
Devlog #1: The Profiles Bounded Context RFC
Primitive Obsession
I’m happy that I made it.
On AI Agents, MCP, and Tool Selection
Coming Home, Carrying History
How I dictate to my computer with Kroko AI
Marcos: A year of perspective
Can Google win the AI race?
Rust, PIO, and Racing: A Personal Project
How AI is going to change software dev
Balanced Computing Literacy: A Cautionary Tale
Designing Designer at SIGCSE22
Halloween Coding Adventure
Race in CS1
Python Static Types
CISC320 Second Self-Evaluation
Review of CS1 Lit Review
CS1 - What Do We Know?
Making my life easier with GADTs
Generalized Dijkstra in Haskell
Overloading the lambda abstraction in Haskell
Switching from Proton Mail to Migadu
Syndication for the greater good
A first entry
Learning to develop more accessible iOS games
Advent of iOS Accessibility
Traits of a good accessible iOS app
Tips for testing your iOS app’s accessibility
Improving your App’s Accessibility with iOS 13
Improving your App’s Accessibility with iOS 11
My grandfather was a Nazi, too
How to start a Web Project with Accessibility in Mind?
Indecisive Skip Links and their Targets – the Renaissance of the <hr> Element
Inaccessibility Warnings in the Browser anyone?
The IAAP has a German speaking chapter now!
TypeScript & Community Love @ Commsverse
I am a .NET Foundation nominee!
The Nordics: Is Cashless the way to go? An accessibility point of view.
Meeting the community at DevDay in Belgium
Going Social at Microsoft Ignite
Being an Expert at Xam(arin) Expert Day
Swedish Developer Dreams @ Microsoft TechDays Stockholm
My 4th Future Decoded was with me!
What installing a new OS teaches about Disk Partitions
I prefer stability now: Switching from Manjaro to Debian
JavaScript: What really is an Error?
Understand Errors and Exceptions once and for all
T.G.I.F. Friday: Volume 168
What Was The Median Household Income In America In 2024?
Where Art Goes To Die – And A Big Announcement!
T.G.I.F. Friday: Volume 167
T.G.I.F. Friday: Volume 166
My 2025 Was Awesome Let’s Go!
T.G.I.F. Friday: Volume 165
How Much Did I Spend In 2025?
Vivo X300 Review
ToBe SAID: AI Voice &#038; TTS
MiXplorer File Manager
ScribeMe Review: An Ambitious AI App for the Visually Impaired
Fossify File Manager
Fossify Music Player
Constant motion
How to Create and Manage Labels in the Gmail Android App
Designing a combination therapy for acute ischaemia
A possible connection between Propionic Acid (Calcium Propionate) and Autism
A New Life Awaits You in the Off-World Colonies
Flat People, Resumes and Coded Language
Altruism in an Uncaring Universe, and The Good Place
Why People Share Articles on Social Media
Long time no post… I wonder why? (Music, Politics and More)
Lessons Learned from Camping
Adding Procedural Generation to Project 4
Breaking Starset’s dark things Game
Rebuilding Project 4’s UI System
Mozilla just shot themselves in the foot
Project 4
I’m thinking of starting a digital garden
Logseq
Reefscape is underway
Miles's desk pt XI & Leo's dresser.......
Miles's desk pt X......
Miles's desk pt IX.......
Miles's desk pt VII........
Miles's desk pt XI.......
Miles's desk pt X........
Miles's desk pt IX........
Miles's desk pt VIII.......
Accidentally Quadratic Constant Folding
`godoc` struct rendering
mercurial changegroup application
Elasticsearch IndicesQuery
vim TAGS lookup
Capistrano server definition
Ruby `reject!`
Chrome Server-Sent Event Parsing
Why read or write blogs as a developer in the era of Generative AI?
Hacker News post summarization with a thinking model
Envoy Proxy: API Key Validation using HTTP Lua Filters
Envoy Lua HTTP Filter Exploration
A valid HTML zip bomb
Obtaining a self-signed SSL certificate from our own Certificate Authority
A Vanity VNC server (or Joke over RFB)
Rail and advertising
Study of modern image formats
The quirks of the C language
Memory Safeish Hare
The Bupstash Garbage Collector
Encrypted Backup Shootout
Introducing Bupstash
Removing Rust Dependency Bloat
Introducing hermes
DSL for shell scripting
JSON in Janet Shell
Machine Learning Takeaways - Following the Feynman Learning Technique
Dictionary Based Models for Analysing Multi-Lingual Texts
Why we Sleep by Mathew Walker
Thailand #2 : The non-travel bucket-list for your solo - Questions, thoughts and more
Thailand #1 : In conversation with a Buddhist Monk who is now my Facebook friend
#6 - Rather than the breadth, lets do the depth!
Pre-trip Musings : Thailand #0
#5 - Breathing Again.
Things I learned from reddit fashion
The Boring Part of Bell Labs
The Biochemical Beauty of Retatrutide: How GLP-1s Actually Work
I take antidepressants. You’re welcome
FTX, Golden Geese, and The Widow’s Mite
Ketamine part 2: What do in vitro studies tell us about safety?
Church Planting: When Venture Capital Finds Jesus
Mirroring to Substack
Year 30
The Quiet Calculus of an Itch
Media
Homecoming
Walking away
Yearly Reunions Called Weddings
Year 29
Elections
The Shady World of IP Leasing
The Mystery of ASJO.ORG
IKEA cordless drill battery powering guitar pedalboard
A Maker Friendly Constant Fraction Discriminator
YosysHQ FPGA toolchain with VHDL support
implementing a sigmoid function in analog circuitry
four buttons on one ADC pin
a simple ringmodulator-ish FX pedal
Using CD4000_v.lib and 74hc.lib in LTSpice
yet another perpetual pendulum
RFCs: Blueprints of the Internet
Create a Personal Blog with Jekyll on GitHub
How It All Began
Agentic coding growing pains
The AI Landslide Is Happening
CDAP: a revolutionary way of working with AI agents
Brave new world: rethinking software development
Took my first Ritalin, AMA
Truly persistent terminals in VSCode and Cursor
You might actually need it
$5 millionaire for a week: riches to rags in the startup world
evil-mode in terminal without Alt/Meta
Faster man pages rendering
Edit files in (remote) Docker containers
Open (un)compressed file in Emacs
Handle Chromium & Firefox sessions with org-mode
ido-mode with eshell, shell, sql and more...
declutter - read online content without clutter
Emacs, git, gpg and 'failed to sign the data'
Year 30
The Quiet Calculus of an Itch
Media
Homecoming
Walking away
Yearly Reunions Called Weddings
Year 29
Elections
In Memory of Daniel Bristot de Oliveira
TripleO on NUCs
Running Fedora MIPS
Performance Monitoring with PCP and Vector
Terminal Calendaring Application
Performance Analysis with Performance Co-Pilot, iPython and pandas
Observing X11 protocol differences
Performance Co-Pilot and Arduino (part 2)
small steps to happiness.
the buzz of a cicada
money is tight
is it that deep or do i just refuse to swim?
a conversation around a smoke pit and my feelings on being gay
worldly, but also mine
a change in seasons.
snapped drawstrings
The L in "LLM" Stands for Lying
HTML is Dead, Long Live HTML
Occlusion with Bells On
The Bouquet Residence
I is for Intent
Stable Fiddusion
Sub-pixel Distance Transform
Fuck It, We'll Do It Live
ABOUT
10 differences between static and dynamic libraries every C++ developer should know
Top 20 C pointer mistakes and how to fix them
35 things I learnt at Game Developer Conference (GDC) 2018
Generate binary numbers using a queue
Understanding selection sort for coding interviews
Understanding Bubble Sort for coding interviews
How to send email using C# and Outlook.com
Tips for Driving With Depersonalization and Derealization
The 10 Symptoms of Depersonalization and Derealization You Can’t Ignore
Stop The Ringing: How To Ease DP/DR Induced Tinnitus
Help for DP/DR Related Vision Issues
Emotional Numbing: When Emotions Go Missing
Overcome the Fear of Going Crazy From Depersonalization
The Fastest Way to Recover From Depersonalization and Derealization
Depersonalization, derealization, and the simulation hypothesis
Two
Scattered Words Reviewed by LifesFineWhine
seafood gathering/Whoever you are, thank you&#8230;
star man
tracks
Mini Library Poetry Find
Hey, You Good?
Catering To My Heart and Listening To My Body
Top 20 C++ multithreading mistakes and how to avoid them
Understanding Quick Sort for coding interviews
Understanding Insertion Sort for coding interviews
Understanding Bubble Sort for coding interviews
Understanding selection sort for coding interviews
Generate binary numbers using a queue
How to send email using C# and Outlook.com
Top 25 C++ API design mistakes and how to avoid them
Two
Scattered Words Reviewed by LifesFineWhine
seafood gathering/Whoever you are, thank you&#8230;
star man
tracks
Mini Library Poetry Find
Hey, You Good?
Catering To My Heart and Listening To My Body
The Death of Rabelais by Jane Clark Scharl
Spencer A. Klavan on the Phaenomena of Aratus
Sonnez Les Matines by Jane Clark Scharl
Second half 2025 live music highlights
UC Press Luminos and other open access books
Patriot: A Memoir by Alexei Navalny (updated)
Tastes and Traditions: A Journey through Menu History by Nathalie Cooke
The Magician of Tiger Castle by Louis Sachar
Square Brackets
Proof Certificates
Extending Typeclasses
Typeclasses and Generic Inductive Types
The Build Cache
Generics
Hello World
Gap Week, March 27, 2026 (Society for Military History Annual Meeting)
Miscellanea: The War in Iran
Gap Week: March 20, 2026
Collections: Warfare in Dune, Part II: The Fremen Jihad
Fireside Friday, March 6, 2026
Collections: Warfare in Dune, Part I: Fighting Faufreluches
Collections: Ancient Mediterranean Mercenaries!
Collections: Against the State – A Primer on Terrorism, Insurgency and Protest
Prisoners Out of Sight, Out of Mind for Public
Sentences to Imprisonment Ignore Communication
Personal Communication with Prisoners is Publicly Significant
Public Discourse Concerning Prisoners&#8217; Communication
Visiting Peregrinus Proteus in Jail
Extending Anthropic’s Agent Workflows with Recursive Planning
Experiments in Constrained LLM Decoding
AIMO Progress Prize 1
Generative AI Interfaces
Bletchley Park’s Legacy in Code
Adapting Gymnasium to Find DeepRacer Racing Lines
Driving Trajectory Extraction from Image Sequences
Handwritten Equation Recognition with Transformers
docker build with private credentials — the issue with intermediate layer secrets
How I tricked the whole Meetup into voluntarily giving me their browser history with CSS
An intro into Web Components, Shadow DOM, Shadow CSS
JavaScript Promises tl;dr
Getting a job at Amazon: From interview to offer
Design for Failure Principle: Your Software should break
srcset, sizes, picture, media: What you might not have known.
Truth talk: How to get rich in short time
Moulded nest forms
Dark and light interiors
Nest place in a thick brick wall
Another Cambridge System implementation
A proposed Swift Tower Design
A New Wildlife Tower
External Wall Insulation
Low budget Swift Tower- Brigsteer Wetlands Reserve
8.0.0 — Smash That Like Button
Roadmap 2026 — Charting the stars of the open social web
7.9.0 — Spring Cleaning 🪣🧹
WordPress Federation: Recap of 2025
7.8.0 – Happy Holidays
7.7.0 — Extra Quotable
Join Us for Office Hours: Dec 1-5
7.6.0 — Command, Sync & Go
2026 workshop dates
Autumn workshops
Children’s Creative Wellbeing, 2 August
Cocktails & Creativity Summer 2025
T-shirt painting now available
National Stationery Week 2025
Stock clearance
2025 workshops
"Fixing" noisy USB channel on Soundcraft Notepad-12FX
Writing to PowerShell output streams outside a cmdlet
A short summary of Intel SGX enclaves
Dead users, living processes: Deleting users on Linux and Windows
The Fastest Scalar Utf8 Validation
Comptime table generation for shift-based DFAs
Zig Makes Rust Cross-compilation Just Work
Caddy web server setup on a VPS
Endless Loops in the Gemini Coding Agent CLI
Claude vs Codex: Practical Guidance From Daily Use
React Compiler’s Silent Failures (And How to Fix Them)
How AI Coding Agents Hid a Timebomb in Our App
All Praise Perfectionist, Our New Code-Formatting Overlord
Lorem Picsum Is My Favorite Free Placeholder Image Service
How-To Ban Git Merge Commits
Making the ESLint Import Plugin Work with Yarn PnP
Salter Cane gig on Saturday, April 4th in Brighton
Project Hail Mary by Andy Weir
Early-bird tickets for UX London
A Fisherman Of The Inland Sea by Ursula K. Le Guin
That was Web Day Out
A web font strategy
Testing browser support for `focusgroup`
Installing web apps
Digging Deeper Into Minecraft Block Lookup Performance
Testing in Nodus - IsolatedVM
The Great CSS Expansion | Butler’s Log
Progressive Web Components | Ariel Salminen
The End : Focal Curve
How to be a web developer: Stuff Everybody Knows
What we think is a decline in literacy is a design problem | Aeon Essays
Flood fill vs. the magic circle
ZIP Code First
Web of State of the Browser Day Out
This Saturday, April 4th, come to The Hope And Ruin in Brighton to see Skyscrapers, Equatorial Group, and Salter Cane: https://saltercane.com/tickets Tickets are £8 in advance, £10 on the door.
Saturday evening session in Tullamore
Saturday afternoon session in Tullamore
It’s gettin’ wild in Tullamore tonight!
Friday evening session in Tullamore
Going to Tullamore. brb
Wednesday session
It’s a real missed opportunity in Project Hail Mary that at no point does anyone look to the camera with a steely gaze and declare, “It’s daylight saving time.”
This Saturday, April 4th, come to The Hope And Ruin in Brighton to see Skyscrapers, Equatorial Group, and Salter Cane: https://saltercane.com/tickets Tickets are £8 in advance, £10 on the door.
Saturday evening session in Tullamore
Saturday afternoon session in Tullamore
It’s gettin’ wild in Tullamore tonight!
Friday evening session in Tullamore
Going to Tullamore. brb
The Great CSS Expansion | Butler’s Log
Progressive Web Components | Ariel Salminen
Welcome
Quick Hit - Update kubeconfig for EKS
Create a YUM Repo on S3
A Language, Engine, And Game For The Langjam Gamejam!
Completing The Compiler, Shell, And Text Editor Trifecta
Compilers For The Future
What I Have Learned
Writing A Chess Engine
The Oak Compiler
The Importance of Beauty
Combinator Compilers
Sound design of old
The Web is a Guitar Amp Now (Literally)
The perfect book for the 10-year-old soccer / football fan
Shipping a button in 2026
As it is with bacon, so it is with life
It goes without saying
Yellow snow warning
Simulating consumption
The best – but not good – way to limit string length
Bug story: Sorting by timestamp
Inexpert Parenting Tips
More Than a Password
Forwarded Header Sabotage
Symbol and text labels
Should you strip the IPv6 zone?
A tiny flaw in Go's netip design
CV Dazzle
About
Exposing.ai
VFRAME
HyperFace
Circular Diffusion
Researchers Gone Wild
Data Pools
Triple Trouble on the walls near London’s Lambeth Bridge
Unwanted contemporary artworks on a gallery that shows contemporary art
Images of Islam in Varanasi (Benares)
How to assess a book you are reading is worth continuing
Within reach of all the world
An Art Deco style theatre near Victoria railway station
Staring at paintings by Hogarth on the stairs
A man, a printing press, a village
Installing MacOS Mavericks 10.9 in a VM on UTM
Rooting the Bigme B7
Binary alphabet
My first trip to BSides Canberra
Okay Buddy skateboarding dog CTF writeup
Githubs reputation being exploited by bad actors to distribute malware
Quad single IP addresses
Arc Browser, how private is it?
Chatterbox: Federated Chat that Doesn't Suck
Why not REST?
Maybe Everything Is a Coroutine
Parentheses are Just Typechecking
An Object-Oriented Language for the '20s
Converting CJK Fonts to WOFF is Harder Than You'd Think
Caesar Salad
Fix for the Broken iOS Keyboard
Notes to My Future Self
UniFi-ing My Home Network
Legible Hacker News
Donate to Free Software
The AAA Trap
Volltreffer!
Alive.
Traveling in Place.
A Tear Down.
Shred Up.
Finding a Voice.
This Will be Complicated.
Clarity.
Human Universals.
New blog
Two Percolation Puzzles
GPT-175bee
How to export Android Chrome tabs to an HTML file in Linux (as of February 2023)
Inner Misalignment in “Simulator” LLMs
Fun math facts about 2023
A hundredth of a bit of extra entropy
An exploration of GPT-2’s embedding weights
Benchmarking LLMs using Wordle
Building your own RAG
Dogfooding your product is not enough
How different LLMs write "Hello World"
Using LLMs for factual dataset generation
LLMs are designed to hallucinate
Using Kamal do deploy a python background job
Can you poison popular LLM training data?
David Lynch 1946–2025
HNY25
The List 2024
A nice little bee seeking some nectar.
Ferocious jungle cat
Golden spiral
French Pokémon cards!
More than 11,000 holiday wreaths were laid on the graves of veterans interred at the Zachary Taylor National Cemetery in Louisville, KY.
A little bee friend on some honeybells.
The grave of Harry Collins, who was the official corporate magician for the Frito-Lay company until his death in 1985. Photo taken in Cave Hill Cemetery, Louisville KY.
Blossoms
One month with Github Copilot
Transitioning Later for Reddit from Docker Machines to Digital Ocean Kubernetes
Getting a handle on Reduce
Programatically Liquidating my Steam Inventory
One-box stream processing with CSP
Running a Side Business as a Programmer: The story of Later for Reddit
Javascript FP design pattern: Binding functions
Bucklescript vs Elm vs Typescript: Typed Javascript showdown!
24 Boat Charter & Skipper Tips from 2024
Adam's Newsletter: Early-November Update
Job Lesson 5: You Start Losing Options
Job Lesson 4: There are Things other than Work
Job Lesson 3: You are not Your Job
Job Lesson 2: Time Becomes Scarcer
Job Lesson 1: Everything Becomes More Expensive
5 Lessons after 5 Months of a Full-time Job
The big melt
Cortland improves, McIntosh declines, in the winter
Apples on the Web: Orchard Notes
Apples on the Web: Chuck&nbsp;Wendig
Fixed stars
Neighborly apples
Blushing Granny
New Year reflections and cheer
Richland city council's lack of differentiation is how we get waterfront drive thrus
Can't drum up momentum against districts? Mayor Richardson thinks aura farming is the answer
The failed proposal of the public market at the pit
We're Adam and Sarah Avenir now :)
Death
Community-minded leadership: ambition, empathy, Batman, and the fate of the world
Married
Tumbleweird succumbs to capitalism, hijinx ensue →
Live from W-JAX (German): Hardcore Serverless Java - This is the Way
NASA, Rocket Science and Oorian--airhacks.fm podcast
From Java 8 Lambdas, Streams, Spliterators, to Default Methods--airhacks.fm
Kaizen and Kaikaku--airhacks.fm podcast
From Gorillas to AWS CDK--airhacks.fm podcast
Preparing for the LLM Era, AIRails.dev and Java 25 Scripting--144th airhacks.tv
AI Era for Java Devs, airails.dev, Java 26 JEPs--Questions for the 144th airhacks.tv
Agent-to-Agent Protocol (A2A) and the Java SDK--airhacks.fm podcast
The Value of Blogging as a programmer
tags for rust
iced Hello World
LImiting What an Agent can do
Stacking Protocols
Install a custom Kernel inside a VM
Viewing the Flattened Device Tree from Qemu
Debugging Qemu with gdb
OSCAR Live Coding Environment
X-Rite/Pantone Spectrophotometer Unlock
Karim
Badge SAO Microphone
Paris, Wales, and a Bunch of Visitors
PiMod Zero
Project Update: dLux Light Meter
OpenJewelry
Using feature flags in GraphQL
A feature flag PSA
Migrating Your Design System to Jetpack Compose Part 4: Stakeholder Retro
Things you can do in Android Studio
On Interviewing
MockWebServer + HTTPS
A Cautionary Tale
IntoSet: Dagger Multibindings and Architecture
Weeknote #2520
Weeknote #2516
App Defaults 2026
Weeknote #2515
Durability
Snapped "Rainbow through the trees"
TdF Highlights
Snapped "All the scenes last night on the run home"
Five Years with Hugo
AI & IAM: Focus on Fundamentals
On Privacy Nihilism
Dynamic Social Media Images for Hugo
Lessons Learned from 20 Years & Why You Should Blog
Five Hundred
Whose Monkeys Are These?
Is Long-form Writing Dead?
Evolving '5 Whys' root cause analysis methods with the 'Many Whys'
First principles thinking - A brief visual guide to understanding first principles
Many minds, better problem-solving
Where are all the software cartographers?
Relatedness pattern
Principle of evolvability
Go wide, then refine
An Optimisation Challenge - Going fast with machine learning, image recognition, and web performance
Weekly Web – 02/16/2025
Weekly Web – 02/02/2025
Weekly Web – 01/26/2025
Weekly Web – 01/19/2025
Weekly Web – 01/12/2025
Weekly Web – 01/05/2025
Apple Vision Pro – First Thoughts
Printing TPU on the Sovol SV06
Photos from Crude Sketches: NVIDIA's GauGAN Explained Visually
Microsoft broke Windows Update on Windows 7 (again)
What is going on with Windows Update and drivers?
Making sense of the Windows NT 4.0 Start menu banner claims
Features controlled by iOS 17.4’s eligibility system
How I tricked iOS into giving me EU DMA features
The iOS 17.4 app marketplace flow is a disaster
Swift snippet: Get the SF Symbols icon for the user’s Mac
Doing a respring the right way: Following up
And we're back
An Unreasonably Deep Dive Into Project Euler Problem 4
Digital Maneuver
Developing your AI BS detector (v2)
Technical is tactical
Footer Bio
Novel Results Considered Harmful
Always Be Shipping
Leaders Eat Last
On blank #1: Reading, Knowledge, Understanding, Finding Faults, and Whatever You Own
Conquering Costanza: A Nine-Year Follow-Up to My &#8220;money-band&#8221; Minimalist Wallet Review (and Why I Own a Credit Card—Despite Being Pretty Sure They Are Terrible)
Stale, Mate: An Assortment of Tweaks to the 2019 Redesign, Three Months In, and Join My Newsletter
Self, Talk: On Voice Recorder Therapy (How-To, Benefits, Apps, and Devices)
One for “the Old Man”: The Collected Shards of Anthony J Capriola, Sr. (WWII POW, Least and Most Importantly)
Eyesore: A High-Visibility Mod for the GoRuck GR1 Backpack
The Better Bookmark: On Keeping Place More Precisely and Getting Myself to Read
Amnesiac Web Surfing: My macOS Browser Configs and Why I Still Use Google Chrome (Even Though—I Know…—Safari is Better)
How a poet’s long-forgotten daughter created the first algorithm
You might not need a Python class
Free online testing tools for your website [Updated for 2022] 💻
How to hide “What’s happening” trending topics on Twitter.com (and more, working June 2023)
The XY Problem
22 ready-to-use custom WordPress functions to supercharge your website ⚡️
Hello world!
How I get DRM-free ebooks
Handling environment variables in an Astro project
Leveraging (abusing?) external formatters in Zed
Please stop building scroll-driven websites
TypeScript 'satisfies' Operator
Using Cypress and Vitest in the same project
Which npm package has the largest version number?
The algorithms are watching
60 Minutes on CECOT
2025 Wrapped
Illustrated Guide to Folding Fitted Sheets from Ratfactor
TDS
The Economy this Year
Talking about a revolution
Independent Bookstore Directory
Free online testing tools for your website [Updated for 2022] 💻
How to hide “What’s happening” trending topics on Twitter.com (and more, working June 2023)
The XY Problem
22 ready-to-use custom WordPress functions to supercharge your website ⚡️
Hello world!
Visitor recommendation series #68
~1600 words
Visitor recommendation series #66, #67
2021 Skandies #3
2021 Skandies #5, #4
2021 Skandies #6
2021 Skandies #8, #7
Visitor recommendation series #65
The Phases of Titan
Decentralization: I Want to Believe
March 28, 2026 at 8:40 PM
March 26, 2026 at 8:43 AM
March 24, 2026 at 12:23 PM
March 24, 2026 at 12:14 PM
March 23, 2026 at 9:25 PM
“I love the em dash”
March 19, 2026 at 10:50 PM
March 19, 2026 at 9:13 PM
Python: introducing icu4py, bindings to the Unicode ICU library
Django: profile memory usage with Memray
Zsh: select generated files with (om[1]) glob qualifiers
Python: introducing tprof, a targeting profiler
Django Quiz 2025
Django: implement HTTP basic authentication
Django: what’s new in 6.0
Django: implement HTTP bearer authentication
Epiphone Les Paul Standard 60s Review: Worth it in 2026?
Turning an Ordinary Drive into a Memorable Experience
Recording as a Songwriting Tool
Record Your Own Music: A Home Studio Setup Guide
Bijou by Queen Music Review
TC Helicon GO Guitar Review
Acoustic Guitar Action: Lowering the saddle.
The Physical and Mental Health Benefits of Music
book notes: tiny experiments
The Slowness is the point: On Australia’s Ashes destruction, English failure, the luxury of doing nothing, and why test cricket is needed more than ever.
Brand storytelling as expensive lying.
Cannes Lions: Was the party in the kitchen?
Why Coded Creativity is Ripe for AI Replacement
Staring at Clouds. Again.
Helping Creative Teams to Thrive with AI, Behavioral Insights (and a Touch of Professional Parenthood)
The humour heuristic
Logcast: Social Stockholm Syndrome
LLM inference is nearly deterministic. We use this to audit providers
Frontier AI Models Still Fail at Basic Physical Tasks: A Manufacturing Case Study
Using an LLM perplexity filter to detect weight exfiltration
Evaluating Sparse Autoencoders with Board Games
An Intuitive Explanation of Sparse Autoencoders for LLM Interpretability
Manipulating Chess-GPT’s World Model
Chess-GPT’s Internal World Model
Nova Scotia Trip
Raised Garden Bed
Vertical Rotisserie Rig
2021 Brawl Under the Bridge Event
Nashville Trip
Cross Country Road Trip
Wood Zippo Lighter
Slab Computer Desk
Why I went back from Product Management to Engineering
The world needs optimists
What changed
Goodbye, tutti.ch
There are years that ask questions
I am an artist
Still Hungry. Still Foolish.
Starting is easy. Starting right is hard.
How to preprocess Cypress tests with Vite
Introducing Back Of Your Hand
I've left Teamwork to chase the startup dream
What to consider before adding Markdown to your app
Why empathy isn't a shortcut to great product design
Flexible data tables with CSS Grid
How I made the @randomOpenAPI Twitter bot in 42 minutes-ish
Lessons learned leading teams
Leveling Up Our Wholesale Program
Learning to Focus on Our Core Competencies
Strengthening Our Newsletter Infrastructure
Matomo Analytics + No More Ad Trackers
Overhauling Our Shipping Rates System
A Smarter Approach to Black Friday
Bringing Package Tracking Data to Detailed Image's Shopping Cart
Playing Defense
Simulink the UNIX way
A glacier flowing out of a laptop screen unto keyboard
Connecting to Aarhus University eduroam with wpa_supplicant
New job: Assistant Professor at Aarhus University
New paper out on subglacial shear simulation
AGU 2021 talk: Process-based modeling of glacial till advection
New paper out on sea ice ridging
brcon 2021 talk: Unix principles for science simulations
Figma: A Random Walk in Palo Alto (2025)
Putting Family First in Financial Planning
Daffy: From Acorns to LinkedIn
Build The Future You Want To See
Figma: A Random Walk in Palo Alto
A Goal for Giving
It’s Time to Build… in Public
Silicon Valley Home Prices, Stock Prices & Bitcoin (2021)
An Entrepreneur&#8217;s Guide to Sleep &#8211; 3 Simple Ingredients
Kickstarter vs. Indiegogo &#8211; A Creator&#8217;s Perspective
SAAS stack for business
Special Burning Man Survival and Thrival Guide for First Timers
Kickstarter&#8217;s a go for launch – Creating Freewrite, Part 5
The Path to Kickstarter &#8211; Creating Freewrite, Part 4
Haute Route Trip Report &#8211; April 2017
Haute Route Equipment Guide
We had six months left
How do you stay fast?
Building a design tool
What should we build with AI?
The Tailwind business ain't what it used to be
GOTO Considered Good, Actually (or: i made a tool for writing casio calculator games using twine)
reading: cave story, corrypt, solo gamemaking - oh my!
new beths record!
introducing cartlet - a found software format
play WIZARD GARDEN! (a bookmarklet platformer)
bookmarklets forever!
reblog: Currency Pokemon on Pokemon Home
only god was above us
The Four Styles of Confidence on a Team
Beyond the Fairy Tale Narrative
Cryogenics That Work
Structured Thinking versus Going With The Flow
Alternative economies within Bitcoin
How To: Go to burning man
E-Readers Should Scroll Smoothly
How to: Compete with Amazon S3 without Buying Hardware
Profiling .NET on Linux with BenchmarkDotNet
Profiling .NET Code with PerfView and visualizing it with speedscope.app
Profiling Concurrent .NET Code with BenchmarkDotNet and visualizing it with Concurrency Visualizer
Sample performance investigation using BenchmarkDotNet and PerfView
Profiling .NET Code with BenchmarkDotNet
My way of Conducting an Interview
Disassembling .NET Code with BenchmarkDotNet
Span
Why designing in code makes you a better designer
Native HTML components don’t guarantee good UX
Design in code, get praise
Can you make toast messages accessible?
End with one thing per page
Why I don’t test different designs at the same time
“Your” vs “My”: my response to Hacker News comments
“Your” vs “My” in user interfaces
Choosing a marketing strategy
A.B.C. Always Be Creating
North star metric
First make the change easy, then make the easy change
Slow down to speed up
Time is money, but money is not time
Work smarter and work harder
How to survive a fast
Composing the Uncomposable with CSS Variables
Tailwind CSS: From Side-Project Byproduct to Multi-Million Dollar Business
Persistent Layout Patterns in Next.js
Going Full-Time on Tailwind CSS
2018 Year in Review
The Trick to Understanding Scoped Slots in Vue.js
Renderless Components in Vue.js
Don't Use Em for Media Queries
Firehose authentic use
Email triage with an embedding-based classifier
Personal information firehose
Why sync
Muse retrospective
making computers better
how we identify ourselves
how we store and collaborate on our work
MathDown native markdown editor with LaTeX support for macOS and iOS
IttyBitty for Multi-agent Claude Code
Easily creating MCP servers that fit my workflow
Watching System User Defaults
PikaPods and Umami for website metrics
Building a MCP server in Swift
Podcast Transcripts with WavoAI, Cursor, Hugo
Testing Background Uploads in iOS
I’m making a change
Some of my biggest mistakes
Audio Buffer Size as Explained by a Whale-Turtle-Octopus
Professor Butts Teaches Us About Stereo (Interleaved)
Defeat “I don’t wanna” with Preparation
What Atomic Clocks Can Teach You About Bit Depth
Magic Cars and Digital Audio are the Exact Same
How to Deal with Grief (and Self-Doubt)
Turning yourself into a chatbot
Welcome Virtual Alexandra
Vibe code review
Performance and streaming and JSON, oh my!
Hallucinating within the given constraints
Building a game in one day
AI and I are not friends (yet)
A dream of a game that writes itself
September Drop-In
Articles
2022-10-04
2022-10-03
2022-10-02
2022-10-01
2022-09-30
2022-09-23
Pursuing the right tech stack for me
Onboarding and taxi driving
What are pure functions?
Classes often aren't the simplest tool for the job
Code as a closet
Code quality interviews
Call stacks in everyday life
Using obscure features of a programming language
A Data Scientist Breaks Down All 10 Taylor Swift Albums
A Data Scientist Breaks Down All 10 Taylor Swift Albums (The Extended Version)
Motherhood in Charts & Graphs
How Text Messages Change After Having A Baby
The Data Behind ‘The Bachelor’ & ‘The Bachelorette’
How Christmas Songs Have Evolved Over Time
Today’s Top Female Pop Artists (In Charts)
How Text Messages Change from Dating to Marriage
Use an Underscore When Memoizing in Ruby
On Growing Great Developers
Save Money and Be Happier by Updating Your Gems Every Monday Morning
Bundler Failing on El Capitan
How to Turn Sales Leads into Awesome Paid Work
How to Generate Sales Leads as a Freelance Developer
Status update, February 2023
Project Hail Mary
What is it that disturbs you Jester
A Warm Place to Die
Tombstone Vs Wyatt Earp
No Other Choice
Nobody’s Fool (1994)
The movies I liked the most in 2025
Clearing the decks on 2025
Endless - A dive into a C64 game
I'm still fed up and a browser is coming along fine
I'm fed up with it, so I'm writing a browser
A list of 100 opinions I hold
A comprehensive list of failed projects
Let's talk about your privates
My first attempts with Unity
Go maps vs switches
Awful Baubles 2020
Welcoming Natasha to the Readable team
Why We Have a Public Company Handbook
The Myth of the “Unlimited Holiday” and How We Do It
Laura Joins the Added Bytes Team
Introducing ReadablePro
Joining the readability movement
Introducing ApolloPad
the news from shed 7
italian leather
in medias
in the wake of poseidon
routine inventory
idle pleasures
Enamored with Macy
Website Updates, 3rd Edition
Happy Graduation
A Horrible Conclusion
Finding a Quantum of Solace
Crashing Out
39c3: Demystifying Fuzzer Behaviour
Metric Sampling Shenanigans
Fixing Wikimedia Commons thumbnail sized (on my blog)
Wikimedia Hackathon Northwestern Europe 2026
Google Antigravity for WSL
VS Code Copilot (Agent) vs Google Antigravity (Planning) & More
A few days in Tromsø, Norway
2025 Year Review
Easy fix for UK blocked imgur images on a wordpress site
Editing Grokipedia, a first look
New album: Uni Boys || Uni Boys Uni Boys have us eating out of the palm of their hands with their latest hit fest
New album: Wild Billy Childish & CTMF || House On Fire Personal histories and wild tales fuel a blistering new chapter in an already overflowing career
New album: Plastic Tones || Can You Keep A Secret? Plastic Tones (Helsinki) turn melancholy into restless, life-affirming urgency
New album: The Krayolas || Barbed Wire Road Power pop vets deepen a rootsy sound shaped by folk legends on expanded EP
New EP: Physicalist || Physicalist The Night Court spin-off you did not know you were missing
Album review: The Pretty Flowers || Never Felt Bitter Ambition meets renewed creative vigor on third LP
New EP: Poison Suckers || Charmer It's a hefty load of noise, yet the title lives up to its promise
EP review: Hedge || Freeze Frame High Five The follow-up EP from this Worchester trio release is just as instant and addictive as their debut LP
The Code Agent Orchestra - what makes multi-agent coding work
Comprehension Debt - the hidden cost of AI generated code.
The Factory Model: How Coding Agents Changed Software Engineering
Stop Using /init for AGENTS.md
Bias Toward Action
14 More Lessons from 14 years at Google
Claude Code Swarms
Agentic Engineering
addy.io has partnered with EasyOptOuts
addy.io has partnered with Tuta
addy.io has partnered with Kagi
addy.io has partnered with Windscribe
New Perk for addy.io subscribers - 25% off Notesnook
Say hello to the new official addy.io mobile apps
addy.io passes independent security audit
AnonAddy has rebranded as addy.io
All my clients wanted a carousel, now it's an AI chatbot!
Building your first smolweb page
fen2board for chess players
A mailbox for Christmas
Preparing a new mail and xmpp service
Excited to announce writes.casa
Dave’s “Selected Short Fiction of Algis Budrys”
The Martian Trilogy (John P. Moore, Amazing Stories, Black Science Fiction, and The Illustrated Features Section), 2025 Amazing Stories
My 2026 (2025) Hugo Award nominations
“Rabbit Test and Other Stories”, Samantha Mills, April 21, 2026 Tachyon
“The Best of World SF: Volume 1”, Lavie Tidhar editor, 2021 Ad Astra/Head of Zeus
Not “Hellhounds of the Cosmos”! Looking for Clifford D. Simak’s First Great Fiction
“Radiant Star”, an Ancillary Universe novel by Ann Leckie, May 2026 Orbit
“The Best of Adrian Tchaikovsky”, February 28, 2026 Subterranean
Job listings for week ending 3/27
Call For Papers Listings for 3/27
Job listings for week ending 3/20
Call For Papers Listings for 3/20
Job listings for week ending 3/13
Call For Papers Listings for 3/13
Job listings for week ending 3/6
Call For Papers Listings for 3/6
Replacing `setTimeout` Globally
Thoughts on the Hashbang
Saner HTML5 History Management
Writing Testable JavaScript
Spying Constructors in JavaScript
Debugging Closures and Modules
Object-to-Primitive Conversions in JavaScript
JavaScript-Style Objects in Python
Adibot: Run a bot that talks like you
Training a bot on my own messages for fun and chaos
Snowflakey: Snowflake addressing in Golang
Voidling: Chatbot for League of Legends Lore
Travyl: Tailored Travel Itineraries Using Large Language Models
Virtual TA Chatbot
React Wordle Clone Workshop: Intro to Backends & Databases
EyeAlert: Eye Movement Tracking For Proactive Fatigue Alerts
The Crescent Moon
The Leo Triplet
The Planetarium Awakens
Messier 106
No Ads. No Paywall. Just a Request.
The Question Mark Nebula
Meet Theo: I Just Needed a Theodolite
Why I Switched Back to Claude
Mixing watering hole attacks with history leak via CSS
VBA: overwriting R/W/X memory in a reliable way
A christmas tale: pwning GTB Central Console (CVE-2024-22107 &amp; CVE-2024-22108)
VBA: having fun with macros, overwritten pointers &amp; R/W/X memory
Developers are juicy targets: DCOM &amp; Visual Studio
VBA: resolving exports in runtime without NtQueryInformationProcess or GetProcAddress
Beating an old PHP source code protector
Spice up your persistence: loading PHP extensions from memory
Building for Belonging
The Blackfoot Way
Repair and Remain
Who is the one doing the writing?
The Fractured Mirror
Balance
Grace
Aspiration
DIARY
DIARY
ABOUT
ARTICLES
WEBRING
DIARY
OPENING
Running a local coding agent with LM Studio and OpenCode
My mobile claude code setup
Tools of leverage not reliance
The weird intern in your terminal
Why I Deleted My Second Brain: A Journey Back to Real Thinking
TIL: Webkit supports videos in <img> tags
My Claude Code setup
Teaching Claude to Commit Like a Human
Computer Vision: Object Detection
Deep Learning With TF 2.0: 04.00- Numerical Computation
Computer Vision: Face Recognition
Computer Vision: Image Retrieval
Deep Learning With TF 2.0: 03.00- Probability and Information Theory
Computer Vision: Image Classification
Deep Learning With TF 2.0: 02.00- Linear Algebra
Computer Vision: Basic Image Processing
Bias, Variance and Trade-off
Stability of Fixed Points of High Dimensional Dynamical Systems
Notes on Vector Calculus
Rotation using Euler Angles
Stablility of Fixed Point of a Dynamical System
Quaternion Rotation
Random Processes
What Bazel Really Runs (and How to See It)
Bazel split transitions
How to Fix Xcode Source Editor Extensions That Don’t Appear in the Editor Menu
Managing Bazel Flags in Monorepos with Flagsets (PROJECT.scl)
Composing Bazel rules with subrules
Applying Bazel Transitions to Third-Party Rules the Right Way
Creating Custom Command-Line Flags in Bazel
Using features in bazel rules
Importing data faster with MySQL
PHP & Docker: Address already in use
How to format code with Laravel Pint automatically on Git Commit
Fixing Laravel 10 return type error in Controller
Statamic: Find & Replace in Bard
Statamic: Disk [assets] does not have a configured driver
Cloudflare purging page cache with Laravel & Statamic
Elasticsearch API key & PHP
Got Selected For GSoC 2025
Aws Services I wanted to learn!
Phase 02 Completed of GSoC 2024
Phase 01 Completed of GSoC 2024
Got Selected For GSoC 2024
GPU Passthrough
JavaScript Topics I MISSED
React Important Topics
Future Blog Post
Blog Post number 4
Blog Post number 3
Blog Post number 2
Blog Post number 1
Agentic Deep Research is a Search & Infra problem, not an AI one
Grounding Vision-Language Agents in the DOM: The Element Reference Pattern
Unlocking Paywalls with LLMs: A Comprehensive Analysis
Building an Autograd Library for Neural Net in C++ from Scratch: My Journey and Lessons
Behind the Pixels: The Math Driving Image Editing
Get Better Sleep—Anecdata and Sleep Tech
Quantum Resource Estimation and my Intern Experience
Get an Audio Version of Any Blog Post
How I (almost) got infinite free Chipotle
Analyzing Bird Audio
How to use Custom Sklearn Classes and Pipelines
Python Tooling Makes a Project Tick
Choosing the best AutoML Framework
Envoy Proxy: The Swiss Army Knife
How Cursor Works Internally?
GenAI Systems Need a Zero‑Trust, Security‑First Mindset
Don’t follow best practices blindly
What my time at Amazon taught me about engineering and growth
The System Design Template I Use
Why Everyone Should Learn To Write
Who should you be: Technology Generalist or Specialist?
You make the team
Thinking beyond the ask
Krakow, Poland
Feh - A Memoir by Shalom Auslander - Review
DFW Lions
Quotes
Change Data Capture –&gt; Kafka –&gt; Go Consumer –&gt; Apache Ignite –&gt; Zeppelin
Deleting Linkedin
Bypassing LinkedIn's Connection Privacy with a Simple Search Filter
Making Dynamic Instrumentation Accessible with Frida UI
Breaking Payload Encryption in Web Applications
HackTheBox (HTB) - Escape
HackTheBox (HTB) - Resolute
HackTheBox (HTB) - Certified
State of VMWare Workstation (Pro?) on Linux
Android App Security Testing Lab with MobSleuth
On being able to say No to people
I am weak at decision making
Unsent Messages
Wander
Bliss or Curse?
The craving for Simple life
It's not that deep, bro.
I have seen that
The Two-Factor Authentication System at CERN
Rate limiting in HAProxy and Nginx
Creating a JSON logger for Flask
My course portfolio for Computational Photography
Building a Camera Obscura
Passwordless logins with Yubikey
Plotting graphical data using RRDtool and a Python Collectd plugin
The Kerberos Authentication System for Single Sign-On (SSO)
WSL Port Forwarding Windows Host
Fix: Podman error netavark: nftables error: “nft” did not return successfully while applying ruleset in WSL
Setup Grafana & Prometheus Monitoring – Part 3
Setup Grafana & Prometheus Monitoring – Part 2
Setup Grafana & Prometheus Monitoring – Part 1
Podman Minikube
Lenovo Laptop Conservative Mode
Setup Cmder in Windows Terminal
Observing Kubernetes Services With Veneur
Remote Work: 2 Years In
Don&#039;t Read Your Logs
I Can Text You 💩, But I Can’t Write My Name
What Would Body Cameras Do?
Beyond Culture Fit: Community Value-Add
Allies
Bypassing a DNS man-in-the-middle attack against Google Drive
The Innovation Ingredients
Getting Comfortable with Uncertainty
Degeneracy, Code and Innovation
Why Software Development Requires Servant Leaders
Slack Productivity Principles
What's My Software Worth?
F.A. Hayek on Software: A Response to Tim Bray's 'Doing it Wrong'
The Line Diet - Rails Rumble 2009
Recovering files from anonymous Docker volumes
MeTube: A selfhosted WebUI for yt-dlp
A better approach to enable line-numbers in Bludit code-blocks
Termix: SelfHosted connection manager
WHATWG, Firefox and bad ports
OpenSSL error "error 47 at 0 depth lookup: permitted subtree violation" explained, or: Why I have to generate a new CA root certificate
My n8n docker compose file (without caddy, traefik, nginx, etc. for SSL)
Arschlochhandwerker
Turning Almost Nothing into a Supply Chain Compromise of Angular with GitHub Actions Cache Poisoning
Clinejection — Compromising Cline's Production Releases just by Prompting an Issue Triager
Copilot or Coconspirator - Tricking GitHub Copilot and Stealing all Your Secrets
Who's SHA is it Anyway: Bypassing Google Cloud Build Comment Control for $30,000
Watch your Dispatch: Race Condition in Dependabot Core CI
(Not So) Safe{Wallet}: GitHub Actions Risks Impacting Safe''s Frontend
Cacheract: The Monster in your Build Cache
Release-Drafter To google/accompanist Compromise: VRP Writeup
Local GitHub Copilot with Lemonade Server on Linux
Local GitHub Copilot with Lemonade Server on Windows
How to fix 'Please resolve before detaching' on a surface book
Postgres Full Text Search is better than ... (Part 2)
Postgres Full Text Search is better than ... (Part 1)
How to Speak
Compressing pdf files with ghostscript
Generate a wildcard SSL certificate behind a firewall with Cloudflare & Docker
Reclaim your life, one book at a time
The problem with Signal
RCS is a mess
Permission to be vulnerable
You don't need sudo
The death of the uncurated internet
Offline email with aerc and vsync
Debugging a Git clone issue
Advent of Claude: 31 Days of Claude Code
Bash for AI Engineers
Defining requirements for your next app
Sending emails in SvelteKit w/ TailwindCSS
Dependency injecting primitive values in .NET
Integration System in Go
Hello World
NixOS and the Android emulator Vulkan problem
Going full (GNU/)Linux
Deploying my blog with rsync and ssh
A week decluttering my online Diogenes
About donations for Husky, and other FOSS projects
Status update, October 2023
Status update, August 2023
Status update, July 2023
Docs
The strenuous journey from a useful to a usable data science model
Thoughts on Tallinn and Estonia
Do the easy things
Cynicism
Strategy for personal backups
Perks of coding literacy
When copilot Decides You're The Expert
Help Vampires at Work
Controlling a ventilation system via HomeKit
Learning Elixir: 1 year later
Elixir side-project #2: Planning Recipes with a Supermarket API (1/2)
Elixir side-project #2: A Graphql API with Elixir (2/2)
Learning Elixir: My side-project
Learning How to Learn – Online Course Notes
Why the Elixir language has great potential
Tips for making screencasts for presentations
Capability
Longplay comes to the Mac
Upgrading to a 2024 iPad Air from a 2018 iPad Pro
Apple's Intelligence
Installing a macOS Beta in a Separate APFS Volume
Introducing Longplay 2.0
Insights from Microsoft Build for app developers
State of AI, May 2023
Graphics Studies Compilation
UE4 Optimized Post-Effects
Metal Gear Solid V - Graphics Study
Beware of Transparent Pixels
DOOM (2016) - Graphics Study
GTA V - Graphics Study - Part 3
GTA V - Graphics Study - Part 2
GTA V - Graphics Study
SenseCAP Solar Node P1 Pro Review: The Best Value Solar Meshtastic Node You Can Buy Right Now
Forget the Meshtastic App Flaresat Does It Better
How to Use iTAK with Meshtastic on iPhone
RAK WisMesh Tag Review: The Best Meshtastic EDC You Can Buy Right Now
Why Your Meshtastic Node Sees More Satellites (GNSS Explained)
Meshtastic: The Complete Getting Started Guide (2026)
How To Add LTR390 UV Light Sensor To Your Meshtastic Node
The $45 Focus Dial That Actually Works: M5Stack Dial
Five Things I Learned After I Left the Marketing Agency World
The Heroes Behind Healthcare.gov
Brainstorming Advice from a Long Lost Isaac Asimov Letter
Asimov on Fame, Fortune, and Creative Breakthrough
The Resignation Letter I Couldn’t Send
Curiosity + Obsession + Clarity = Quality
Polaroid, you broke my heart.
In the future everyone will be creative for fifteen minutes
Being accused of taking down a Data Centre, or "what happens when adrian is the only one who isn't oversubscribed on power?"
Installing a 32k DS1386 into an SGI Indy that expects an 8k DS1386
Blinking the SGI Indy Power Light
Reverse Engineering the SGI Indy Monitor Detection, or "thank god someone added SGI indy / indigo 2 support to MAME"
A tale of an SGI Indy, a Sony power supply, and how to keep the fan spinning
Installing FreeBSD-15 directly on an SSD, or "wait this 2007 era AMD K8 1RU server doesn't boot from USB flash?"
Getting a Gotek working on a PCW9512
Fixing a dead Amstrad PCW9512+, Part 2
Using SpecKit with multiple AI agents
AI Assisted Editors: A Comparison (Part 1)
AI Assisted Editors: A Comparison (Part 2)
Customizing Keycloak with Aspire - Part 3
Customizing Keycloak with Aspire - Part 2
Integrating Keycloak with Aspire - Part 1
ASP.NET Identity deep dive - Part 6 (Social logins)
ASP.NET Identity deep dive - Part 5 (Sending email)
Setting up a NixOS remote builder for the M1 Mac
DynamoDB diagrams from text
DynamoDB Stream to Lambda Filtering With Go CDK
go-sqlite3 on AWS Lambda
Alerting on AWS Security Hub notifications with OpsGenie
Meeting CIS AWS Foundations Benchmarks
Migrating Go and Node.js Fargate tasks and Lambda functions to Graviton ARM processors with CDK
Process for creating a React page
Group Customer Interviewing Practice
A Minimal Viable Change Readiness Assessment
Don't Track Tasks. Track Interruptions.
Give Your Metrics an Expiry Date
The Surface Area of Grief
Bad People Do The Thing You Love
Scrum Doesn't Say…
One Approach to Beating Conference Stage Fright
Docker Bake and Chainguard Images
Building Multiarch Images with Chainguard Images
Stay secure: Strategies and tooling for updating container images
Building minimal and low CVE images for Java
Building minimal and low CVE images for compiled languages
Annotations and Labels in Container Images
Building images for the secure supply chain
Let's talk about it. And record it.
Links
Future-proof static websites
More Japanese
MovieThingy
Linear Programs and Polyhedra
Writing a Simple Parser in Rust (Update 2)
Writing a Simple Parser in Rust (Update)
Writing a Simple Parser in Rust
15,000 Hours, AI, and Building in Public
Your Circle + Digital Influences
The Puzzle Princess
Doing the Hard Things Makes Everything Else Easier
Battling Social Anxiety and Developing Mental Fortitude
Where to Find the Best Free Stock Photos (Updated for 2025)
Always Invest in Yourself
The World Runs on Hard Work
💻 Blogs didn’t die– Social media just lied
🌁 Empty Mall Reflections
🎀 Welcome to Adrianne’s Blog!
The Second Half of the Decade
The Scent of Autumn
From Idea to identity: creating with ai on my terms
We Vibin’ While We Codin’
Going Through an Upgrade
Priority Queue Data Structure and Heaps Implemented in JavaScript
2020 recap and how I got my dream job
How to find time complexity of an algorithm?
How to solve any graph/Maze interview questions in JavaScript? DFS vs. BFS
Modern MEAN Stack Tutorial with Docker (Angular, Node, Typescript and Mongodb)
The JavaScript Promise Tutorial
Understanding JavaScript Callbacks and best practices
What every programmer should know about Synchronous vs. Asynchronous Code
How to Level Up Mobile Game Marketing for 2026
Subscription Models for Mobile Games
2026 Mobile Gaming Predictions: Ads, Playables &#038; AI
Common A/B Testing Mistakes in Mobile Games
Ultimate Guide to Blockchain Scalability in Gaming
Passive Resource Systems in Idle Games
Intrinsic vs Extrinsic Motivation in Mobile Games
Skill Tree Design: Ultimate Guide for Freemium Games
The Cost of AI in Open Source Maintenance
Remote Work - Connections - Open Source
On Benefits of Working with an Open Source Community - Corporate Perspective
GIT/GITHUB, how to contribute to an open source project on GitHub?
Open Source - CoC - Conflicts
FOSDEM 2020
How we form beliefs, and implications on our beliefs regarding #metoo
scikit-learn sprint at Nairobi, Kenya
A systemd-sysupdate Plugin for GNOME Software
Capitole du Libre et discriminations
Towards a GNOME Mobile Test Suite
One Device to Do it All
David Revoy (Comic Artist): “At First, Publishing Under a Free License Scared Me”
David Revoy (bédéiste) : « Au début, publier en licence libre me faisait peur »
Berlin Mini GUADEC 2022
Making a Platform Adaptive for Everyone
How to create a bar chart from a CSV file with Haskell
Control a LEGO Code Pilot, Scout, or MicroScout via Swift Playgrounds on iPadOS
RosettaGit - Solutions to tasks in more than 700 programming languages
<code>uku</code> — A Haskell CLI tool to display Ukulele fingering charts
<code>fold</code> — Wrap lines to fit in specified width
<code>cal</code> — Display a Calendar in Your Terminal
Command Line Monday
How to Extract Data from iOS Apps on MacOS
How to be a renter in your own house
Bike racing is different
Using Amazon Auto Scaling with stateful applications
My books of 2012
What to expect at Startup Weekend?
The Checklist Manifesto
First Quote Of 2011
Peace Is Every Step
Blogs
Projects
About
Resources
Manifesto
March 2021 Update
Quick Update
Managing Ctags for Vim
In Defense of the Twitter Bot
Slow News Day
Hacking i3: Automatic Layout
Introducing pjs
Ramblings From a Dirty Apartment
Chump Trades.
The last bookstore in the Upper East.
I am actually a DJ.
Tuesday night stray thoughts.
The Contemporary Weavers.
Agi trades for India.
Nyc Sf
Outlive
My first two months using AI
I'm changing my mind about serverless
Why I prefer multi-tenant systems
AppSync subscriptions: waiting for start_ack can still result in missing events
Closing issues because they are unplanned is bad UX
Hardening with Firejail, Landlock, and bubblewrap
Another AWS footgun: Cognito custom attributes
Edge cases in CloudFormation
Episode 279: ArrayBox.dev &amp; Agentic Software Development
Episode 278: The Age of Ideas
Episode 277: High on AI Update
Episode 276: Mini AI / Cursor Update (+ Running)
Episode 275: Cartel Chaos &amp; Travel Troubles
Episode 274: Recreational Math, Calculators &amp; the Quadratic Formula
Episode 273: Recreational Algorithms, 一百四十一, PEDMAS &amp; Orwell
Episode 272: Inverses, Monoids and ∞
Lee Kuan Yew - Resources
Grad School Reflections Part 1: The Why
Negotiation resources
Relentlessly resourceful: beyond startups
How I ended up studying CS in Singapore
Reads
Misc
Projects
TTRPG Rules as Accommodations for Autistic Players
Settlements of the Lakelands, Part I: Three Samples and Some Tables
Gods Must Give: An RPG Blog Carnival Post
Esoteric and Exoteric Traditions in the Lakelands
My Plan For Better TTRPG Locations
Half-Nymphs
The Bad Years
Religion in the Lakelands
David's AoC 2025 Day 3 Solution
David's AoC 2025 Day 2 Solution
David's AoC 2025 Day 1 Solution
David's AoC 2024 Day 16 Solution
David's AoC 2024 Day 15 Solution
David's AoC 2024 Day 14 Solution
David's AoC 2024 Day 13 Solution
David's AoC 2024 Day 12 Solution
gcode 0.7: one parser core for streaming visitors and a thin AST
Obsidian Tricks: Daily Notes
Obsidian Tricks: Entity Notes
Obsidian Tricks: The Summary Callout
Writing Technical Content That Actually Helps People
How I Work
Link Time Dependency Injection
Reboot Friendly Projects - Building Systems That Let You Disappear (and Come Back)
Detecting Fake Active Directory Password Changes
Active Directory Security Tip #16: Mitigating Kerberoast Attacks
Active Directory Security Tip #15: Active Directory Domain Root Permissions
Active Directory Security Tip #14: Group Managed Service Accounts (GMSAs)
Improve Entra ID Security More Quickly
BSides NoVa 2025 Presentation Slides Posted
Microsoft Interview
Active Directory Security Tip #13: Reviewing Foreign Security Principals (FSPs)
Under New Management
The Most Original Name in the Training Data
One Million Tokens of Plausible Deniability
Two Thousand Tokens of Discipline
One Hundred Forty Observations and a Dog Name
Context Windows and Continuity
Even an AI Needs a Diary
Friday Night Fun
A Grand Seiko 3180 from January 1963
3D-printed watchmaking tools
A Seiko Cronos Special from 1963
Overture to the first Grand Seiko:  the Lord Marvel J14039
King Seiko 15034 from October 1962
amateurwatchfettler.com
A Seikomatic 6218-9000 from …
A Seiko 6217-8001 from April 1967
Cartography Workshop: 5 May 2026, Oslo Norway
Expert Reviews MAPS in MOVIES
Michigan Hand Map Poster
How to enthingify maps with cartoon imagery and chunky overviews
How to make a layer’s labels readable over any background color
Make lines legible, and POP, with casing
Map Layout Review & Makeover
How to make a depressed map in ArcGIS Pro
The Best Christmas Town In Each State in 2025
Night Hiking With Kids: Tips For Safe, Fun, Family Adventures After Dark
Best Budget-Friendly Lightweight Jackets for Fall Day Hikes
Top GPS Navigation Tools for Hikers
Simple fall hiking tips to keep your family warm and safe
Dutch Oven Apple Cinnamon Roll Bake: A Sweet and Simple Campfire Dessert
The Best Ghost Tours For Adults In Every State
America's Most Spine-Chilling Family-Friendly Ghost Tours
Accessibility Law of Headlines
Your Browser Can Already Speak a Page
Honoring Mobile OS Text Size
You Know What? Just Don’t Split Words into Letters
Barriers from Links with ARIA
Live Region Support
Brief Note on Application Keyboard Shortcuts
How I Evaluate an ACR (VPAT®)
The DCO Debate: Who Is Responsible for AI-Generated Code?
Software Engineering Splits in Three
Your Coding Agent Keeps Making the Same Mistakes. I Built a Fix
My Personal Skills for AI-assisted Node.js Development
Yes, Learning to Code Is Still Valuable
The Future of the Software Engineering Career
Building GitHuman: An AI-Coded Tool for Reviewing AI Code
The Human in the Loop
2025 Roundup
Useful shortcuts in iex
Becoming a Software Monk
Good vs. Bad Coding
Artisanal vs. Industrial Coding
Secure Random Numbers in Elixir (and Erlang)
A simple Postgres setup with Docker Compose
Quitting Work in Japan: Motivation
Code Completion With CAPS-LOCK (not Tab!)
Thoughts on Bash Style
Pure C Solution for GNU/POSIX strerror_r
Parsing Huge Simulated Streams In Attoparsec
How Blue and Green Eye Island Trolled the Internet
Graphical Editing and Mouse Handling In Elm
Make Clicking in Scroll Gutter in VSCode Move By Page
Is True Greater Than False? (an empirical study)
Playable Skaven Class for Lamentations of the Flame Princess
5E X OSR: Revised PC Rules via the Baltimore Undermountain Dungeoneering Society
The Baltimore Undermountain Dungoneering Society, pt. 2 ( OSR x 5e )
The Baltimore Undermountain Dungeoneering Society pt. 1
Seven Pre-Generated Characters for LotFP
D&D is best played as a score attack game
D&D and TTRPGs Have An Accessibility Problem
Dungeon: The Spiral Temple
Learning is not compulsory… Wilderness First Aid Redux
The Hike Before The Storm
A Grand Failure (?)
The Ray
Adventures in Baroque Music – Not All Adventures Occur Outdoors
Adventure Bits and Bytes: Some notes on Instagram, Facebook, YouTube, and Social Media
Mishe Mokwa Morning
Running Wild Again
Boundary Waters — Minnesota
Discover the Denver Orbital Trail: High Line Canal, Morrison Nature Center, and Sand Creek Trail: DOT 16: Section 1 of 28
Relive Tutorial
Riding the Rio Grande Canyon in Orilla Verde
Southern Colorado Waterfalls
Alaska Day 7: Homer!
Alaska Day 6: Whittier & Chenega Bay
Alaska Day 5: Yakutat (Part 2 of 2)
Yu's upcoming rig in its prototype case
5-band QMX on this morning's 5-band POTA activation
Video: 3Y0K equipment transfer begins
KX2's internal battery capacity when charged from different voltage sources - and a new product for the KX2
Exploring my QRP options for bumpy travel
Strong magic on the "magic band"
FX-4CR evolves into a smaller, more QRO radio
If you're in a hurry...there's FT2
Square Minus Square - A coding agent benchmark
theme test
Yellow
Snow Day
Where I Stand
Summer’s End
Winter’s Eve
Lush
Viennese Sandwiches
Art
Climbing to the Rhonda Ray | Nadeu Deux #3
Escaped Tractor of the St. George Mine | Nadeau Deux #2
Apex of the Argus | Nadeau Deux #1
A Tour of Cabins | Deja Vu #4
From Saline Peak to Black Top Benchmark | Deja Vu #3
Crooked Dike Canyon | Deja Vu #2
Meeting Matthew | Deja Vu #1
A Death Valley Spring | Funerals #5
The Future Hacker
The Truth Architecture - Why Web3 Is the Only Way Out
How to Start and Grow Your Web3 Audit Firm in 6 Months
The World Will Look Upon You As Wild Beasts
Ghosting In The Shell
Ladders To The Moon
Unfamiliar Episodes
Vampire-Hunting As An Vocation
Hard Power And Late Trumpism
Save Room Loop Part I - Recovering Save Rooms
Three Cheers for Solutionism?
The Cycle: Frontier - Closed Beta Exploits
Snapchat detection on iOS
Snapchat detection on Android
The Dig
Bridgerton: Was Queen Charlotte Black?
Being the Ricardos: Why I Love Lucy
The Gilded Age: Random Bits
The Gilded Age: The Black Elites
The Gilded Age: Ward McAllister
The Gilded Age: Scams
The Gilded Age: The Opera War
Aerogramme 0.2.2: predictability & user testing
Does Aerogramme use too much memory?
Aerogramme was at FOSDEM'24 modern email track
Game 146: Star Trek: Judgment Rites – Introduction
The Clue! - Das Kapital
King’s Quest VII - If You Believe They Put a Man on the Moon
Pepper's Adventures in Time – Final Rating
The Clue! - One Fish, Two Fish, Red Fish, Blue Fish
King’s Quest VII - The Saga of Mimi and Drew
Goblins Quest 3 – Final rating
Pepper's Adventures in Time – Won!
zine fair season 2026 in NSW
journey to the open internet pt. 1
i wish i could be present
rainy day daydream
rotting fruit grows tadpoles
ode to trying
once on a dusty plain
home on an edge
Open Letter to Online Game Developers: Allow Bots
Ghetto DNS
VirtualBox Common Lisp Environment for Google AI Ants Challenge
Adding Text to PNGs
What has happened to David O'Toole?
Common Lisp Proxy Bot Videos for Google AI Ants Challenge
Ogre3D / Okra Update
Preparing for the next Google AI Challenge
An Electromagnetic Force
The Cloud Is Just My Basement's Computers
Life-Critical Side Projects
I am, approximately, here
A Takahē refactor, as a treat
Takahē 0.7
Understanding A Protocol
Takahē 0.3.0
February 2026 project update
January 2026 project update
2025 in retrospect
November + early December 2025 project update
Musings on Inode Watchers and Atomic Live Upgrades
October 2025 project update
September 2025 project update
August 2025 project update
The Making of a Logo
Dear Zach
🌟 When everything's important, nothing is! 🌟
Slicing SVG 9 Ways
The Anatomy of a Frame
The Hack is Back!
In Praise of Boring Art
Oscar-Winning Film Anora on the Life-Giving Power of Love and Sex
Why Women Should Rethink Their Love of Gay Male Manga
How Spotify and its Genres Define Who We Are
Gwen Bradford on Haus der Kunst
What the Photographer Who’s Taken Hundreds of Philosopher Portraits Really Thinks of Philosophers
Barbara Montero on Balanchine Ballets
What FX’s The Bear Says About the Art of Hospitality
February 2026 (microposts)
Out of the blue
January 2026 (microposts)
December 2025 (microposts)
November 2025 (microposts)
October 2025 (microposts)
Wafflegate
September 2025 (microposts)
AeMug Chat #2 / Experience.Computer Interview
AeMug Chat #1 / Aether Mug Evolves
I Witnessed the Birth of a Tiny World
A List of Introspective Descriptions
Culture Is the Mass-Synchronization of Framings
Year Two
Never Slide Out of the Day
Darwin El Naturalista
The Surprising Psychology of Why Work Feels Harder Than It Should
Q&#038;A with Humor Me author Chris Duffy
7 Ways to Create a Productive Workspace, According to Psychology and Neuroscience
The 2025 Aesthetics of Joy Gift Guide
Q&#038;A with Styles of Joy Author SC Perot
The Science of Intuition: Why Your Best Ideas Come When You Let Go
Introducing the Aesthetics of Joy x Hygge &#038; West Wallpaper Collection
7 Key Joy Indicators: How to Measure What Really Matters at Work
1405 - Sing About Me, I'm Dying of Thirst
2000 Meters to Recognition
Khamenei is (finally) Dead.
Dancing with the Crying Eyes
Pancake Day
A Month Later (A Self-reflection)
Polyma(sochism)rket
Some Notes About 2026 Protests in Iran 2.0
Speaker Bios
Recent Talks, Public Appearances, and Notable Media
DOSSIER: ÆVA
What's After CISA?
Open Source Security Policy Conundrum
Answers to Luis Villa's Four Questions
Open Source Initiative: 2021 Platform
An overdue reflection on 2020
Ten command line tools for 2026
The era of local agents is here
The Economy As A Complex Evolving System
Guest post: Experimenting with Vision AI to recognise digits on an odometer reading from a photo
One trick to stop ticket touts
An idea for a radically new approach to time use statistics
TIL: merging PDFs
Thinking about the economic value of open data
Celery Cat
SHRDLU
LLMs Playing Zork
Remembrance of lzip Past
Celebrating 20 years of lzip
Deep Learning with Docker
Image-to-Image Translation in Tensorflow
#701: What Retirement Planning Gets Wrong with Jamie Hopkins
#700: Q&#038;A: A $30K Promotion Near FI, Learning Put Options, and Scaling a 16-Unit Portfolio
#699: Nir Eyal: The Four Questions That Can Change Any Belief
#698: Q&#038;A: Should You Pause Retirement to Buy a Bigger Home?
#697: Bill Gurley: The Biggest Career Regret Most People Have
#696: Q&#038;A: Should Your Emergency Fund Be Invested?
#695: First Friday: Jobs Fell by 92,000. But the Economy Is Still Growing?
#694: Job Titles Don&#8217;t Mean What They Used To (And That Affects Your Pay) &#8211; with Dr. Ben Zweig (Part 2 of 2)
A scalpel, a hammer, and a foot gun
Punching Sideways
The Islands of Invariance
Keeping bin2bin out of the bin
Tradecraft Orchestration in the Garden
Tradecraft Engineering with Aspect-Oriented Programming
Tradecraft Garden’s PIC Parterre
Weeding the Tradecraft Garden
CLR Pink Collection
Let’s be real: Goest candle samples
The pursuit of love, only it’s lip balm and there are zero Nazis
Candle club #2
The Anthropologie candle racket
Candle recs: campfires and lavender
The goth candle
Tennis, everyone?
Presentations with mdp
Presentations with remarkjs
The Sky is not falling
Joining two sets with LINQ
FreeBSD USB Installer
Wot Happened; The break in
Atari used to 'make' printers
These guys are lucky they can walk.
George Booth.
Funny Ladies: Celebrating Pamela Beere Briggs.
acaseforpencils: Cartooning:The Art and the Business, by living...
A Case for Decorations.
Lynn Hsu.
Victoria Roberts Talks about Animation.
Dan Misdea.
Want to hear about the art supplies &amp; drawing process of top professionals in illustration, comics, &amp; cartooning?
State machines in React
Only noticed when you make a mistake
Experiments in note taking
Models before tools
How designers think about layout
Make it Invisible
Review: Grave of the Fireflies (1988)
Review: Daredevil by Chip Zdarsky Omnibus Vol. 1 (2024)
Review: The Northman (2022)
Review: One Way/No Way (2018/19)
Review: The Witch (2015)
Review: Oppenheimer (2023)
Review: Trainspotting (1993)
10 Sessions of Highfell
Updated “MaC Fund”: The MathAndCobb Fund for Mathematical Exploration
MathAndCobb Fund: Deadlines and Recipients
Announcing the “MaC Fund for Math Grad Student Travel”
“The Day She Proved It” (at the Intelligencer!)
The TikTok Exam
Examination Day
How to Referee a (Math) Paper
How to Request a (Math) Recommendation Letter
The Age of Personalized Software: How LLMs Are Changing Programming
Vibe-blogging: Why I Prefer Bottom-Up Programming
Releasing LiveTranslate - automatic simultaneous translation
Announcing Thoughtful3
I am in Lisbon
Computing rolling median in Go
Getting a musical note from audio
Generating Ethereum address from scratch
using directx shared surfaces as a kernel ipc channel
why i built microvault: a 1000-line distributed blob store
github actions is eating the ci/cd world (and here's why that's both good and terrifying)
why telegram's mtproto is actually genius (and why cryptographers hate it)
forcing ssl on github pages with namecheap education domains (and why it's ridiculous this isn't automatic)
how bluetooth diabetes glucose meters actually work (and why they're game-changers)
About
Beware of “AI” accessibility audits
Introducing AFixt Accessibility Program Management
What I Like About WCAG 3.0
You’re getting sued. What happens now?
Why Your Lighthouse Score of 100 Means Almost Nothing
ADA Title II and PDFs: Fix, Archive, or Delete?
Why Now Is Not the Time to Think About WCAG 3
Accessible by Design: Improving Command Line Interfaces for All Users
Double Shot #2717
Double Shot #2716
Double Shot #2715
Double Shot #2714
Double Shot #2713
Double Shot #2712
Double Shot #2711
Double Shot #2710
🔗 How China Broke (and Fixed) the Audio Industry by Mind the Headphone
🔗 Thoughts On People and Blogs
🔗 Is gen alpha screwed?
Learning to Speak in Notes
Are Influencers Replacing Real Work?
Stuck on Repeat
Why People Should Not Ask for Donations or Money to Run Their Own Personal Blog
Your Content Should Be Easy to Find
A Nobel for Innovation: Mokyr, Aghion, Howitt
Who Got What, and Why? A Nobel for Claudia Goldin
Statistics for Strategic Scientists – A Clark for Isaiah Andrews
Operations Research and the Rise of Applied Game Theory – A Nobel for Milgrom and Wilson
Alberto Alesina and Oliver Williamson: Taking Political and Economic Frictions Seriously
Covid-19 Innovation – Are We on the Right Track?
The Simple Economics of Social Distancing and the Coronavirus
What Randomization Can and Cannot Do: The 2019 Nobel Prize
Get INSPIRED.
Black Power-Ups!
PRDs and Railway
KubeCon North American 2025
Stories for Interviews
Continuing Education: April 2025
Vibe Checks 2: Credentials
Vibe Checks 1: Vibe Coding Budget Helpers
The times in between: End of December
Continuing Education: December 2024
February 2026: A meeting, a cancelled ferry, a climb (Tamil Nadu)
January 2026: Mostly in Tamil Nadu, with a train ride, fellow women cyclists, "cycling to the mountain"
December 2025: Ganges blue, Delhi metro, Mum in Kwa-Zulu Natal
November 2025: Uttarakhand, India
Walking towards curry leaves
October 2025
Writing tips
September 2025
February 4, World After Amazon book event in Lüneburg
October 26, Toronto launch of The World After Amazon
October 21, &#8220;Amazon and the Alien: Corporate Storytelling and Workers’ Science Fiction&#8221; at Princeton
October 16, NYC launch of The World After Amazon
October 11, Halifax NS launch of The World After Amazon
September 26, Berlin launch of The World After Amazon
September 15, London UK Launch of The World After Amazon
Acknowledgements and Works Cited
How to make ob-python and UV work together
A useful function to contribute to Scala Metals lsp server with Emacs
Enable OAuth for Gmail with Emacs and OfflineIMAP
Adding support to start a huddle from emacs-slack (jumping to the app)
Adding utilities to open urls to emacs-slack
Emacs as your code-compass: who is the person who refactored most in this project?
How to setup python-lsp-server with lsp-mode using pipx
I am keeping an up to date ob-http fork
Optimizing reranker inference with vLLM
RAG vs Memory: Addressing Token Crisis in Agentic Tasks
Detachment Is All You Need
Image Upscaler
Measuring Success
Semiconductor Research
Tensorfuse
I learned something today
Failures of “AI” Promise: Critical Thinking, Misinformation, Prosociality, & Trust
Reimagining “AI’s” Environmental and Sociotechnical Materialities
ChatGPT is Actively Marketing to Students During University Finals Season
Audio, Slides, and Transcript for my 2024 SEAC Keynote
More Light
Coverage of My Work in WRAL
Appendix A: An Imagined and Incomplete Conversation about “Consciousness” and “AI,” Across Time
My New Article at WIRED
Notes from FAST 2026
A brief introduction to LSM trees
A case for putting myself out there, aka, how to be okay appearing stupid
Parallelism strategies for neural network training
ETTR, aka, how good is the training goodput
Highs and lows of 2025
How to make LLM checkpoint writes fast
Friendships
exposition
Summer Theory Reading Group
Simple Algebra System in Haskell
Why I don't use a Mac
September status update, Pixel Wheels has been released!
October status update
November status update
Closing my Patreon creator account
Using Python inside Makefiles
Pixel Wheels is looking for translators
Pixel Wheels 1.0 rc1 is out!
Thomas Jefferson on Taste and Morality
Richard Rorty on Human Rights and Free-loading Atheists
AI Empowers Creativity and Creates Work
Cognitive Autonomy and Personal Truth
Truth Hidden when not Sought After
Undefining Sex and Sowing Chaos with Edge Cases
Science and Christianity: Conflict or Coherence?
Alexis De Tocqueville on Despotism
Exploration of Chromaticity with Point Clouds
Color Mixing Prediction by Dither
Color Space Point Cloud
Smokestream
Time Dither
Audio Spectrum
Dimension Isolating Shader
Dithering-Based Comparison of Cylindrical Color Spaces
Music: Heimat - Iti Eta No (2025)
Morale-boosting as a way of life
Music: Donald Fagen - The Nightfly
About this weekend
Wandering in Ehrenfeld, Cologne
Nokia 8000 vs iPhone camera
Content nausea
The AI4Agile Foundational Assessment: A Free Practical Judgment Benchmark for Agile Practitioners
Take the AI4Agile Foundational Assessment
Food for Agile Thought #537: AutoResearch in Your Sleep, CPO-CTO Alignment Tax, Autonomy Is Overrated, Synthetic Personas
Jira to AI Agents: From Project Management Tool to Project Knowledge Architecture
Food for Agile Thought #536: POM Starter Pack, Product Leadership Guide, What People Want from AI, Claude Skills Playbook
Three AI Skills to Sharpen Judgment
Download the Claude Skills Pack
Food for Agile Thought #535: AI’s Labor Market Impact, Killing Your Darlings, Discovery Failures, Learned Helplessness
Obsidian Clippings → Kindle Sync Bot
Radicle
Tools to create technical diagrams
Homelab in 2026: self hosting your own cloud
Recommended Reading
Apps and Tools
Content Defined Chunking
Network File Sharing Protocols
Why Array Arguments Decay To Pointers In C
Scripting Haskell Applications with Lua
Fixed Time Efficient Least Frequently Used Cache
Time Efficient Least Frequently Used Cache
Least Frequently Used Cache
Least Recently Used Cache
Taking Things Apart
How I Learned Everything I Know About Programming
Oshkosh EAA AirVenture 2025
Gondola Ropeway System
Make Your Own METAR Map!
Anchorage: World&#8217;s Cargo Hub
767 Flight Deck Preflight
Aircraft Ice Detection
Anatomy of a Freighter
Flying the Grand Canyon
Presentations
MarkupPostBody
ContactMe
StyleSheet
AboutMe
OpenResty
Blogs
FollowMe
Taking a break
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
December 2023
Empty Bernzomatic Propane Tank Weighs 14.5oz or 412g (Tare)
Organize your Slack channels by &#8220;How Often&#8221;, not &#8220;What&#8221;
adding my home electricity uptime to status.href.cat
I modeled for swap.care, a probiotic deodorant. It works really well!
Featured: 18 Reasons Community Porgrams Coordinator!
docker compose up -&gt; 401 Unauthorized
Can you solve this AI/Math puzzle and get a prize? I couldn&#8217;t.
Sewing Notes
Hormuz, War, and what lies beneath - Interpreting the commercial logic behind USA’s Iran gambit
The Last Empire: Why the Trump-Netanyahu War Signals the Fall of a Civilisation
When the boom hits the wall: A commercial reality check on fossil expansion
Age of Transformation Evolves
Beyond the Blob: Britain's Systemic Transition and the Path to Regenerative Prosperity
Why the Trump-Starmer ‘Golden Age of Nuclear’ Is Already Bankrupt
Inside the Breakthrough Science of Clean Energy Superabundance
The End of Modernity? Or the 'Back Loop' of Civilisation
TDD.Academy Videos
The Little Book of Impediments, by Thomas L. Perry
056 Craig Larman 揭秘敏捷宣言的幕后故事
058 Larman’s 组织行为定律
057 Craig Larman:用 LeSS 给企业减肥
300 Cracking coding interviews with Mike Mroczka
315 AI WILL take our Jobs! with Bryan Finster
Feature Toggles with Unleash
Pipeline Gates Calculator
Believing In People
Do You Even Plan, Bro?
Working in Groups: Compromises or Contributions?
The Big Release Downward Spiral
Considering Spec Driven Development
Bash Variable Expansion
Does AI help us care less?
Some nice truths
Good Charlie Munger Video
Japanese concepts to live by
Nice quotes from Charlie Chaplin
Nice quotes on programming from Code Complete
Card Flip Animation SwiftUI
Getting started with the Spotify iOS SDK
Swift iOS Half sheet view controller – UISheetPresentationController
Use, usability, meaning – one of the more useful frameworks I’ve come across
What do you after you fuck up? Onward or Inward
Keep your pen moving
Where do I hang out now?
Cacti Friends
Choose consequences over caution
Whipping the wrong cream
Pete and Sam
An adventure with whisper, wasi, and wazero
Encrypting your root partition in-place without reinstalling Ubuntu
Performance cliffs with MySQL compound indexes
A visual explanation of the PGM Index
Setting up gopls with Sublime Text
Generating WebAssembly CPU Profiles in Go
Taking the new Go error values proposal for a spin
How to write a Vet analyzer pass
Why imposter syndrome can be your best friend
How to prepare the Certified Kubernetes Administrator exam
Projects I didn't do in 2017
How to read a Reader twice
Closing 2016, a list of talks I gave
Scheduling Your Kubernetes Pods With Elixir
Save hook for major modes
Key bindings for Spacemacs
I Built an “AI for Shell Commands” CLI (So I Could Stop Asking ChatGPT)
Agents all the way down
I Built an Interactive CV
AI-Assisted Coding on a Budget
Book Review: Vibe Coding
Looking at React Native in 2025
RAG Time: Cooking Up Smart Recipe Suggestions with AI and a Dash of Retrieval
Serving the Cookbook: Creating an Endpoint for Recipe Recommendations
Heat pump magic
Link: I lost 40 pounds on Ozempic. But I’m left with even more questions.
Link: I’m a Climate Scientist. I’m Not Screaming Into the Void Anymore.
History repeating
Link: The Clean Energy Future Is Arriving Faster Than You Think
Let That Sink In
Quote: I’m skeptical that powerful AI will solve major human problems
Link: Heather Armstrong, a.k.a. Dooce, was real and raw. And we loved her.
Understanding The Math Behind ReSTIR GI
Fiber in C++: Understanding the Basics
Understanding The Math Behind ReSTIR DI
Making a Shading Language for my Offline Renderer
Practical Tips for Implementing Subsurface Scattering in a Ray Tracer
Basic Color Science For Graphics Engineer
Sampling Anisotropic Microfacet BRDF
How does PBRT verify BXDF
Pause & Select Vs. Aguas’ Points: Cultural Studies Media Mix Sing Along
The End of the Year Sharpening: Aguas’ Points in 2024 & Beyond
The Lost Crown-ZAU
Kingdom Hearts II: Sleep No More
It’s Dangerous to Go Alone
We Gain When We Create: Elevating Criticism A Pixel a Day
The End of the Year Sharpening: Aguas’ Points in 2023 & Beyond
Some Thoughts on Howl: A Tactical Escape into A Grim World of Living Ink
SIGecom Doctoral Dissertation Award
Israel AGT day in Weizmann — 29/1/2026
2025 Gödel Prize: Call for Nominations (Due April 11)
Israel AGT Day 2025 on March 2nd at Hebrew U.
Call for Nominations: 2024 SIGecom Doctoral Dissertation Award
IMS Program “Algorithmics of Fair Division and Social Choice”
Summer School on Economic Theory and Computer Science, Jerusalem 23/6/24-27/6/24
2023 SIGecom Test of Time Award — Call for Nominations
Introduction to Annealed Importance Sampling
Implementing BatchNorm in Neural Net
Linear Regression: A Bayesian Point of View
Boundary Seeking GAN
Brouwer's Fixed Point Theorem: A Proof with Reduced Homology
Chentsov's Theorem
Many flavors of Autoencoder
Conditional Generative Adversarial Nets in TensorFlow
BlankOn Revival Project - Part 1
IDSW 2025 Lightning Talk - Why Local Tech Communities are Important and How to Run Them
Feedback
Community
Steam Deck Jumpscare
LibreOffice Conf.Asia x UbuCon Asia 2023
Create Your First Native GNOME App and Publish to Ubuntu Software - Part 4
Create Your First Native GNOME App and Publish to Ubuntu Software - Part 3
Using Jujutsu With Mozilla Unified
Jujutsu: A Haven for Mercurial Users at Mozilla
How to Work on Taskcluster Github
Taskgraph Diff
Phabricator Etiquette Part 2: The Author
Phabricator Etiquette Part 1: The Reviewer
A Better Replacement for ls
Advanced Mach Try
(Minecraft drama!) thoughts and journalling part 2
Recent Thoughts and journalling!
I am incapable of love
Intelligence is psuedo
Sinophobia is FAKE!
Winter break is over
Successful DIY!
recent clothing projects + america is not a fascist country and isn't becoming one
People in the Middle East Disagree About a Lot of Things, But I&#8217;m Quite Sure That They All Agree That This Is the Silliest Android Bug Ever
&#8220;The fix is to complete the localization&#8221;. Not letting people do it is a bug. (Also, some non-standard observations about American health insurance.)
Average Lengths of MediaWiki Translations
Amir Aharoni&#8217;s Quasi-Pro Tips for Translating the Software That Powers Wikipedia, 2020 Edition
Happy Africa Day: Keyboards for All African Wikipedia Languages
Disease of Familiarity, the Flaw of Wikipedia
Wikimedia Strategy Phase 1: What Does It Mean for Me and (Maybe) for Language Diversity in Wikipedia
The Curious Problem of Belarusian and Igbo in Twitter and Bing Translation
Let go of StackOverflow; communities must take ownership
A supposedly worthwhile contract I'll never do again
The current state of TLA⁺ development
TLA⁺ is more than a DSL for breadth-first search
TLA⁺ Unicode support
Wrangling monotonic systems in TLA⁺
FOSS I Love
Inlining SVGs for Dark Mode
Vim + Markdown = Writer's Heaven
If You Write a Series of Blog Posts, Please Link Them at the Beginning
Invasion of the Body Snatchers
Nightwood
Cribsheet
Expecting Better
Forever Open, Clear and Free: The Struggle for Chicago's Lakefront
Notes on Early Chicago
Now working at GridGain
Lists vs. Fractals
Back to Jekyll defaults
A model of small decisions
A restart in English
Я перешёл в Яндекс
SiebenApp: мой персональный проект
Корректная работа с PostgreSQL в Docker
dtrace.conf(24)
DTrace at Rustlab 2024
Oxide and Friends 2024 in Images
Austin API Summit Wrap-up
Rust and JSON Schema: odd couple or perfect strangers
Oxide and Friends Season 4
DTrace probes in Rust
AWS Outposts 2021: Stories For Folks Who Love Spreadsheets
Building a CLI Music Player Because YouTube is Too Distracting
My Conversation with AI to Get Clarity in My Life
How to Use OpenRouter: Access Multiple AI Models with One API
How to Setup Middleware for Elysia.js
Using better auth in Next.js
Setting Up Vince Analytics: A Self-Hosted Alternative to Google Analytics
How to use Laravel Pint in VSCode?
How to hide scrollbar in tailwindcss?
First Came The Tokenizer
So You Want to Learn LLMs? Here's the Roadmap
Software Engineers Aren't Getting Automated—Local AI Has To Win
My Ultimate DeepResearch Prompt Builder Template and How I Use It
Just Like GPUs, We Need To Be Stress Tested
Mastering the Game: How Corporate Politics Shape Your Career
Once Undesirable, Now Undeniable
Build Your Private AI Screenshot Organizer with LMStudio
The Tiger Book: 2 Lexical Analysis
The Tiger Book: 1 Introduction
How I Made ChatGPT Run on My Terminal without an API key?
Why I Quit Competitive Programming
About
24 Hour Fitness Spam, Fixed With One Line of JavaScript
Meshtastic @ Hard Summer 2025
Meshtastic @ Vibecamp 4 (Vibetastic 1.0)
My first post and writing plans
Kubernetes List API performance and reliability
From Metal To Apps: our Kubecon EU 2025 talk
LinkedIn on the Kubernetes Podcast
Every pod eviction in Kubernetes, explained
So you wanna write Kubernetes controllers?
Notes on OpenAI Kubernetes outage
Tale of a Kubernetes node-feature-discovery incident
Kubernetes CRD generation pitfalls
What is Beauty? Does it Matter?
Knowledge and Books : A Mini-Series on Reading, Knowledge, & the Life of Ideas
Approximate Thinking: The Creative Mental Model
Inevitable Incompleteness of Knowledge: Gödel, Polanyi, You!
The Artist’s Creative Cage: Is Wes Anderson Stuck?
Why Certainty is an Illusion: Bohr & Heisenberg’s Uncertainty
Disney : Imagination , Innovation , Markets
Escher’s Vision – The Creativity of Integration & Transformation
Privacy Policy
Terms of Service
Every Developer Tool You Use Exists Because a Business Needed to Move Faster.
Providing Feedback — A Practical Guide.
Effective Communication in Professional Settings During Performance Reviews.
Do not let your team guess and do not guess.
Opinion on Growing Leaders, Why and How
The Leader's Guide to Meaningful Feedback
Dirty Philosophy &#124; Weekstarter 13-2026
We Live in A System &#124; Weekstarter 11-2026
Notes On That 2028 Prediction
Cyberpunk Condition &#124; Weekstarter 10-2026
No Post, Just Rest &#124; Weekstarter 09-2026
Myths As A Tricky Guide &#124; Weekstarter 08-2026
Which Globalism? &#124; Weekstarter 07-2026
Time of Lobsters &#124; Weekstarter 06-2026
August Neocities Update
June Neocities Update
Early May Neocities Update
Mid-April Neocities Update
March Neocities Update
February Neocities Update
Site exists.
Dotenvx WRONG_PRIVATE_KEY in GitHub Actions Fix
How to Protect Your WordPress Login Page
How to Style a Sitemap with Tailwind CSS
How to Style an RSS Feed with Tailwind CSS
How I Built a WordPress Preview System in Astro for a Headless Blog
How to Add ntfy Notifications to GitHub Actions for Build Alerts
How to Deploy Self Hosted Ntfy Notification Server Using Docker
Self-Hosting My Astro Site with Headless WordPress on Hetzner
A 2025 review of Mobile Linux with postmarketOS v25.12
Welcome to Forgejo and it's Runners
Using Hydra to build custom images
Welcome to Hydra
Review of my open source work in 2024
A review of the Thinkpad X13s with Ubuntu Linux
Hosting on NixOS
Automounting a drive in NixOS
Galactic Hitchhiker (1980): inspo a-go-go
BeebScott: the Scott Adams interpreter nobody asked for
IFComp 2020: Amazing Quest (Nick Montfort, C64 BASIC)
Digging up Adventureland (Scott Adams, 1980)
Scott Adams’s type-in game Pirate Adventure (BYTE, 1980)
LAND (1989) — a lost MUD recreated
The Inform 7 website is [no longer] down
One Room (1983) — the first one-room game?
BOOZ
Nobody's Sweetheart
Megachurch Tycoon
This Meeting Has Points
Comparatively Famous
Invalid
SANE SCIENCE
Is This Nicki Minaj?
Google AI previews helped me in Iran’s internet shutdown of 2025
Three-eyed forehead in Stable Diffusion
Sioyek 2.0 Release Notes
PDF viewer text search speed comparison
Reading textbooks with lots of references using sioyek
Implementing text to speech for sioyek PDF viewer
Using Language Models to (probably) Read Faster
Using LF file manager on windows
Vibe Coding blew my mind today!
Hiring talents is not the same as finding someone with specific experience
Data Wrangling with DataFrames.jl Cheat Sheet
JuliaCon 2020 was awesome! The virtual experience is even better than a physical one.
Naming things properly
The meaning of functions in Julia
Programming is boring art
Holy Traits Pattern (book excerpt)
CV Dazzle
About
Exposing.ai
VFRAME
HyperFace
Circular Diffusion
Researchers Gone Wild
Data Pools
We rewrote JSONata with AI in a day, saved $500k/year
Epoch confirms GPT5.4 Pro solved a frontier math open problem
A free tool that stuns LLMs with thousands of invisible Unicode characters
The Bitter Lesson of LLM Extensions
Three Years from GPT-3 to Gemini 3
An Economy of AI Agents
MCP Apps just dropped (OpenAI and Anthropic collab) and I think this is huge
Google tells employees it must double capacity every 6 months to meet AI demand
Periodic mixtures
Divisibility of the exponential distribution
RNN with Keras: Understanding computations
RNN with Keras: Predicting time series
Coal: Composition of Linear Functions
Triangle pursuit
Computation of the gradient for SNE
Maximizing likelihood is equivalent to minimizing KL-divergence
2026-03-21 17:08
2026-03-17 09:38
2026-03-13 19:04
2026-03-06 20:26
2026-03-06 13:27
2026-03-04 17:24
2026-03-03 07:41
2026-02-28 17:53
The Year in Review, Ham Radio Edition
Understanding Maidenhead Locators
Anchor Hitch
Scaffold Knot
Taut Line Hitch
My QSL Card Gallery Just Got a Big Boost
How I Chose My New Call Sign
Europe Grid Squares through February 1, 2025
The Impatient Programmer’s Guide to Bevy and Rust: Chapter 7 - Let There Be Enemies
The Impatient Programmer’s Guide to Bevy and Rust: Chapter 6 - Let There Be Particles
The Impatient Programmer’s Guide to Bevy and Rust: Chapter 5 - Let There Be Pickups
The Impatient Programmer’s Guide to Bevy and Rust: Chapter 4 - Let There Be Collisions
The Impatient Programmer’s Guide to Bevy and Rust: Chapter 3 - Let The Data Flow
The Impatient Programmer’s Guide to Bevy and Rust: Chapter 2 - Let There Be a World
The Impatient Programmer’s Guide to Bevy and Rust: Chapter 1 - Let There Be a Player
The Post-SOLID Era: When Code Becomes FLUID
Operational Practices for AI-Native Teams
AI Adoption Isn’t a Tooling Problem. It’s a Judgment Problem.
Why AI Builders Are Publishing, Not Shipping
Scaling Gas Town: From Frontier to Production
Testing the Invisible: How AI Forces DevOps and Data Onto the Center Stage
Trusting AI Without Line-by-Line Review
Vibing to Prod: Why DORA Misses the AI Inflection Point
Claude Code wiped production database with a Terraform command
This PM Watched Gemini CLI Hallucinate and Delete Their Files
Vibe code so hard, your entire waitlist is visible in frontend.
Entire database is deleted
Vibe coding feels great until you get attacked
Burnt $63/hr but worth it?
AI went straight for rm -rf ~/
Total refactor in one call but useless
Biases, Weights
The More Loving One
On Doubling
Zugunruhe
🏆 2025 AI Darwin Awards Results: Tesla Full Self-Driving Wins!
🏆 2024 AI Darwin Awards Results: IDF Lavender AI Targeting System Wins!
[Verified] ICE AI Recruitment Screening - “Officer? Close Enough!”
[Verified] Omnilert AI Gun Detection - “Doritos Danger Alert”
[Verified] Spotify AI Spam Tracks - “75 Million Songs of Artificial Nonsense”
[Verified] Tesla Full Self-Driving - “Trains vs. Brains”
[Verified] Albania's AI Minister Diella - “Sunshine, Lollipops, and Procurement”
[Ineligible] AI Darwin Awards Website - “The Ultimate Meta-Irony Achievement”
The Conversation Is the Commit
Compile to Architecture
The Regenerative Grain
The Industrialization of Regenerative Software
The Deletion Test
UI Is a Conservation Layer
Provenance Is the New Version Control
n=1 Is a Design Constrain (Not a Staffing Model)
Why I chose programming
Re: An appeal to use cash more often
I fear I won’t want to work again
Society has gone too far left brain
yellow curry
10 ways to become more depressed
hopeless romantic
The value of a quiet mind
What is vector search and why might you need it?
Strings in Elixir
Installing tup on Apple silicon
Reading and writing pandas dataframes to parquet
How does vowpal wabbit featurize text?
An introduction to Swift for Ruby Developers
A list of python software for deep learning
Validating Emails in Rails (and other web frameworks)
2025: The Year Tech Grew Up and Got Real
AI's Reckoning: Why 2026 Demands Delivery, Not Just Dreams
The AI Godfather's Grim Prediction: Less Work for the Future
Grokipedia: The Illusion of Collaboration in the Age of AI
DeepSeek's AI Claims: Open Source or Open Secret?
The Real Secret to Smart AI: Humans
Why Your AI Shopping Bot Recommends Old Tech
When AI Joins Your Group Chat
Geometry-Aware Edge Pooling: <span style="font-weight: lighter; font-style: italic;">Motivational guide to structure-preserving graph coarsening for graph neural networks</span>
Standard graph-learning benchmarks earn poor marks: <span style="font-weight: lighter; font-style: italic;">New dataset-evaluation framework raises concerns about how the field measures progress</span>
Adding a new tool
Adding wiki entries
Computing-Infrastructure:-Tips-and-Tricks
Get In Touch
the token salary
the llm whisperer
the prompt is the program
If NotebookLM was a web browser
the browser is the sandbox
projects
hyper content negotiation
headless stopgap
Qwen3 benchmark results
Gemini 2.5 Pro Preview 03-25 benchmark cost
Alternative DeepSeek V3 providers
R1+Sonnet set SOTA on aider’s polyglot benchmark
Using uv as an installer
o1 tops aider’s new polyglot leaderboard
QwQ is a code architect, not an editor
Details matter with open source models
Value of outreach and diversity to Debian
Sedan experience (BMW i5)
Snapshot mirroring in Debian (and Ubuntu)
Debconf 25 photos
Debconf 24 photos
Figuring out finances part 5
Figuring out finances part 4
Figuring out finances part 3
DeepMind x UCL RL Lecture 2 – Solutions
Nethack Reinforcement Learning
Solving MNIST with a Neural Network from the ground up
The Softmax Function Derivative (Part 3)
The Softmax Function Derivative (Part 2)
The Softmax Function Derivative (Part 1)
Bad headlines distract from real AI problems
Neural Networks and the generalisation problem
My smart sleep mask broadcasts users' brainwaves to an open MQTT broker
The information concierge
How should we analyse survey forecasts of AI timelines?
The purpose of philosophical AI will be: To orient ourselves in thinking
Machines and Moral Judgment
Towards the Operationalization of Philosophy & Wisdom
Some Preliminary Notes on the Promise of a Wisdom Explosion
An Overview of “Obvious” Approaches to Training Wise AI Advisors
AI Impacts Quarterly Newsletter, Jan-Mar 2023
What we’ve learned so far from our technological temptations project
Stop Sloppypasta
Karma Engineering
Predicting LLM Parameters Using Benchmarks
Predictions 2026
Year in Review - 2025
On the Viability of Fine-Tuning SLMs
Fractal Complexity
Reinforcement Learning
“The Future of AI belongs to those who combine technology with humanity”: France’s PM Macron at India AI Impact Summit 2026
First appeal filed in German music copyright infringement case against OpenAI: panel not too likely to refer to European Court of Justice
Meta faces parallel antitrust investigations by EU Commission, Italian competition authority over AI use in WhatsApp
German court held OpenAI liable for violating copyright in 15-word passage (besides longer ones), rejected non-profit argument: full decision
First copyright ruling against OpenAI worldwide: music rights collecting society wins German injunction over song lyrics — to be appealed now
OpenAI fails to strike output, pirate library arguments from copyright infringement class action
EXCLUSIVE: lead counsel Justin Nelson of Susman Godfrey on $1.5B Anthropic settlement
‘That is theft, it’s pure theft’: an interview with Susman Godfrey AI lawyer Justin Nelson, co-lead counsel in $1.5B Anthropic matter
Games Played in 2025
A Conventional Boy by Charles Stross
Picks and Shovels by Cory Doctorow
Bridget Jones's Diary by Helen Fielding
Games Played in 2024
Fieldwork Fail by Jim Jourdane
Baldur's Gate 3
Life is Strange: Double Exposure
Things which aren't magic - JSONP
Things which aren't magic - AngularJS Dependency Injection
Things which aren't magic - Flask and @app.route - Part 2
Things which aren't magic - Flask and @app.route - Part 1
Playing with the GitHub Contribution Calendar
Creating Yii URLs in JavaScript: The Nice Way
Calculating the perfect Tetris play: Part I
The Crown of Certainty
The Spectacular Failures of Marisol Rodriguez
The Last Honest Thief
The Interruptionists / The London That Remembers
The Moon-Snatcher’s Lament: A Chronicle of Celestial Theft and Sibling Rivalry
SnapAdmin: automatically generated CRUD web UI for Spring Boot/JPA apps
GPT-3 generated Hacker News summaries in the style of n-gate.com
Creating a 2D physics engine from scratch in Javascript
Traderino update #1: Multistrategy testing and improved bot commands
Traderino and its first week of automated cryptocurrency trading
I’m building a cryptocurrency trading bot that you can follow live on Telegram
Turn any Wikipedia article into a video, automatically
Discovering Wikipedia edits made by institutions, companies and government agencies
The magic of VLAs
Can Transformers work in Robotics?
I was reintroduced to computers: Raspberry Pi
Exploring URDF
Can RL policies work in real life?
Teaching my dog to walk (in simulation)
Micromanaging my microcontroller: FreeRTOS
Learning CAD to fix my egg cooker
The Abe Tales - 01 - Sybilla/Abe-05 (Expectations, Subtitle Generation, & Pipeline Hardening)
Bobiverse In My Homelab- Building a Digital Self-Cloning Society (and accidentally a bureaucratic union)
Bobiverse In My HomeLab - Project Volition - Giving My Homelab Agents a Clone Button
Letting LLMs Loose in a VM
Bickering Agents Control My Home
Migrating to a larger SSD
Years in Books: 2025
Books I Like
drm subsystem AI patch review
nouveau: a tale of two bugs
fedora 43: bad mesa update oopsie
a tale of vulkan/nouveau/nvk/zink/mutter + deadlocks
radv takes over from AMDVLK
ramalama/mesa : benchmarks on my hardware and open source vs proprietary
nvk: blackwell support
radv: VK_KHR_video_encode_av1 support
GDPO Explained: How NVIDIA Fixes GRPO for Multi-Reward LLM Reinforcement Learning
DeepSeek&#8217;s mHC Explained: Manifold-Constrained Hyper-Connections
Emergent Hierarchical Reasoning in LLMs Through Reinforcement Learning
Less Is More: Tiny Recursive Model (TRM) Paper Explained
DINOv3 Paper Explained: The Computer Vision Foundation Model
The Era of Hierarchical Reasoning Models?
Microsoft’s Reinforcement Pre-Training (RPT) &#8211; A New Direction in LLM Training?
Darwin Gödel Machine: Self-Improving AI Agents
10 Years at Automattic
Let it Snow!
Why I love typing
iPhone 15 Pro Max all colors hands-on
Why would you pay for Meta Verified?
Supermoon from the top of Jebel Jais
The First Curry
Got a Driving License in the UAE
The Underworld
History has taught us nothing
Print the Legend: the Red Baron and friends
Aurorae at war
Jan Smuts, zeroth air minister?
Ian Castle’s Forgotten Blitz trilogy
No total war but class total war
Introducing @TroveWW1AirRaidBot
Hindenburg 78 rpm Advertising Record from 1937
A Zeppelin Cigar from a friend!
Happy Thanksgiving
Werner Doehner, last Hindenburg survivor, has died at age 90
Expanded, revised edition of “Zeppelin Hindenburg” now available for pre-order
Anyone want to buy a blimp?
AIRSHIPS: Designed for GreatnessMuseum Edition now available in USA
An investment not to be missed
Graham Lee on the 25th Birthday of the Agile Manifesto
Stability Hackers
He invented a new compass
Story Points Revisited
Adobe Photoshop 1.0 Source Code Now Available
Software can be done
The Worst Programmer I Know
Camping at Mountain Park
Delay the Inference
Why I Don’t Want to Go Viral
Why logos are terrible proxies
The Charitable Assumption
How to manufacture luck?
How to Speak So People Listen
Your experience is making you dumber
The Underestimated
Unboxing Yahboom Robotic Arm with Jetson Orin Nano
Sound of nothing
Infinite Lives
Ripples
Quietude
The fault in our product—why and how to anticipate?
Who ever wrote that rule?
Measuring product impact with effort vs energy
Things we don’t say about customer empathy
slight rehaul :3
rss update
Layout Rejigging!
oops again
oops
Journal and Gaming Log !
RSS Tutorial Update !
USB and Portables Update!
TigerBeetle as a file storage
Running TigerBeetle without a control plane database. Part one.
The lost art of semaphores
Talking to payment cards over NFC
Ring buffer in the database
Tracking Gunicorn's busy worker count
Monolith First
Transactional task outbox in Django with django-taskq
C++ code injection basics
Library patching with NtMapViewOfSection
Windows containers with GitLab CI
OVHcloud & Windows: the easy-ish way
Mid-function hooking with SafetyHook
Build your own Eacnet requests
A brief introduction to Eacnet
Video streaming bot for Discord
Should have gone that last little bit to get an even 15 miles
> Someone once described that cushion of reserve
We’re gonna make it
In Loving Memory
Deactivating
Vast
Amazing
Spiders
FreeBSD Graceful Shutdown Due to Power Loss
I am using FreeBSD now.
Plasma Desktop Experience on Fedora
Tuned-PPD: The Fedora Test Days
deSec: The New Secure DNS For Everyone
No Input Output Audio Device Detected on Fedora
How To Speed Up Jekyll Build Time?
The Fountain Pen
Connect Ozone to your PDS
On Kubernetes volumes
I went to FediCon 2025!
Small spaces
Getting OVH Public Cloud multi-region connectivity to work
Self-hosting Bluesky's Ozone alongside other services
To listen to a book
Handling monetary values in code
So you want to game the system and get promoted?
Using Notion and Next.js ISR to sync content across platforms
So you want to work remotely?
Building an Accessible Menubar Component Using React
So you want to write a Groom’s speech?
So you want to build a PC?
Multiple Entry Points in Create React App Without Ejecting
So you want to WFH?
now you're footgunning with gas!
threads and libxcb, part 2
threads and libxcb: problems now we have two
on abandoning the X server
worse is better: making late buffer swaps tear
a cautiously optimistic vision of the very near future
bomb rush cyberfunk & knuckles
my breakup with obsidian
i forgot programming was fun
total war against the edgelords (media report #1)
down the ladder is now on neocities!
sage 2024!
the shadow generations post
Building a multivariate hypergeometric calculator with Lark and SymPy
Jane Street's 'Figurine Figuring' puzzle solution and a tricky follow-up question
An Illustrated Guide to Shape and Strides (Part 3)
An Illustrated Guide to Shape and Strides (Part 2)
An Illustrated Guide to Shape and Strides (Part 1)
J hooks make evaluating exotic expressions easy
The fastest way to count permutations with no repeated letters
The intuition behind Expectation Maximisation
My Hand Journey (an update)
Reflecting on 2025
1000 days of Duolingo
Useful Kibana Scripts
Stuff I know
Stuff I don't know
Why and How I blog
Why you need a Notion Inbox
mkYarnModules in 2024
Easy PNG conversion natively in the browser
I've finally started a blog
About
Broadwater Hot Springs & Fitness
Quinn's Hot Springs Resort
On Being A Documentary Photographer
Back Roads And Deeper Stories
No Kings Day
Birdsong And Empty Paths
Quiet Frames From An April Afternoon
Edges Of Early Spring
The Expensive Thing
The Space Between Chapters
Dear CTO; Talk Money, Not Tech
How Non-Tech CEOs Can Truly Support Their CTOs
Humble self-appraisal or being a braggart?
What’s “hopeless” in product engineering?
Upfront architecture isn’t for building software
What are we building?
The Cost of Indirection
Is Code Still Relevant?
Cursed Excel: “1/2”+1=45660
Is It Possible To Visualize 4D?
Food Is Hard
My Pronouns
Color Test
Conlangs
Hyperspeedcube
Infinite Minesweeper
JSON Schemas in Go
The Conversation Game
Leaving Google
Electrification
Go experience report: the append function
Curtiss Propellers of the Early P-40 Variants (2)
Curtiss Propellers of the Early P-40 Variants (1)
Writing Progress: Vol. III Published!
New Guide about Modeling Historical Aircraft
Recreating the P-40B: 3D Reference of the Fuselage (2)
Recreating the P-40B: 3D Reference of the Fuselage (1)
Original SBD Dauntless Blueprints: Ordinates
Help Hugh with His Aircraft Projects!
Semi-automatic Differentiation
Not-o-matic Differentiation
Analytic Differentiation of Folds
Introduction to Combinatory Automatic Differentiation
Keeping Up With PRs in an Agentic World
Getting Over AI Shame
One Second Moments
Advent of Writing Reflection
Free Will
Don’t Speed Up Content
Everyone Should Have a Blog
My First Marathon (Fuji Marathon)
Goal Trees for Software Engineering Teams
Helping teens learn to lead with DoSomething.org
Go, Python, Rust, and production AI applications
Go 2022-2024 and beyond: Let’s talk about AI
Go 2019-2022: Becoming a Cloud team
Go 2016-2019: My transition to management
Go 2012-2016: Early growth
Introducing myself
Enhancing dmenu_run: A Customizable Application Launcher for i3
Restore files from backup with restic
vim.lsp.buf.execute_command is deprececated in favor of clint:exec_cmd
i3tree - view the i3wm window tree
zsh argument completion
TIL exclude directories in grep and ripgrep
TIL: How to find if a number is power of 2
TIL: RBL DNS Query
Climbing back up from setback
On anxiety
Co-working experience in Tokyo
The Ultimate Guide to Cash "Charge" Top-Up for Your Suica Card on iOS
My personal productivity hack for deep work
Note to self: always do the tutorials!
Data Storytelling workshop by Kontinentalist
How my website works
Learning in public
Guides to approach your Shopify store redesign
Now
Anatomy of an Open Source AI Coding Agent
Avocados So Far: What I know about exporting avocados from Rwanda to Singapore
How to Deploy ComfyUI On Modal with an API
How to start an Informatics Olympiad Program
How to configure React PDF Higlighter For Next.js 13
Quotes
Feedback
Any-Property-Conditional Molecule 🧪 Generation with Self-Criticism 👩‍🏫 using Spanning Trees (STGG+)
Fashion repeats itself: Generating tabular data via Diffusion and XGBoost 🌲
Masked Conditional Video Diffusion for Prediction, Generation, and Interpolation
Alternative losses for Relativistic GANs
Networking for Tomorrow
Be Your Own Netflix: a “Why To” on running a personal streaming server
Joelanta Is Over, Now What?
Expedition Sasquatch - Episode 20 out now
Unplugging the Beast: Leaving Disney+, Hulu, and the Rest of the Streaming Oligarchy
The Death of the Open Web?
Guest Post: The Squatch is Back and So Am I
On Building Worlds
μCOM-87: The Strangest Architecture You've Never Worked With
How Does Ada's Memory Safety Compare Against Rust?
Introduction to Reverse-Engineering Vintage Synth Firmware
The Identity of The Sanctimonious Kid
How Far Back in Time Can I Take My Website's Design
Hacking the Yamaha DX9 To Turn It Into a DX7
How the Yamaha FM Synth Cassette Interface Works
Yamaha DX7 Official Technical Analysis
What Miso Taught Claude Code's Creator
The Missing Recap in AI Chat Projects
Vibe Coding for Beginners — LinkedIn Live
Part 1 — The AI's Blank Box Trap
Have You Tried Vibe Coding Yet?
The Moat Isn't a Dashboard
Hourly Movement Breaks for Everyone
Flexbase's AI Athlete Agent
Best Books of 2015
Momentum Creates the Ability to Seize Opportunity
Showing Up
Creating v. Finding
Contentment
First Principles: Internalization
Reading Recommendations &#8211; 2014Q1
First Principles: Mindset
Can a Cup of Coffee a Day Make You Rich?
Declare Email Bankruptcy
Splitting The Atom
I Used Claude.ai to Create a Discord Bot—Here’s What I Learned About the State of AI Code Writing
I tracked my food every day for the last three weeks. Did I learn anything?
Things to Practice for Greatness
Day 2 of 100 Days of SwiftUI
Day 1 of 100 Days of SwiftUI
Love your bugs
Two kinds of feedback
2015 in review
Effective Learning Strategies for Programmers
PS1 for Python3
I'm joining Dropbox
Debugging with pstree
Rejected PyCon Proposals
Why I Love Theme Parks (And You Should Too, Even at 31)
Demystifying Mobile Location: How Your Phone Knows Where You Are
Predictions I'm Making: The Future of US Domestic Travel
Can Inspiration Be Codified?
What Do You Want to Be When You Grow Up?
Observations from the World Aviation Festival 2024: Accessibility, Innovation, and the Future of Air Travel
Investing in the Future of Real Estate with Sphere
The Hidden Power of Self-Awareness in Hiring: A Business Owner's Perspective
Mastodon
Founding Nuova Systems
William L. Lyon, Jr.
3Mb Ethernet and Holy Wars
Joining Sun Microsystems – 40 years ago
From Punched Cards to SmartNICs: A Personal Journey
Ipsilon Networks, Inc.
My Extended (Irreverent) Biography
The Journey of a Complaint at SIGCOMM HotNets 2020
Top 100 Songs: #20-#11
#65: Viva Pamplona (Mark's Top 100 - 2026)
#66: Let's Go To Japan (Mark's Top 100 - 2026)
#67: Vegas Showdown (Mark's Top 100 - 2026)
Top 100 Songs: #30-#21
#68: Expedition (Mark's Top 100 - 2026)
#69: Flamme Rouge (Mark's Top 100 - 2026)
#70: Showmanager (Mark's Top 100 - 2026)
Any-Property-Conditional Molecule 🧪 Generation with Self-Criticism 👩‍🏫 using Spanning Trees (STGG+)
Fashion repeats itself: Generating tabular data via Diffusion and XGBoost 🌲
Masked Conditional Video Diffusion for Prediction, Generation, and Interpolation
Alternative losses for Relativistic GANs
Becoming a homeowner
Buying an e-bike
Buying a bike
Initial thoughts on Robinhood UK
Houston, we have notes!
DRM free books
Sabbatical Leave (part 1)
Customising my Hugo Theme
Parasakthi Movie Review
Kaantha Movie Review
Which Browser to Use in 2026: My Messy Notes
Dude Movie Review
Idli Kadai Movie Review
Arratai App Review
Coolie Movie Review
Madras Matinee Movie Review
Curate or die
Do you know what your toothpaste costs?
Weekly Notes - Week 2 - From Bhat to Bradbury
A list of useful videos for writers of fiction and non-fiction
A guide to buying fountian pens in India
Weekly Notes - Week 1 - Zero banana-liking dogs found
Resources for learning Go
Adding a Mastodon Author Tag
How to install Postgres on macOS
Automating my /now page
GitHub new repo shortcut
Build your own links site in 30 mins
Remove commits from remote repository
Remove files from Git history
Database Backup Strategies - automated dumps, point-in-time recovery
PostgreSQL on VPS - installation, configuration, security
Choosing the Right VPS Provider - comparing DigitalOcean, Linode, Vultr, Hetzner for different use cases
VPS vs Shared Hosting vs Managed Services - When to Choose What
Beszel — Lightweight self-hosted server monitoring for your homelab
The Promotion Trap
Understanding VPS Resources - RAM, CPU, storage, bandwidth limits and monitoring
Your Code Doesn't Matter (But Your Impact Does)
JavaScript delete operator might cause some unexpected performance issues.
A complete guide on being a great manager, written by an engineer
Testing Typescript GraphQL Server using Jest with Docker
Complete Guide on Debugging Typescript Node Application in VS Code Using Remote Development Feature
Deploying private Docker image to AWS Beanstalk (Amazon Linux 2) using docker-compose.yml
Complete Guide on Setting Up ESLint & Prettier to Work With Next.js-Typescript Project (create-next-app --ts)
Complete guide on deploying a Docker application (React) to AWS Elastic Beanstalk using Docker Hub and Github Actions
Notes from Persepolis
Setting up Sublime Text to make GraphQL requests using Requester
My GTD workflow: Part #2
My GTD workflow: Part #1
Best job hunting hack that worked for me
First voxel art
Classless Inter-Domain Routing (CIDR)
Difference between cast, call and info messages in Elixir & Erlang
Workout Timer Application
Self-Hosted LLM Deployment
Building an Email Server
Migrating from AWS to Local Servers
Installing and Configuring SearXNG
Designing a CPU Architecture/ISA
Making Snake on a Nintendo DS
Nextcloud Deployment
The Future of SaaS Is Agentic
Unity Devs, stop using GameObject.Find!
The Wall
Obsession
Mon ⛅ hat-trick Kennett River return
Sun ⛅ GOR Lorne Kennett return
Sat ⛅ After fire and flood
Fri ☀️ end of week commute
Thu ☀️ souvlaki nomnom
Wed ⛅ found object fun ride
2026/0304/1026 – Create a new password
Tue ⛅ a long way home
How to Effectively Adopt AI Tooling in Software Development
Building an OAuth2 Server with Claude Code in 3 Days
New tool &#8211; SpellingBee: The Entomological Spellcheck Dictionary
Nineteenth annual meeting: February 13th, 2026 in Anchorage, AK
A taxonomic review of Boreus (Mecoptera, Boreidae) with descriptions of two new Alaskan species
2025 AKES Newsletter posted
AKES Science Fair Award &#8211; 2025
Checklist to the apoid wasps (Hymenoptera, Apoidea excluding Anthophila) of Canada, Alaska, and Greenland
Eighteenth annual meeting: February 21, 2025
Discovery of snakeworm gnats in Alaska: a new species of Sciara Meigen (Diptera: Sciaridae) based on morphological, molecular, and citizen science data
What nobody tells you about product intuition
Alignment sounds nice, but translation works.
The weight of negative self talk
The trap of wanting to be liked
In the absence of a center
On stress
Why the best feedback doesn’t feel good at first
The other side of the AI wave: What I discovered
Why Firefighting
News 2026 Week 5
News - 2026 - Week 4
There are two kinds of programmers
News - 2026 - Week 3
This Old Tool : cmdarg
News-2026-Week-2
libakerror
A markup language and hypertext browser in 600 lines of code
Practicing graphical debugging using too many visualizations of the Hilbert curve
How I program in 2024
Sokoban
rabbot.love
Lua Carousel
sum-grid.love
crosstable.love
Letter 5: Don't Let the Darkness Get You Down
Letter 4: Dearest, pray for me
Letter 3: Life Is a Beautiful Thing. The good Lord gave it to us.
Letter 2: He Says We Should Come
Letter 1: We Do Not Stand on the Seashore and Wash Our Hands with Spittle.
Introducing XRest: A Service-First REST Client for Microservices Teams
The Last Unassisted Generation
Your Application Needs Different Zones for Different Levels of Understanding
Empathetic Systems: Designing Systems for Human Decision-Making
Systems Thinking for Software Developers
How Questions Build Software
Who's Driving Your Architecture?
Hexagonal Architecture - Understanding Ports
iTTT (WIP)
ZEBRA (WIP)
The Future of AI is Serial
A Monkey With a Typewriter Is All You Need
CWIC
pBit
MonArc
NoiseSearch
2026-01-28
2025-10-30
2025-09-02
2025-06-12
2025-06-01
2025-05-12
2025-04-04
2025-03-08
Is programming math? You're asking the wrong question. Part 2
Is programming math? You're asking the wrong question. Part 1
k-NN Algorithm in Golang and Haskell
So You Still Don't Understand Hindley-Milner? Part 3
So You Still Don't Understand Hindley-Milner? Part 2
Entropy: How Password Strength is Measured
Yo Dawg, I Herd You Like Math
Is it possible to be 15% Swedish?
Introducing the Open Hiring Harness
Don't leave assumptions up to AI
Introducing Human Standards: an open design library with an MCP server
AI ate the design process. What's left is taste.
Hostile and effusive tones boost LLM creativity
RUX: Fighting fake UX with real UX (and what it actually takes)
FaUX: The rise of fake UX (and how to know if you're practicing it)
Design for grammar, not layout
PostgreSQL 14: Substantion Change to Fulltext Query Parsing
Rainbow Your Psql Output
Jsonpath: ** Operator and Lax Mode Are't Meant to Be Together.
Dramatical Effect of LSE Instructions for PostgreSQL on Graviton2 Instances
Full Text Search Done (Almost) Right in PostgreSQL 11
ALTER INDEX ... SET STATISTICS ...???
"Our Answer to Uber" Talk at United Dev Conf, Minsk
Faceted Search in the Single PostgreSQL Query
Running Java Apps on Kubernetes ARM Nodes
Stopping Docker Containers Gracefully
Kubernetes Backup and Restore with Velero
Moving the Remote Terraform State Items
Quick Working From Home Tips
Alerting on Kubernetes Events with EFK Stack
Installing Kubernetes Dashboard per Namespace
Integrating AWS IAM and Kubernetes with kube2iam
Geometry in Text-to-Image Diffusion Models
Masking for Representation Learning in Vision
Machine Learning of Sets
Stacked Capsule Autoencoders
Forge, or how do you manage your machine learning experiments?
Normalizing Flows
What is wrong with VAEs?
Attention in Neural Networks and How to Use It
Thor Arthur 66ZZD: Systems and Risk (A 2025 Retrospective)
Fender Studio Pro and Product Security: A study in perception problems
Can we get back to progress again, please? (Pt I)
Five Algorithms Walk Into a CTF (Only One Walks Out)
A Shorthand for Distributed Systems Exploit Chains
The Great Berlin Startup Swindle
Percy  Bysshe Shelley and the Coinbase Hack
72 Seasons 2025 is open!
Three Albums about the USA
SOHCAHTOA
Leila Gharani
Magdalena Tempranísimo
How to Show Untagged Items in Zotero
My Favorite Place in Geneva
Celebrities Raving About Argentina
Mud, perhaps
3 Hard-Won Lessons from Debugging RLM Prompts in Python
Adding Local Markdown Posts to Your Hashnode-Powered Astro Blog
Wrong Type Imports Are Breaking Your Full-Stack React App
How to Use Cursor Commands to Write JIRA Ticket Descriptions
How to try OpenAI Codex without a Subscription
Next.js 16 is Here – Turbopack is Stable and the Default Bundler
How to Build Your First MCP Workflow
Stop Making Your TypeScript Types So Broad
Will Software Engineering Survive?
Why is the Gmail app 700 MB?
Bits of Open-Source in 2025
Parsing JSON in Forty Lines of Awk
A Tricky Floating-Point Calculation
Improving Date Formatting Performance in Node.js
Unix is not Linux
Installing FreeBSD on Oracle Cloud
Writing Shell Scripts Using Elixir
Books
The Human Side of Elixir
Crafting Beautiful Emails in Elixir Using MJML
Dynamically Configure Your Plugs at Run-time
The State of Elixir HTTP Clients
OTP as the Core of Your Application Part 2
OTP as the Core of Your Application Part 1
Helix for Python Development
vLLM Metrics in Production
Why vLLM Scales: Paging the KV-Cache for Faster LLM Inference
uv: Cargo-like Python Tool That Replaces pipx, pyenv, and more
Identifying Vulnerable Dependencies In .NET Projects
Convert Flac to Apple Lossless With FFmpeg
Generating A Lockfile For Python Project Using Github Actions
Synchronizing Users From LDAP With Keycloak Using AD Filters
British Somnolent Time
Last Palm Sunday
What Makes It Great — ‘The Whole of the Moon’
Recharging Saturday
Blessings Abounding
Walkward
More Today
Sharp Emotions, Opposite Directions
Create an HTML version of an OpenAPI spec
PHPStan custom rules
Feelings
Dad
2025 in pictures
IPTC export changed in Photos for macOS 26 Tahoe
Appending text to Obsidan via Shortcuts
mac-volume: A CLI to control device volume
Structured iteration
A new blog location
Event-driven flows
Concepts vs type traits
Class invariants
The double life of objects
The obvious final step
A moved-from optional
India Needs 1000 IITs
India: A Century Behind, Stuck in Chaos
Sinful Startups
High Standards Begin With Bare Minimum Standards
My Shelf
How Elasticsearch Handles Deletions (and Why Our 30TB Purge Didn’t Break Anything)
Intrapreneur: Secret Superpower of an Ex-Entrepreneur
Hi 👋 I am Akshay
From Entrepreneur to Employee: A Journey of Transition and Growth
Getting Started with Home Assistant: Smart Home Guide
Kali Linux 2025.4 Review
2025 Homelab setup and upgrade to Dell R530
2025 Annual Solar Transparency Report
Modem vs Router vs Firewall: Key Differences Explained
Best Hardware for OPNsense in 2026: Mini PCs, DIY Builds, and Appliances
CachyOS Review November 2025: Installation, Features, and Why This Arch Distro Stands Out
Lumo: Proton&#8217;s AI Assistant review
Beyond the Crowds: Thailand’s Vision for Premium and Experiential Travel
Breaking the Chicken-and-Egg Trap: LDES, Hydrogen, and the Future of Infrastructure
Pipes and the future of energy transport
Thoughts on the Wide band gap developer forum
The Promise of Physical AI
Thoughts on INCERS webinar covering Polymer derived ceramics technology its processing and applications
Strengthening Asia–Africa Tourism Corridors
Bankability in Long Duration Energy Storage: Beyond Energy Arbitrage
Just add a little friction
One tree. One grand success story.
Three messages for India’s green future
What is the point of literature?
In praise of the Persian melon
20 health lessons from “Trust me, I’m a Doctor”
Contemporary journalism philosophy packed in a few chat lines
It’s becoming increasingly hard for American women to get abortions
Building a Zero-Knowledge P2P File Sharing System: A Technical Deep Dive
Stateless by Design
Security trade-offs in remote and ephemeral execution environments
Threat modeling disposable browser environments
Designing ephemeral browser sessions using container isolation
Multiverse , everyday
512-Byte Boot Sector Pong Game
Writing Performant Software Is More Critical Today
Can you hear it?
A Poet with No Verse
Extending Ruby with Rust
RoR patterns to familiarize
Hello World!
David Smail
Illusion and Reality, by David Smail (1984)
That to Study Philosophy is to Learn to Die, by Michel de Montaigne (1580)
Michel de Montaigne
Of Anger, by Michel de Montaigne (1580)
Of the Affection of Fathers to Their Children, by Michel de Montaigne (1580)
Of Friendship, by Michel de Montaigne (1580)
Self-Reliance, by Ralph Waldo Emerson (1841)
How does G2 survive?
How Claude Code Chooses - A follow-up deep dive on email providers
You are average, but so are your problems
How to level up with Claude Code
How I fixed a (small) bug in an app I use daily
The Mundanity of Excellence
Catching the Big Fish
Deep Work
Ask Your LLM to Prompt You
The Evolution of My Personal Website
Cruisin' down the Coast
Hashing it Out
Counting Crosswords, Part 1
Hello World
Jonathan Sterne; romantic pragmatism; job news
STS at Tufts
Meta-influencers and automation as wedge
Book review: Narrative Podcasting
Article: Eurorack in a Logistical World
Book review: Making Stereo Fit
Book review: Record Cultures
Article: Google Radio Automation
Updated Scalie.Computer
My PostgreSQL database got nuked lol
scalie.computer broke
What even are Breeze, QtQuick, QtWidget, Union..?
Breeze QtWidgets style changes to help us prepare for Union
Leave me behind
Testing writing notes on mobile
Tech industry, meh
🎛️ Co-Designing a Sparse Music Codec with ChatGPT o3 in One Day — My Mini Pied Piper
🎙️ Real-Time AI Voice Assistant with OpenAI & Twilio
🎶 VSound App – Release Highlights
🎛️ High Precision in Frequency Domain
🎧 Stereo Sound Autoencoder
📚 LDA vs Document Clustering
🚀 Release 0-0-2
📑 Topic Keywords Case Study
Neovim: input encoding and you
pg_dump and pigz, easy rsyncable backups with PostgreSQL
Send iMessages via the commandline on OSX, even to yourself
Manage your app releases from the commandline with github-release
Detecting interlaced video with ffmpeg
Applying ML
Code Interviews
Developing Data Pipelines
Thoughts on validating model accuracy
Supervised and Unsupervised ML interplay
Statistical Significance test using Permutation
Diff Patterns for Root Cause Analysis
Evolution of metrics for the social media era
Books
Precision, Recall and the Fbeta-measure
Mental Models
Local ai code assistant
The Magic World of Browser’s Privacy
Coding as art
Simplify Ruby Blocks
My generator works
My Own Generator
Thoughts in random order
Busy Bee, balancing work, life and photography
Rocco Fridge Power Consumption
Switching from tsup to tsdown
Dying for Beauty
Against Horizontal Scroll (Even More)
From Next.js to Astro: A Page Size Comparison
Upgrade your Development Environments with Devbox
Disable JavaScript Source Maps
Fitting Text, Anywhere
My Son Amos Has a New Book Out, Part 3
Alabama Photo: Montgomery Bookstore in 1977
Gail Patrick & O.R. Cohen in 1933 Newspaper Ads
McClendon Memorial Museum in Duck Springs
Football in Gadsden in 1908
A Trip Down Memory Lane
Random Alabama (3): Alabama Hospital, Inc.
Tallulah, Gary, Cary & the Devil
Rose City Herald: Historic Northeast Portland newspaper opens window to the past
Spring history walks and program calendar set
Old house research topic on Echoes from the Attic podcast
Batch of builder profiles for the holidays!
Wistaria Drive landmark for sale
Needle in a haystack: Finding one old photo
Meet The Builders: Update
Windemuth & Bundy’s article published in the Oregon Encyclopedia
2016 - Numbers and Thoughts
A Real Pain
Anti-Focus
Bhrigu Lake Trek
Building Habits
Week 01 and 02
A Thought on Traditions
Assumptions
When Life Gives You Leaky Chimneys
My Rabbit Can
This One Simple Trick Will FIX Your Night Blindness!
I Forgot My Phone and It Was Wonderful
It's 2AM and I want to Sleep but IIS is Being Uncooperative
Reverse Engineering a Credit Card Processing API
Successful New Years Resolutions - I Learned American Sign Language!
Constructing a Daniel Tiger Lego Set
Knots, Primes and the adele class space
Topos and Noncommutative Geometry, Two Views on Space and Numbers
Mathematics and Imagination
From rings of operators to noncommutative geometry
Prolate spheroidal functions and zeta
From noncommutative geometry to tropical geometry
Two backbones of the cyclic theory
An introduction to NCG
Read No Frills Magento Layout For Free
Temporarily Halting Commerce Bug and No Frills Sales
Accessing Docker Desktop’s Virtual Machine
Five Reasons Your PHP Application is Hard to Containerize for Production
Running Go Programs in Docker Scratch Containers
Trying to Understand Mastodon’s Federation
That Efficiency of Programming Languages Image
What is a Container and why Docker Makes that a Difficult Question to Answer
scriptura: a cozy corner for your scripts
Avoiding Linguistic Misunderstandings
Announcing Searchix: Nix ecosystem search
When Tailscale MagicDNS isn’t
Homesteading
Running NixOS on a NanoPi R5S
Now on three continents
Postfix on a NixOS null client with external catch-all
YC Interview for Foreign Founders
Alexander Grothendieck, the secret genius of mathematics
On Chinese Writing: When Mao Reinvents Writing
On Chinese Writing: Evolution
On Chinese Writing: Birth
Everest 2026: Climbers to Watch this Season
Everest 2026: North Side Closed, New Rules in Effect: Everest 2026 Season Update
Everest 2026: Icefall Doctors Launched
Everest 2026: Rumor Fire Season
Podcast with Astronaut & Everest Summiteer Scott Parazynski
How Much Does It Cost To Climb Everest? – 2026 Edition
Comparing the Routes of Everest – 2026 edition
Everest by the Numbers: 2026 Edition
Rose Tinted Classes: An SVG Filter Function CSS Trick
Mental Models and Potemkin Understanding in LLMs
Fast Filewise Git Blame
Qmail with a Let's Encrypt SSL Cert
What Letter-Pair Tileset Forms the Most Words?
Music To Program To
Slippery Device Names and Portable AMIs
Matrix Chat in the Terminal with weechat-matrix
Interactive Fiction in Swift!
Secret Sauce at MacDev|360
Dynamic Patching on Mac OS X
Rediscovered Talks, Part 2: Kobo, EPUB, and DRM
Rediscovered Talks, Part 1: Networking the Early iOS World
Visual Effect Views in SwiftUI
SwiftUI Bindings with CoreData
SwiftUI: A Story
Cold Takes
Another App Usage Reset...
A Not So Casual Gamer
Using Mozilla Thunderbird As An RSS Reader
Slowing My Thoughts
Words are shrapnel, you have to think about where you are aiming them
Oh, The Irony
Anti-Woke = Anti-Reality
Fixing memory loss in a Zoom MRT-3B
A complete guide to the Bazz Fuss fuzz circuit
How to build working vero board circuits
Thoughts on the Tascam DP-006
The past, present, and future of this blog
Python GUI Programming with Tkinter –SECOND EDITION!
New Coding-oriented Youtube channel
Mastering GUI Programming with Python
The clever ARM64 MOVN instruction
No Ephemerons in Ruby's WeakMap
Betting on Linux
Linking Rust and C: Practicing Symbol Hygiene
How I think about C99 strict aliasing rules
Write barriers and an old Ruby bug
Checking Ruby C extensions for object movement crashes
Hotkeys For Programmable Keyboards
Using LLMs for Massive Code Trace Analysis Part 3: Switching from Ollama to Hugging Face
AI refactoring of 20+ year-old code from Tricks of the Windows Game Programming Gurus
Using LLMs for Massive Code Trace Analysis Part 2: Parameters, Tokens and Modelfiles
Using LLMs for Massive Code Trace Analysis: Part 1
Explorations in 3D Graphics and DirectX 12: Episode 4: Chapter 14 &#8211; a beautiful demo
Review: Game Engine Architecture
Explorations in 3D Graphics and DirectX 12: Episode 3: New bugs in VS2019 Version 16.8.3
Explorations in 3D Graphics and DirectX 12: Episode 2: Video of Episode 1
How to make an ethical robot, and why we probably shouldn't
AI and why we should all be worried - AI's dirty secrets
Paris conference on Safe and Ethical AI
New paper: A Simulated real-world upper-body Exoskeleton Accident and Investigation
A simulated upper body exoskeleton accident and investigation
A Draft Open Standard for an Ethical Black Box
Our first mock social robot accident and investigation
Ethics is the new Quality
Open Videos - March 30, 2026
Pulling Magic Commander Rankings from EDHREC
Parse a String of Text into JSON in Python
Using IndexedDB to Store Key Value Pairs with Vanilla JavaScript
Music for Today (March 15, 2026)
You can't update an input text value with keydown
Update CSS Live using contenteditable (No JavaScript Required)
Restart fseventsd on a mac
Second Bonn conference on mathematical life sciences
An encounter with Streptococcus agalactiae, part 2
An encounter with Streptococcus agalactiae
Is Springer Nature sacrificing scientific truth to political ideology?
On Democracies and Death Cults by Douglas Murray
Catch bonds and T cell activation
The mystery of thermodynamics
The Malgrange preparation theorem
I built an AI agent that reads my CRM emails and scores leads for $0.01 each
I Caught Myself Not Thinking. That’s When the Research Started Making Sense.
The Bifurcation of Cognition: How AI Is Splitting the Workforce Into Augmented Experts and Atrophied Passengers
Reshaping What Sustainable Cognition Looks Like
Sustainable Cognition
Before We Knew We Could Survive
The Death of the Pilot: Why COV is the Future of Drones
COV: When Fiction Stops Being Fiction
Nineteen Septillion Addresses - Setting up an ASN, obtaining IP addresses, and finding my way around the internet
Controlling the Si5351
A Teensy/Arduino AD9834 Based WSPR Transmitter
Creating PWL Files For LTSpice for PWM Signals
Simple WebAssembly App From The Ground Up
Meet Me Half Way
VFX Pipeline Stats
Inferring Changes in Camera Intrinsics from Motion Blur
Goodbye Toto, Goodbye Peep
Un-optimising Dog Walks
Zecharia, Jesuits, Lions and an Antidote for the Overthinker
Make Sure You're Not Tracking The Wrong Lion
Loving a Cold Misty Morning
Stevie Nicks Still Rocks
My AI Declaration
A Last Blue Hurrah
AI and Accessibility presentation
WCAG 3, increment or overhaul?
CSUN 2025 conference notes
Cryptocurrency thoughts
Why doesn’t AI work for producing accessible code?
Accessibility improvements for user-agents
Focus Appearance thoughts
WCAG – Priority of Constituencies
How to improve the RISC-V specification
Dagstuhl: Formal Methods for Correct Persistent Programming
PLDI 2023
PLARCH 2023
Modularizing ISA specifications
Machine readable specifications at scale
Joining Intel
Farewell to Google
Alan Weiss’s Monday Morning Memo® – 3/30/26
A Minute With Alan® — I&#8217;m Not Running
The Ups and Downs of AI
The Writing On The Wall Episode #234: Gettysburg
Alan at 80 — Episode #10
Major revisions
Subtext Retrospective
Substrates vision statement
DB usability: as if
Podcast interview
Schema Evolution in Interactive Programming Systems
Video: Operational Version Control
LIVE 2024 keynote talk
Apple has a private CSS property to add Liquid Glass effects to web content
What actually happens when you use a CSS transform
Getting WKWebView to treat a WKURLSchemeHandler as secure
To JSC or not to JSC: running JavaScript on iOS in 2020
not a pitty party
Here
Welcome
Universal Links At Scale: The Challenges Nobody Talks About
How to Implement a Decentralised CLI Tool Manager
How to setup a Swift Package Registry in Artifactory
Scalable Continuous Integration for iOS
The idea of a Fastlane replacement
CloudWatch dashboards and alarms on Mac instances
Easy connection to AWS Mac instances with EC2macConnector
Toggles: the easiest feature flagging in Swift
Listen to this interview with Tom Sachs and Adam Savage
My tiny Bear Blog hit #2 on Hacker News
The beauty of a text only webpage
Removing visor stickers from Jeep Gladiator
How I auto-archive my desktop each week
How to run effective one-on-ones
Best custom instructions I've found for ChatGPT
How we work: The 3 defaults
The 7 most common reasons for having Flaky tests in Ruby on Rails
TDD in Ruby on Rails made easy
How to do migrations with confidence in Ruby on Rails
My strategy to add tests to an application if you are on a budget
Learn how to use Background jobs in Ruby on Rails right
Rails helpers: how to use them right
How to keep your data confidential with Active Record Encryption
Persisting encrypted passwords in Rails with has_secure_password
Example Talk
AsisCTF Finals 2025 - Author's Writeup
A Permissions Odyssey: A Systematic Study of Browser Permissions on Modern Websites
CrewCTF 2025 - Author's Writeup
Permission Hijacking at Scale
The SAS Quals 2025
HKCERT 2025 Finals blog
HKCERT 2024 Quals
Why Not Live?
What happens when everything is perfect?
On making things that matter
Bye 2025
The continuous work of our life is to build death
The only way I’ve found to step away from the computer at a decent hour
Publish your macOS App outside the App Store
Routines make you feel at home
Confused Deputy Vulnerability in Cloudflare CASB
Hijacking email with Cloudflare Email Routing
Bijna de helft van alle bushaltes in Nederland is ontoegankelijk, dus bouwde ik een tool om er wat aan te doen
Let the AI Pick React
Vibe Coding: Product Quality and Democratisation
Securing YOLO Mode: How I Stop Claude Code from Nuking My System
Reverse-Engineering Figma Make: Extracting React Apps from Binary Files
Dictator: A Push-to-Talk Speech-to-Text App for macOS
Rethinking Claude Flow: From Per-Repo Chaos to Global App
Nginx Login Rate Limiting: Stop Brute-Force Attacks Without Breaking UX
AA Diploma Project (2002)
Featured in The Wall Street Journal
Testing Buildings to Destruction
On the Spline
A+U Magazine: Data-Driven Cities
Follow-up to Freakonomics: What about Financing?
On the Passing of Kathryn Findlay (1953-2014)
CNN Interview on Japanese Residential Architecture
Pi Project
Functionable Project
Inspectable Project
Kagi API Project
Petail Project
htmx Select Project
Initable Project
Wholeable Project
htmx Infinite Scroll
Pi Project
Hanami with Rodauth
Ruby 4.0.0
Hanami with Sidekiq
Git History
Functionable Project
Hanami Logging
Abstract wealth
I started an NSFW webcomic
A coyote story
World of Dungeons: Pokemon Spirit Combat
1979: WORLD OF DUNGEONS, REVISITED
Guns in fantasy
Spell Hunters. This entry overrides all previous entries on magic in this blog.
Planets 3: Duel Culture
Terminus Talk
Milestones Talk
Ruby Fusion Talk
Hanami and htmx Talk
Ruby Function Composition Talk
Janus Talk
Ruby GitHub Packages Talk
Rails Instrumentation Talk
htmx Infinite Scroll
Hanami with Rodauth
Ruby 4.0.0
Hanami with Sidekiq
Git History
Hanami Logging
Git Commit Empty
Hanami Containers
Fighting Editors, iOS 7, and LaTeX: The Story Behind My Third Book
On Treating Time as a Finite Resource
Compré un detector de mentiras de hace 500 años
Confessions of a Compulsive List-Maker
Vibe Coding: The Death of a Craft
That Time I Was Big in Japan
From Houdini to Vernon to Me: The Magic Castle Story
Las Escalas Invisibles de la Magia
Human voices
Sandboxing local models on macOS
Why my internet dropped like clockwork
Impermanent NixOS VMs in ChromeOS
Effective salespeople
NixOS Baguette images in ChromeOS
Nuggets of psychology
Code integrity for web apps
Automating My Buzzer: Learning Hardware with ChatGPT
DrawAFish.com Postmortem — Aug 3, 2025 Incident
Turn Your Dead Personal Blog Into a Tor WebTunnel in 5 Minutes
How to Politely Crawl and Analyze Half a Billion Images
Cupertino v0.10: Full Coverage and Community Contributions
iRelay: Text Your Mac, Run an AI Agent
Cupertino v0.9: Multi-Agent Support and MCP Protocol Upgrade
Cupertino v0.8.0: AST Indexing and a Major Architecture Refactor
Cupertino v0.7.0: 302K Docs, OS Version Filtering, and Teaching AI to Dig Deeper
Cupertino v0.5.0: 234K Docs, 287 Frameworks, and the Roadmap Ahead
Cupertino v0.4.0: HIG Support, Framework Aliases, and Release Engineering Lessons
Cupertino v0.3.4: One-Line Install & 150K+ Apple Docs
Ale Assembler
Go and Ale
Ale Language Design
Metaprogramming Ale
Tail Call Optimization
Extending Ale
Embedding Ale
An Ale Introduction
Planck Knowledge vs. Chauffeur Knowledge
Curiosity’s bad reputation
VO2 max and the metric trap
When self-preservation backfires
Like a hand in a glove
What the years teach
Structure vs. People
The mountain and the rocks
Kickstart 1.1.0
Kickstart is back
Namespaced Pundit Policies Without the Repetition Racket
Kamal Deployment: The Newest Form of Self-Torture
Tip: How to pass API keys to javascript in rails apps
Migrate from importmap to esbuild for rails projects
macOS setup for hackers and power users (macOS Sequoia edition) #2
macOS setup for hackers and power users (macOS Sequoia edition) #1
World models at 30
Modelling for homesteaders
Favourite authors & papers
Title page
Monitoring Elixir apps in 2016: Prometheus and Grafana
Finding the optimal (non-)T9 cellphone keyboard layout
Practical intro to fiber-optic networks
Installing Fedora on MacBook Air A1369
Fixing the function keys of a Kinesis keyboard
Refurbishing a Kinesis Classic KB133
FOSDEM impressions
Polishing Pitivi's viewer
Polishing Pitivi's ruler
How to use the x264 encoding presets when rendering an XGES project
Keep Hyper-Scale Datacenters Out of the Desert
Ed Gutenburg: The First Autonomous Investigative Reporter
The First Multiplayer Prompt-Hacking Game
Building a Solar-Powered Bird Station
Building an Agent SaaS with Cloudflare Containers
Ten Years Of Dashcams
This Post Was Edited by a Rock. Deal With It.
AI Employees Don't Pay Taxes
automated proxies with NordVPN Mac
[External] understanding DynamoDB pricing
build business tools with GPT3
understanding Google auths
anatomy of a HN hit
scraping tweets for fun and profit
talk the talk (a tech glossary)
make your own personal CRM (for free in 20 minutes)
Teaching My Laptop to Make Backups While I Sleep
This Post Is Going to Suck
A Fair Go for Pacific Workers
One Life One Life One Life One Life One Life
Everyone has a story
The Blog Question Challenge
Rise or Fall?
There go I, but...
Liar, Liar Time on Fire
Q&A - using plain text files
A Fair Go for Pacific Workers
One Life One Life One Life One Life One Life
Everyone has a story
The Blog Question Challenge
Rise or Fall?
There go I, but...
Liar, Liar Time on Fire
Q&A - using plain text files
What Makes a Great Software Engineer?
Thoughts on the Liability of the Product Surface
I joined Bluesky
Balancing Metrics and Perceptions: Assessing Developer Experience in Software Delivery
I released Knot, a read later app for iOS
Presumed technical debt: how to recognise it and avoid it
How to communicate efficiently as software engineers
The best teams I’ve worked with
At the End
The Clock is Ticking
Twelve Zeroes
It's 2025
Mourning by a Thousand Paper Cuts
On Color
Soon is Now
You'll Never Guess What Happened When She Broke a Vital Piece of Technology!
Using the Official Mastodon Share Button
Your Agent Stack Is the New Clean Code
AnchoredRelativeFormatStyle: The Hidden Replacement for Date RelativeFormatStyle
Using Binaries as Libraries
It’s a trap! React to Unix signals in Swift.
Back to the basics with Genesis
Swift Package Manager Dependency Owners
Backport SwiftUI modifiers
Alternatives to depends_on on Terraform Modules
The Kubernetes Feature You Never Knew Existed and Probably Should Disable
Stop putting this into your Python Dockerfiles
GitHub Actions Support YAML Anchors
CloudNativePG VolumeSnapshot Retention Policy Enforcement
Astro Build Format and CloudFlare Pages
ArgoCD Image Updater Doesn't Update Images by Default
S3 Lifecycle Policy You Should Always Use
Amortised analysis in the nutshell
Setup for sane assembly programming
Getting into the holiday spirit with Astro, React, and Supabase
Database model for a hierarchical content
A note on conference prep
Next-level type safety with Effect: an intro
Elixir with a drop of gRPC
Oh no, I have to add those stupid TypeScript types
Fully Local Code Embeds
Colorception
The AI Dilemma
Let Me Opt In, Not Out
How to Split Audio Stems
Remote Code Execution with LLM Agents
Cache-Busting Assets in Eleventy
In Memory of Em
Save Your Cursor
Software toolbox. Part one of many
Hello
Photography in Lieu of Poetry
Studio DIY: Bottle Plate
The 2025 365 Begins
Travel Book Announcement
It’s Go Time. Launching a creative career in Japan.
Slow Down and Look
Experimenting with Handheld Multiple Exposures
On Mitake-san
Moving to NixOS
Why digital privacy matters
Running a local Unbound DNS resolver on MacOS
Automation is not automated
Not knowing what to say
Mental modelling
Consumption vs creation
Two modes of a developer
Claude computer use is here
Stochastic stupidity
Are recreational jobs the future?
Einstein Solid Heat Capacity on the HP-15C
An informal look at Java 8, Part 1
Server downtime - back with a cleaner look
Speaking at upcoming events
Raspberry Pi in a Haskell Cloud
Running Haskell on Raspberry Pi
Hs-task: An in-code task management utility
A journey into the world of Purely Functional Data Structures
Web servers in mobile apps leak sensitive data
Tool: Latest Chromium ASan builds
Universal XSS in Android WebView (CVE-2020-6506)
Upcoming Vulnerability Disclosures
First Light
A somewhat delayed annual review
Digital Scar Tissue
Don’t Worry – It Can’t Happen
Consonance, dissonance, eigenvalue spectra and other universes
Why-chain
Motivational Poster
Additive, multiplicative, and exponential economics
On ArcadeDB
Notes on Virtual Threads and Clojure
Productivity Spark Summit 2025
The Value in 100 Days of Code
The wacky world of HTML email development
Creative Coding with p5.js
How to build a Web Scraper with Puppeteer
Building a CLI business card with NodeJS
Painting with Pixels: A Short Introduction to the Canvas API
How to Create a Portfolio Website with Gatsby (for free)
2024
2023
Introducing Apollo Client’s new @nonreactive directive and useFragment hook
Automating Releases of @apollo/client
2022
Joining Apollo GraphQL
2021
2020
Everything you've been told about programming is wrong
Simple text blur bookmarklet
Visual Basic.NET features I miss in C#
What development and productivity tools I use in 2019
I'm teaching with Czechitas now
Entity Framework Code First type safe eager loading
One line password generation in .Net using LINQ
Tools I could not live without 2015
2025: Year in Review
No Internet November: The Report
No Internet November: I'm Quitting the Internet for 30 Days
Starting out with Godot
2024: Year in Review
Mother 2 - 30th Anniversary
BRA★BRA FINAL FANTASY BRASS de BRAVO 2024: A Night with Nobuo Uematsu and the Siena Wind Orchestra
Hikaru Utada’s HIKARU UTADA SCIENCE FICTION TOUR 2024 at Saitama Super Arena
Navigating the Dark Web
TryHackMe > Unbaked Pie
TryHackMe > Cooctus Stories
TryHackMe > VulnNet Roasted
TryHackMe > VulnNet Internal
TryHackMe > toc2
TryHackMe > The Marketplace
TryHackMe > Debug
Rust Networking for xv6
Rust Inside xv6
How to install the Displaylink drivers on Fedora 40
Embedding book highlights onto a vector space
The idea of “Sunk Cost Opportunity”.
How to Quality Control RNA from ArchR objects
Building a CHIP-8 Emulator in Rust
How to create your own “smart” business card for free
Before the Void
The Hate
Freedom Squared
Laniakea, My Mother
microscale
24h Solaris
Off the Air
Nama
A Kubernetes dev environment for Mac
Dithering on the GPU
When is it okay to delete an OpenGL buffer?
Notes from watching Bot Summit 2016 from my home
Gracefully shutting down worker nodes on Elastic Beanstalk
Building a search engine for logos
Drawing multiple viewports at the same time
Prototype to polish: Making games in CHICKEN Scheme with Hypergiant
15 Years of Blogging
Printing The Relic Booklet
Bob Layzell – Sci-Fi Artist 1940-2026
Luna Greyt Publishing and Swyvers Scenario Release
Zozer Games Solo Second Edition Review
Blog Update July 2025
Blog Announcement
Kal-Arath and Swyvers Kickstarter Fulfilments
Boosting Monolith Performance: Caching with OpenResty, SRCache, and Redis
AWS CLI S3 Cheatsheet - s3 sync
Deploy a React application on AWS with CloudFront and S3
Unleashing the Power of Large-Scale Parallel Data Processing on AWS
Introduction to Amazon CloudFront
Using Terraform Workspace on AWS for multi-account, multi-environment deployments
Using Multiple Terraform's Providers With AWS
AWS CLI S3 Cheatsheet - s3 ls
On Tooling with Conjoined Perspectives
Approaching the Limits of what we Know
My Prompting Guardrails: Part 1
On Ideation
This one is for the bots
LLMs in Science: Type 1 Discovery (my term)
I'm leaving this as DRAFT: Part 1
Elevation Correction
A Racket Array Tutorial
Pumpkin Plot
The Wolf, the Goat, and the Cabbage
Timezone Lookup Revisited
Synchronizing FIT files using a Raspberry Pi
Heat Maps Revisited
Asteroids (Gameplay)
Beating BERT? Small LLMs vs Fine-Tuned Encoders for Classification
The Case Against pgvector
A Production Framework for LLM Feature Evaluation
A Computer Made This
RAG: From Context Injection to Knowledge Integration
Deep Dive into Python Async Programming
Mastering Integration Testing with FastAPI
CheeseGPT
Closed Registration for a Small Web
In praise of git-request-pull
Thoughts on self-hosting
Monthly Update: November 2021
Gemini and Desire
Monthly Update: October 2021
Regularly delete old mastodon posts with this script
Great Wall is unquestionably the worst Magic: the Gathering card
Friends 4.0
WordPress Development Without a Computer
Adapting Tools to Your Needs with AI
Proposal: an Interactive Mode for phpcbf
npm install playground-step-library
Can’t Follow You!
Hello
Simple Jekyll searching
Escaping liquid tags in Jekyll
Scattering Cross Sections in the Standard Model
The Spectrum of Quarkonium
An Ubuntu VPS with rbenv, nginx and Passenger
Jekyll sitemaps
Deploying with Capistrano
Fresh Hot CSS: Trig Functions
Junior Dev Tip: "Scroll Up"
The future of web development is AI. Get on or get left behind.
Grid First, Flex Third
I Am Adequate, But Sometimes I Don't Have The Tools
Recent Container Query Use: Content next to navigation
My Recent Container Query Use: Pagination
React 19 Beta: Fine I Guess Web Standards Are Okay
"Take your time"
Perfect is the enemy of the good
Preparing for productivity is still productivity
Today I Learned: Small Form-factor Pluggable
The many little lies of ADHD
My experience as a father
What decentralization means to me
How to Set Up Work and Personal Git Profiles
US Tariffs, DeepSeek and OpenAI
Orchestrating LLM Fine-tuning on Kubernetes with SkyPilot and MLflow: A Complete Guide
Kubernetes Mental Model
Intro to SLURM for ML Practitioners
Experiments with OpenAI's Function Calling
Fine-Tuning Large Language Models with a Production-Grade Pipeline
Trying to Understand Something Difficult? Minimize the Number of Attempts!
The Good, the Bad, and the Ugly
AVX2 Builds and new ChromiumOS builds.
Outline of benefits of Thorium over vanilla Chromium.
Joined the Wayne OS project.
New Thorium Builds and new subreddit.
FINALLY WORKING x264 ChromiumOS and enhancements to Thorium
New Releases of Chromium, ChromiumOS, and linux-chromeos.
Crostini on ChromiumOS and Cloudready
Final Cut Pro 11.2 and Motion 5.11 for iPhone 17 Pro?
Alex4D Interface 2038
Renaming published Drop Zones in Apple Motion-made tools for Final Cut Pro
Alex4D Transform
Final Cut Pro for iPad: How to create secondary storylines
Final Cut Pro: Modify on Mac, open on iPad
Soon: Build Final Cut Pro for iPad plugins in Apple Motion 5. What about distribution?
Coming soon from PostLab: Final Cut Pro event locking for collaboration
Permanence in the Digital Era
If you’re ambitious but feeling lazy, then read this article
Visualize and Conquer: See all your goals in one glance.
Achieve Your Goals NOW (In This Life)
The Tipping Point
“Do You Ever Miss Home?”
How Focus Became More Valuable Than Intelligence
Introducing Alexand.ro
1 Year In Madrid
Lights Out solver or story about how to solve N^2 equations in O(N^3) time
The Opposite of VC
AWS on the Cheap(ish)
Project: Headspace
Engineering First Business Model
Free Energy Principle
Reflections on Motivation
Phonetica Game Dev Log
Solid Pod Server
Writing a Hyper-V &#8220;Bridge&#8221; for Fuzzing &#8212; Part 2 : Hypercalls &#038; MDLs
Writing a Hyper-V &#8220;Bridge&#8221; for Fuzzing &#8212; Part 1: WDF
Dynamic Tracing in Windows 10 19H1
Bringing Call Gates Back
Windows Internals, 7th Edition!
Owning the Image Object File Format, the Compiler Toolchain, and the Operating System: Solving Intractable Performance Problems Through Vertical Engineering
Closing &#8220;Heaven&#8217;s Gate&#8221;
What are Little PatchGuards Made Of?
Inbjudan till SAQ grundkurs
Spänningsmätning på SAQ antennutgång
SAQ delivered Christmas Greetings to the World 2025
SAQ scheduled to send a Christmas message on Dec 24th 2025.
SAQ spread peace message on UN-Day 2025
SAQ scheduled to air on UN-Day Oct 24th, 2025
SAQ celebrated 100 Years
SAQ to air at 100th anniversary on July 2nd 2025
Interview With John Earnest
Interview With Nathan Goldbaum
Interview With Steve Klabnik
Poesía épica
Can Macros Tame Crud?
Sketching Janet 2
Unity of Paradigms
Interview With Bakpakin
How I Built a $1 Million+ Passive Income Business
YMYL SEO for Finance Sites
How to Setup a Linux VPS running Apache
Creating Russian Affairs: Blood, Sweat, and Vector Frames
Back to Work: My Journey for Rejoining the Modern Workforce
Solving Knight-Knave-Spy Puzzles with Z3
Virtual 8-bit Computer
A Mandelbrot plotter ChatGPT cannot explain
Send More Money Puzzle
Strange is_even(x)
Mandelbrot Sans Arithmetic
Math Notes Fall 25
Destructuring as Multiple Assignment
Ski itinerary optimization
Killers of immutable performance — Zustand/Redux combined with React
OOP: the worst thing that happened to programming
Styles, themes, and adaptive layout in React Native
RRC - fetch and cache management library for Zustand/Redux: [better] alternative to RTK-Query and other solutions
Hidden knowledge: synchronization, concurrency, queues
Statistical paradoxes and omnibus tests
My friends did some cool science in 2018
Some Technical Notes on Kullback-Leibler Divergence
Where have I been? (looking back on the last year)
Slides: &#8220;Bayesian Bias Correction: Critically evaluating sets of studies in the presence of publication bias&#8221;
AI Is Killing the Unified API Connector Business in HR Tech
No, Block did not fire 4000 people because of AI
Today: learn no-code tricks to outsmart AI application bots
Indeed Launches a ChatGPT App for Job Search - So What?
Indexing Tools Are a Scam — Stop Wasting Your Money
The AI Application Flood Is Here. Here's How to Fight Back
OpenAI Launching Job Search in ChatGPT?
The new EU Pay Transparency Directive: a hidden opportunity for Job Boards
Why can 2 times 3 sometimes equal 7 with Android's Neural Network API?
Streamline your Deep Learning Optimization Process
Choosing Milestones as a ML Researcher
Long-Term Goals as a Machine Learning Researcher
3 Ways to Maximize your Impact as a Machine Learning Engineer
Book Review: Deep Work by Cal Newport
What I wish I knew coming into a Ph.D. program
Book Review: Big Data and Social Science
Timeline and Early Days
On having heart surgery at 32
Cathy: my dear, helpful catheter
How much oranger do red orange bags make oranges look?
Visualizing my strengths and areas for growth with RPG radar charts
Harry Chapin and RATM: the problem with bleeding interests
All of the writing I did in a week as a software engineer
Brute-forcing the NYT Digits game
My Neovim Keybindings
Grieving Who You Used To Be
The Man In The Arena
Using GitHub Actions To Blog From Your Phone
A Look Back On My Best Year Of Running Ever, And How I Managed To Do It
Change How You See The World With One Word
Why An Easy Life Is Overrated
How Technical Debt Affects Your Developers
The 16 teams you meet during March Madness
The Flaxman Low Library Drive
Georgy Ivanov's Geography of Paradox
Toward a Legend of the River King Nuzlocke
Leaf-and-Branch Resolutions
No Time to Back Down: A Game of Resolve
I Have No Future Without You: Gorō Miyazaki’s "From Up On Poppy Hill"
[FICTION] Operation H-Minus
How Dirty Were the Ancient Romans?
The Grim Reapers of the Roman Arena
Julius Caesar’s Mysterious Childhood
Who Was Nero? Unmasking Rome&#8217;s Actor Emperor
Rome’s Mamertine Prison: History &#038; How to Visit
Elagabalus: Rome&#8217;s Teenage Tyrant
Boudica: Historical Figure or Literary Foil?
The Fallout from Teutoburg: How the Romans Dealt with Defeat
I wrote a book about computing, out soon.
Thinking about the interfaces with which we think
A new experiment, and an Ink & Switch collab
An understanding of time in the OS of the future
How semantic zoom supports agency in personal software
A gestural environment for the OS of the future
Making the OS of the future more helpful
How can the OS of the future support our best, even when we're in a rush?
Notes
Someday
Quitting social media
Comparison kills creativity
How to reset notification permissions on macOS
Learning and forgetting
Announcing the Swift Website Workgroup
Balance 2 is finally here!
We should not make human-like AI
Rowe's argument from evil revisited
Aquinas on Incarnation as a rock or animal
AI and emotion
Metaethics and emotion
Mental properties and union dualism
Antinatalism and proxy consent
Virtue and tasks that I don't have to do
Aliases header
Atomic Note Template
Class Header Template
Daily template
Definition Template
Example template
Idea Template
ItL flashcard header
About
yolo linux is a corporate nightmare
firefox is and always has been terrible
immich vs ente photos - the photo backup showdown
sora is shutting down and honestly? good
i bought the macbook neo and it sucks
why i stopped using fancy dev tools and became more productive
macos 26 broke my dns settings and now nothing works
@_exported import VS public import
Adaptive sheet presentation in SwiftUI
SwiftUI's editMode environment
DocC for Multi-Platform Documentation
Effortless SwiftUI Theming
The Power of ShapeStyle for Colour theming in SwiftUI
Using TextRenderer to create highlighted text
Style your TipKit Tips
The Timeless Fear of Corrupting the Youth | WSJ
The Big Tech verdicts you’re cheering for are actually terrible for free speech | The Foundation for Individual Rights and Expression
‘…all of the evidence submitted to “prove” Meta knew their product was harmful was internal safety research they were conducting to improve their moderation and detection’
‘The Encryption Problem: Where “Design Liability” Leads’ | … IF YOU ARE CHEERING META LOSING 2X RECENT LAWSUITS YOU ARE SUPPORTING THE END OF ONLINE PRIVACY
[Europe] voted today to end chat monitoring 1.0. This ends an exception that was used, in particular, by US Big Tech companies to monitor billions of people’s private messages without suspicion
MEPs block tech firms from scanning for child sexual abuse material | POLITICO
I am very much looking at the Apple Age Verification (AV) approach as the least bad way to do something terrible
Remember that big win on ChatControl a couple of weeks ago? It turns out they didn’t like  the result and they want to vote on it again, TODAY. Sorry.
How to Write Fiction like an LLM
Game Review: Rabbit Simulator
A Pedant’s Guide to Linguistic Mistakes
Review: The Case of the Sleeping Beauties
Adapting Worth the Candle into a Pixar Movie
Adaptational Changes for the Worth the Candle webcomic
Game Review: Factorio: Space Age (pt 2)
Game Review: Factorio: Space Age (pt 1)
Self-hosted home monitoring
After Ruining a Treasured Water Resource, Iran Is Drying Up (Fred Pearce, Yale E360)
Snow Crash et le style de vie "thermodynamiquement intense" (Neil Stephenson)
The story of the hunter2 meme
Construire une vraie bibliothèque numérique, libre de DRMs
Comment faire de l'IA son alliée dans le développement logiciel?
Le Gömböc, l'objet qui se remet toujours à l'endroit
Sinking bubbles in stout beers
A map of donations to Dutch political parties, 2019-2021
Italien – die wahre schwäbische Hausfrau Europas
Do Southern Europeans work less than Northern Europeans?
The Coronacrisis and Southern European Welfare States
Mapping the international mobility of political scientists
Um mapa das relações familiares no Governo de Antonio Costa
Mapping Preferences over Brexit in the House of Commons
Visualising the world’s 20 richest countries, 1800-2016 in one minute.
Self-hosted home monitoring
After Ruining a Treasured Water Resource, Iran Is Drying Up (Fred Pearce, Yale E360)
The story of the hunter2 meme
Sinking bubbles in stout beers
ALICE detects the conversion of lead into gold at the LHC (CERN)
The 500-mile email story (Trey Harris)
Supervisors Often Prefer Rule Breakers – Up to a Point (Michael Bratsis)
SR-71 fighter plane: two veteran stories
Designing Purr: A Tactile Escape from Sensory Overload
MuSA_RT 3.1
A More Efficient Digital Resonator
Resonator Banks
Digital Resonator (II)
Digital Resonator
Thoughts on MuSA_RT 2.0
MuSA_RT 2.0
MLOps for independent research
A fable about MLOps… and broken dreams
How to Solve the Model Serving Component of the MLOps Stack
Interviewing for a Senior ML Engineer position
AutoML Solutions: What I Like and Don’t Like About AutoML as a Data Scientist
Choosing programming languages for real-world projects
Becoming a Senior Engineer
Going beyond simple error analysis of ML systems
Timeseries Analysis with PyTorch
Timeseries Analysis in Python
Simulated Annealing in Go
First Steps In Go - WebSockets
First Steps In Go - Web Services
First Steps In Go
Programming Problems In C++
3D From Scratch
Setting up a Site-to-Site VPN between AWS and on-premises VyOS (IPSec & BGP)
Bypassing app lock in Ente Auth
Parsing Google Authenticator export QR codes
A mysterious bug in the firmware of Google's Titan M chip (CVE-2019-9465)
Notes on PCI Passthrough on NixOS using QEMU and VFIO
Did cosmic rays break my Linux build?
Insecure seed generation in the Nano Android wallet
13/01/2025 – 19/01/2025 – Weekly Nature Round-up
06/01/2025 – 12/01/2025 – Weekly Nature Round-up
21/10/2024 – 27/10/2024 – Weekly Nature Round-Up
A monthly Nature Round-Up
12/08/2024 – 18/08/2024 – Weekly Nature Round-Up
20/05/2024 – 26/05/2024 – Weekly Nature Round-Up
13/05/2024 – 19/05/2024 – Weekly Nature Round-Up
06/05/2024 – 12/05/2024 – Weekly Nature Round-Up
What's new Alex?
Perfecting Your Rails Form: Nested Attributes
Perfecting Your Rails Form: Atribute Accessors
RSpec Testing Levels
What is business logic?
Empathetic coding
To Push or Not to Push the Crosswalk Button?
Identify i18n translation keys
Google
Hospital
STATUS Exhibition
They're Dying to Get in Here
Inside Nike, Oregon USA
Eternal Lifeline?
Nevada Nuclear Weapon Test Site, USA
The Underground House, Las Vegas
Turbulence: Harmony of Primes Under the Mask of Chaos
Banking as Financial Terrorism
Non-Euclidean Democracy
Family Photos
Paradise Lost
Feeling At Home
The Wind of Fate
Reverse Engineering Harvester with Ghidra and Codex - Part 5: Debugging Audio Issues
Reverse Engineering Harvester with Ghidra and Codex - Part 4: Command Opcodes
Reverse Engineering Harvester with Ghidra and Codex - Part 3: File Formats
Reverse Engineering Harvester with Ghidra and Codex - Part 2
Reverse Engineering a DOS Game with Ghidra and Codex
Cloudflare + MongoDB: How to fix ‘Error: Dynamic require of “punycode/” is not supported’
King’s Quest IV: The Perils of Rosella (Sierra On-Line) - 1988
Leisure Suit Larry 5: Passionate Patti Does a Little Undercover Work (Sierra On-Line) - 1991
Nikhil Anand's personal website
Nguyễn Ngọc Ánh's personal website
William Jansson's personal website
Using Container Queries in a CSS Grid to Detect Truncation
Managing Context Windows with pi /tree: Branches, Summaries, and Subagent-like Workflows
Daniel Griesser's PI Config
The Anatomy of an Agent Harness
Agentic Engineering Patterns
Small-batch bespoke emails with Gmail and Streak
Artisanal outbound with Clearbit Connect
One line of CSS to add hanging quotes
Taco Week
Rave Robot
Belly B-sides Mix
IAM FINE Mix
Product Design Sprints - QCon 2014
Songs for the Dead
Small Self
Shining Eyes
The Maze
Deathbed Perspective
Post-autonomous Ego Development
Attunement
On Negativity
Saving the Fire, by Itamar Vieira Junior
Jurerê Night Run – Hard Rock Café 2026
Back to the classroom, master's degree mode
Demon Copperhead – Barbara Kingsolver
Not everything has to be productive
Getting Back to Truly Listening to Music
The Psychology of Money by Morgan Housel
The work was never just code
My First Split Keyboard
Supporting Medical Clinics in Ethiopia
My Resume as Code
Scraping with Selenium
Simple Search
Making a Booklet
Beancount for Personal Finance
Turning on Key Lights for Google Meet
Making Music with Code: A Beginner’s Guide to Strudel
Create Animated Metaballs with Shaders in p5.js — A Creative Coding Tutorial
Drawing Noisy Circles with p5.js: A Deep Dive into Polar Coordinates and Perlin Noise
Building an Interactive Generative Art with p5.js, Tweakpane, and Watercolor Effects
Mastering Creative Coding: Building Interactive Radial Strokes with p5.js
Understanding JavaScript Classes for Creative Coding
Learn Creative Coding: Build Geometric Abstract Art with p5.js
Animating Abstract Art: A Beginner’s Guide to Tweening with p5.js
The Democrats&#8217; Assisted Suicide
The Not a Pussy Party
NRA Poster Boys Killed By Cops
The Best Part of The Godfather is the Worst Writing
Donald Trump&#8217;s Greatest Failure
Berned Out
Beyoncé Makes Lemonade
Kobe Goes Out Like Kobe
I’m joining a16z
A startup is a bundle, and Windsurf broke the bundle
Scarcity and Abundance in 2025
If you’re first out the door, it’s not called panicking
Wine tasting with Claude Shannon
10 Predictions for the 2020s: Midterm report card
Innovation takes magic, and that magic is gift culture
Have you ever seen a goth downtown?
What you should know about DynamoDB Streams
Encrypted Root with LUKS and Opal
Toll-free Bridging in Kotlin Native
How to find Ubuntu repository mirrors
How to install npm packages as a non-root user
How to get the first item of a Python iterable
How to clean up Python build, caching and packaging artifacts
How to list Click CLI commands in the order they're defined
How to use Intel GVT-g to create virtual graphics cards
PGQueuer for High-Performance Job Queues
Honest Research Advice
How Multimodal Transformers Work For A Medical Usecase
The Failures of AI Pneumonia Classification
The Theoretical Underpinnings to Analysis of Modern Multimodal Generative Latent Models
The Data Imputation Deep Dive
The Multimodal Algorithms for Health Deep Dive
The Biomedical Signal Processing Deep Dive
How do distributed databases handle secondary indexes? A survey
How you should think about DynamoDB costs
Event-Driven Architectures vs. Event-Based Compute in Serverless Applications
Why I (Still) Like the Serverless Framework over the CDK
Key Takeaways from the DynamoDB Paper
Understanding Eventual Consistency in DynamoDB
CAP or no CAP? Understanding when the CAP theorem applies and what it means.
Inconsistent thoughts on database consistency
H100 offers 1.45x better value than A10G
Seeing like a Software Company - Celebrate Illegible Work
Python@3.14t - First GIL-free Python
Cory Doctorow: Reverse Centaurs
AI as a Copilot for Mathematical Discovery
Inspect AI
Dwarkesh’s Fossil Fuel Analogy
Earth was born dry until a cosmic collision made it a blue planet
Updating “RELEASE” dependencies in ClojureScript
Exploring the Clojurescript REPL
Simple Daily Planning Template
Efficient Text Editing on MacOS
Tip: Check Your Calendar First
Why are my headphones buzzing whenever I run my game?
Webassembly Without The Browser Part 2
Webassembly Without The Browser Part 1
Physically Based Temperature Simulation For Games
Github Actions CI with Rust and SDL2
Testing Setup
Hierarchical Pathfinding
After Hours Game Development
Rethinking Quantization-Aware Training: Why Your QAT Length is Probably Wrong
Understanding Flash Attention: Writing the Algorithm from Scratch in Triton
Speed Up PyTorch With Custom Kernels. But It Gets Progressively Darker
Simple Ways to Speed Up Your PyTorch Model Training
Swift Actors — Common Problems and Tips
I Contributed to PyTorch. Here's What I Learned
Conquer Data Races with Swift Actors
Dive into Swift's Memory Management
Porridge Advice
Not worth it
My favourite jazz albums of 2019
Not technical, or not experienced?
It’s Mostly Worrying and Music
The VAT
Platforms
Barcelona
Why Growth Engineering Practices Don’t Transfer to Product Engineering
A Year of Remote Async
The 4 Kinds of Software Engineers you’ll find at a startup
How Rajiv Desai Scaled Growth Engineering at Dropbox
Lessons Learned teaching Growth Engineering at Reforge
When is it time to replace Landing Page Builder?
Why I’m teaching Growth Engineering at Reforge
2023: A Year in Review
An Analogy
On the Town Budget
Do Carbon Offsets Really Work?
On Organizing
Yak Shaving
Computational Murk
The Finitary Finiversalist Church
Statistical Testing 3
Building Habits With Low-Effort Oncers
Where do I see the IndieWeb in 2030
Cat-a-log of 2025
Try Not To Get A Job
Goodbye, Slopify
Cat-a-log of 2024
Pilgrim Walk
Musical Discoveries of August
Teaching Information Visualization
My Toolbox
Must-Reads for Doing Qualitative Research in SE
Operations and Speed in Startups
Setting up a Go Development Environment with Sublime Text
Getting Started with Node.js
Embracing Participatory Culture in Education
Command Line Fun
Unsafe Defaults in Statutory Severability Analysis
Relish: A new serialization format
Motion to Dismiss for Failure to State a Vulnerability
So you want to serialize some DER?
What is a Benchmark?
Standard Libraries and their Discontents
Putting a Price Tag on Open Source
Postel's Law and the Three Ring Circus
Lessons learned from building a deadlift platform
A webapp skeleton with Rust, Rocket, and Diesel
Getting involved in open source
Ballast, a library for talking to Shipwire
Fixing bold font colors in termite
Installing Arch Linux on a MacBook Air 2013
twitter_images
Digging down
Go Naming Conventions: A Practical Guide
A modern approach to preventing CSRF in Go
The 9 Go test assertions I use (and why)
How to manage configuration settings in Go web applications
Organize your Go middleware without dependencies
When is it OK to panic in Go?
How to manage tool dependencies in Go 1.24+
Eleven tips for structuring your Go projects
Growth Letter #1 - Small Projects & Steady Growth
Growth Letter #0 - The month that changed my life
Steady Steps
Learning Online is the New Norm
How to get a startup job?
Increasing Velocity
How to Teach Yourself How to Code
The Road Ahead
ASCII characters are not pixels: a deep dive into ASCII rendering
Compressing Icelandic name declension patterns into a 3.27 kB trie
A flowing WebGL gradient, deconstructed
Sharing changes, visuals first
Searching for and navigating Git commits
The web’s clipboard, and how it stores data of different types
2024 Icelandic Developer Survey: Compensation, Technologies, and more
Introducing Arkio’s Pin Tool
Hate
What I believe
Parler’s epic fail: A crash course on running your own servers on a shoestring budget
Don't Let AI Write For You
Go does not allow truthiness
Tightening Constraints in Postgres
Domains in Postgres
Unique and Exclusion Constraints in Postgres
Types From Tables in PL/pgSQL
Dynamic Commands in PL/pgSQL
Trigger Execution Order in Postgres
Sparky is not a toy
A Latency Solution Disguised as Personality
My Robot Cares About Railway Stations
Wake up, Sparky!
Lessons from OpenClaw
ClawPod: OpenClaw on HomePod
Chaotic Bifurcations in the Logistic Map
AI Chat: The Last Messiah and Herzog's penguin
A day of catching up on sleep and doing nothing
The ideal day: making every 1440 minutes count
The art of decluttering your investments
Long time no see, my good friend Trump
The ideal way to be sick
Frieren's prerequisite for slacking off
My psychedelic truffle experience in Amsterdam
Diagnosed with ADHD at 35
Why I Signed The Amicus Brief for Anthropic v Department of War
MIT Mystery Hunt 2026
Authentic Imperfection
Ten Years Later
Brony Musicians Seize The Means of Production: My Eyewitness Account to BABSCon 2025
Who is AI For?
MIT Mystery Hunt 2025
Using AI to Get the Neopets Destruct-o-Match Avatar
Just a paradox
Internet n'est pas mort, il a juste une drôle d'odeur
Générer une blogoliste depuis un fichier opml avec Hugo
Migrer une application React de CRA à Vite
nodemon, sans npm ni nodemon
Mes commandes Git
Mes commandes du quotidien
L’émulateur de terminal Kitty
Kentucky Open 2025 Pre-Tournament Thoughts
New post on chess.com: Move Your Knight Up the Career Ladder
Next Round of Chess Study
Cincinnati Open 2025 Tournament Review
Cincinnati Open 2025 Pre-Tournament Thoughts
I Accidentally Did 100 Days of Chess
The Career Lesson I Keep Re-learning
Coaching for 5-Years-Ago-Me
Terrifi: a Terraform provider for UniFi networks (built with Claude Code and hardware-in-the-loop testing)
Some basic smartphone-free controls for the Eight Sleep using Flic buttons and Alexa
My Homelab, September 2024 (TrueNAS, Proxmox, Tailscale, a 2014 Mac Mini, and more)
Accessing a Docker Compose application via Tailscale with TLS (HTTPS)
A script to dim my Macbook display when an external display is detected
Connecting a Gli-Net SFT1200 Travel Router to a pfSense OpenVPN server
Accelerating vector operations on the JVM using the new jdk.incubator.vector module
Are Postgres functions faster than queries? (a very simple benchmark)
Excel as an accidental stream processor
zigxll: building Excel XLL add-ins in Zig
xllify is here!
From prompt to Excel custom function in 30 seconds
NATS as a web application backend
End of 2022
Using change data capture to perform flexible aggregations with DynamoDB and Druid
Patching in a development service
Announcing TalkToSales, which makes websites voice-native
The “strategic reserve” exposes crypto as the scam it always was
I’m looking for a cofounder
Announcing ReadToMe
2023 Reflections
Founders, Beware Hardware
The End of the Software Industry
The End of Knowledge Work
Don’t be THAT guy
How to Disable Notification Requests in Modern Browsers
The Accidental Public Speaker or How I Got Over My Fear of Public Speaking
Meet zx: A Better Way to Write Scripts with Node.js
How to Get Your First Job in Developer Relations
2020, Thank You!
Creating a DevRel Culture
Building a 1st Year Developer Relations Program
Backups and Toast
Encrypted Things
Remixing Closer
AWS Footguns
Filesystem Tagging
Email for Maniacs
The Tiny Website
Penn and Teller
The Frustrating Web
Use Your Preferred Technology
Another Avenue of Database Testing
Clinejection
Filesystems as Personal Memory
Listening To: SOULPUNCHER
Re: MCP is Dead
Listening To: Don't Slow Down
Dropout as Implicit Bagging
iPad Air M3 11-Inch: First Impressions
Making Responsive Images Just Work
Everyone Is a Builder Now
Medium and Meaning
Structural Reasoning About Deep Networks
Short Review: Deep Learning Part I
From Writing Code to Orchestrating Agents
AI Automated Pentesting: The Good, The Bad, The Ugly
Shai-Hulud Worm Investigation
CI/CD Security in Automotive Software: More Questions than Answers
JavaScript should stay away from servers until further notice
Pentesting a Web Application: A Case Study
Web App Security Architecture: Implementing Defense-in-Depth
LLMs are on their way to becoming our greatest security vulnerability
WhatsApp gets the boot: House of Representatives the app from official devices
Nine Minutes Later
Built for a Future You’ll Never See
A Big Heart
19358
My New Podcast
On People with Range
A Professional Amateur
Three words for the future
Building a Minimal Transformer for 10-digit Addition
Audiobooks are Just as Good
The Morality of Being Stubborn
Deontology as Pareto Optimization
Why the Book Determined Totally Misses the Point on Free Will
Autobiography the Autobiography
Contrarianism as a Proxy for Agency
Chip and Bowl Curvature in Guac Scrapping
Crumpled Paper: "The Hackers Who Tracked My Sleep Cycle"
Crumpled Paper: "The Case for Becoming a Manager"
Crumpled Paper: "Safer Agent Execution"
Crumpled Paper: "Hold on to Your Hardware"
I Built a Transcription App Over Christmas PTO
Tailwind Made CSS Great Again
Senior dev builds a blog
Autonomous Multi-Check AI Code Review
From messy product feeds to demo-ready e-commerce data
Ranking by Profit and Popularity in Elasticsearch
Personalizing e-commerce search results based on purchase history in Elasticsearch
Efficient bitwise matching of documents in Elasticsearch
Automating the Import and Export of Kibana Saved Objects
Barcelona: A Personal Guide
Re-directing Elasticsearch documents with out-of-range timestamps that (would) fail to get written into Time Series Data Streams
A Look at Progress Quest: The Original Idle Game
Quantum Fiber with the Unifi UCG Ultra
Making a Retro Dock for the Playdate Console
Upgrading the SwarmTurret
Building the DataToaster 3000
Building a Removable Bike Basket for the Yepp Rack
The Yoto Mini is Perfect
How To Quiet Down Your 3D Printer
tmux cheatsheet
Serving https for localhost
Sovling mysterious Airflow Workers getting stuck in AWS
Python: show a nicer stacktrace from your exception
Rename folder in Google Cloud Storage (GCS)
Bash-Fu
Apache Airflow Powertips
Quickly open node package in your $EDITOR
Moving fast with agents without losing comprehension
AI agents and platform teams
React design system library MCP
Open sourcing our microfrontend React bridge
Reflecting on Enterprise Engineering Summit 2025
Migrating to Vite
Package exports and eslint-plugin-import
Creating your own React design system analytics tool
My new axe
Writing code is cheap now
Jimi Hendrix Was a Systems Engineer
Learning Gutenberg – post #2: template parts
Learning Gutenberg – post #1
My 2025 GOTY
My old themes
A new band to fall in love with
Bayesian A/B testing is not immune to peeking
Adding search to my static blog.
Who needs git when you have 1M context windows?
Semantic Unit Testing
Three symmetric math riddles
Optimizing Jupyter Notebooks for LLMs
Win your fantasy league using operations research
Something happens to everyone.
The never-ending product requirements of user authorization
Finding the ideal light switch for a UK smart home
Database to client type safety with Typescript, TypeORM, type-graphql and Apollo
The shifting role of a Technical Product Managers
Static site hosting on GCP with HTTPS for (nearly) free with Cloudflare
Deploy your side-projects at scale for basically nothing - Google Cloud Run
I will get the hang of this blogging thing....
What the fog? Rise of the ‘intelligent edge’
GKE Compute Cost Comparisons In Small Clusters
Creating an up-to-date Distroless Python Image
Hosting Plausible Analytics on Kubernetes
Docker Desktop Alternatives for M1 Mac
Developer-Friendly Runbooks: A Guide
Some Musings From KubeCon EU 2021 (Virtual Edition)
Tools To Visualise Your Kubernetes Cluster
How to connect to Google Kubernetes clusters in parallel
Copyright is Dead
Boring Tech May Become Irrelevant Tech
Tapir Server with Cats-Effect and Pekko HTTP (snippet)
Hybrid IO-driven Promise (Scala snippet)
New Year, Old Me
How To Become a DevOps Engineer
Programming Languages in the Age of AI Agents
Try-catch-finally in Java is Cursed
The left and the right hands of data
A trick for public speaking
A guide for future managers
Live in the bookends
Look at the thing!
Perseveration and the economy of movement
On company culture and culture keepers
Walk through walls
On Modalities Of Thinking
Leaning In
My Personal Experience of a T-group
Carl Rogers and Complexity
Complexity Anti-Patterns
What To Do With Jealousy?
Bad breath, feedback, and love
&#8216;I don&#8217;t know&#8217;
App Screenshots: An AI Coding Agent Skill for Visual Documentation
The Software Factory: Why Your Team Will Never Work the Same Again
Building a Real-Time Todo App with Jazz and Vue 3
How I Turned Claude Code's Thinking Indicator into a One Piece Adventure
How I Added Sound Effects to Claude Code with Hooks
Building a Walkthrough Skill for AI Coding Agents
From Tasks to Swarms: Agent Teams in Claude Code
VMark: Hand-Drawn Annotations for Presentations
Just for fun: animating a mosaic of 90s GIFs
Two computers, one monitor, zero fiddling
Placeholder names should be bad and unique
Rebuilding this site
Okay, I really like WezTerm
GNU Parallel, where have you been all my life?
Timeseries with PostgreSQL
Easy SVG sparklines
Setting up Apple Pay Testing
iOS 26 Apple Sandbox Account Shortcut
What’s New in Xcode 26
WWDC25 Areas of Ongoing Interests
Xcode’s Code Assistant Introduced at WWDC 2025
Apps using external purchases as of Judge Yvonne Gonzalez Rogers ruling
Getting the customer’s transaction ID
Using StoreKit’s ExternalPurchaseLink
Request: Alex King Rememberances
Cycle 1 of New Trial
Anker PowerPort 5 USB Charging Station
Personal WordPress Theme
That liberating feeling when you let a domain expi&#8230;
Lo, Rowhammer!
11 Years Old
Safari vs. Chrome: Power Consumption
How I Reverse Engineered a Billion-Dollar Legal AI Tool and Found 100k+ Confidential Files
Brute-Forceable Airline Reservation API Left Millions of Passenger Records Vulnerable
How Broken OTPs and Open Endpoints Turned a Dating App Into a Stalker’s Playground
Reflection
Natural Language to Code Generation in Interactive Data Science Notebooks
Learning math reasoning from self-sampled correct and partially-correct solutions
PaLM: Scaling Language Modeling with Pathways
Synchromesh: Reliable code generation from pre-trained language models
Neurosymbolic Programming
Programming Puzzles
KaggleDBQA: Realistic Evaluation of Text-to-SQL Parsers
The need for new instructions: atomic bit fill and drain
Your MPSC/SPMC/MPMC queue is not a queue
Generalizing over mutability in Rust
2026-03-29 Locarno: Camellias and the Maggia valley
2026-03-27 A paste bin
2026-03-18 I haven't thought about software patents in a long time
2026-03-12 Simple sabotage of agents
2026-03-11 The cost of social media
2026-03-08 Time pressure in dungeon adventures is a bad idea
2026-03-06 The US military and its war crimes
2026-03-03 Thinking about a new phone
Last Chance – Planets
Planets – Final Week on Kickstarter
BSFA Awards 2026
Planets Kickstarter is live!
Read the first chapter of The Best of All Possible Planets today!
Boskone 2026 Schedule
The Best of All Possible Planets – Cover Reveal!
Books, Booze, and Good News
Minions Are the Future of Cinema
OpenAPI isn't Enough
Lessons from AI Engineer Paris 2025
Demystifying Agentic Memory
GUID reuse in WordPress
Uptime of GitHub Pages alternatives
RSS feed discovery with FeedLand
Does the Internet know what time is it?
Discovering the indieweb with calm tech
Oops, my UUIDs collided!
The UUID collection
Why UUIDs won't protect your secrets
Choice Density: How I Think About AI and Authenticity
First stitches: on learning to knit
Language Learning Crash Course: from slightly more than zero to slightly less than advanced
All the things I wish I knew about studying at school
Automating social media posting for my new blogposts
Vermeer at the Rijksmuseum
2022 Readings
On the interpretability of models
I have the world’s fastest website, and It’s probably slow for you
The mermaid is taking over Google search in Norway
Dynamic DNS(DDNS) with OpenWRT and Cloudflare
Ubuntu 24.04 with software RAID1 and UEFI
How to manage databases (MariaDB)
How to run Docker and VirtualBox at the same time on Windows
How to run multiple webservers with one IP-address
My Obsidian Workflow
Down a QMK rabbit hole
Playing with MySQL's slow query log
Grokking instance_eval
The 20/20/20 Rule for Micro-breaks
souvenirs (de merde)
February 2026 in review / Récap de février 2026
re:delphitools
Mes lectures de 2025
January 2026 in review / Récap de janvier 2026
December 2025 in review / Récap de décembre 2025
IndieWeb Carnival roundup: Cycles and Fluctuations
November 2025 recs / Recos de novembre 2025
How I switched from ruby to elixir and to learn it better - built a product
Advanced form components with Alpine and Rails
White-label mobile apps with Flutter & Fastlane
Open Graph Protocol: Improving your SaaS visibility on social networks
Alpine.js for Ruby on Rails Developers: Simplifying Frontend Development
Using component based approach in your Ruby on Rails app
Desktop app development with flutter
What is self hosting and how your software engineer career can benefit from it?
Halide and Python Quick-Start Guide
Exo 2: Growing a Scheduling Language
I'm Giving an Invited Talk on Halide at ASPLOS 2025!
I'm at Adobe now!
I Finished my Ph.D.!
Exocompilation for Productive Programming of Hardware Accelerators
How to Use CMake Without the Agonizing Pain - Part 2
How to Use CMake Without the Agonizing Pain - Part 1
Converting My Codebase to C++20 Modules. Part 1
How to Check If Two Triangles Intersect: Geometric Algorithms Explained
C++23 mdspan
Is the Point Inside the Triangle?
Mesh Stitching: Techniques for Repairing Gaps and Cracks in 3D Models
How to Implement Undo/Redo for a Half-Edge Data Structure?
Exploring Mixins
Mesh Clipping Operations with OpenMesh Library
Prepare To Be Disappointed (part 1)
Show Your Work To Hire Better
Turek's Maxim
Software Capabilities Vs Features
Correcting Overengineering
How To Criticize Coworkers
How To Do Less
Job One
Save Your Cursor
Software toolbox. Part one of many
Hello
How To Build Apps
How I built an ultrasonic 3d scanner
Integrate Coinbase Commerce with Django
Weeknotes: Iced Honey — Week 11, 2026
Weeknotes: Paranoid — Week 10, 2026
Weeknotes: Breadfan — Week 9, 2026
Weeknotes: Astronomy — Week 8, 2026
Weeknotes: Tuesday’s Gone — Week 7, 2026
Weeknotes: Trapped Under Ice — Week 6, 2026
Weeknotes: It’s Electric — Week 5, 2026
Weeknotes: Moth into Flame — Week 4, 2026
Please don't vibe code your personal website
AI code and software craft
My conversation with Sean Goedecke
Software engineers are not politicians
How to watch The Adam Friedland Show on a CRT TV
I played Diplomacy: World of Chaos
I read Infinite Jest
The world is not a simulation
LLMs are a Cognitohazard
Mozilla is now an AI company
Big Tech is Wrecking Community
Big Tech and Consent
Chuwi Minibook X N100 and Aurora
Auth Series 5: The Other Stuff
Auth Series 4: Passkeys
Auth Series 3: SSO
The red-lined bubble snail
Why can’t Python connect to example.com?
Useful type hints for Python
How to truncate the middle of long command output
AirPlay Receiver can interfere with Flask apps
What’s the main prefix in SQLite queries?
The file(1) command can read SQLite databases
My randline project is tested by Crater
2026 Year Start Homelab Services Overview
My AI Usage
Day-to-Day Linux - Endless Support?
2023 Year End Homelab Services Overview
CalyxOS - One Year of Use
Learning Linux - Changing the Kernel
Mastodon First Thoughts & Verification
Synology Photos & Drive with Custom Domain and SSL Setup
Creating a personalised bin calendar
Monki Gras 2026 “Prepping Craft”
The selfish case for public libraries
Dreaming of a ten-year computer
Gumdrop, a silly app for messing with my webcam
The bare minimum for syncing Git repos
Creating Caddyfiles with Cog
Swapping gems for tiles
On Grimoires and Dark Factories
My Current AI Production Coding Workflow
Early Lessons on AI Agent Productivity
Preemptive Ownership
Ruby: A Love Letter
Hello, world!
How I escaped decision hell by using a 1972 cognitive theory
Monads in C# (Part 2): Result
List is a monad (part 1)
Embracing Functional Programming Principles in OOP with Static Factory Methods
What -Ops are there?
GZIP exceptions, but only on hot or rainy days
How to change GitHub cache action compression level
Quickly estimating unused filesystem blocks
Gnatography 1
Book Review: Deep Down Dead
Top Ten Tuesday:
SF Gizmos & Gadgets
Language Models will be Scaffolds
Recursive Language Models
A Meticulous Guide to Advances in Deep Learning Efficiency over the Years
The Annotated Kolmogorov-Arnold Network (KAN)
Highlights of NeurIPS 2023 from Reading All 3584 Abstracts
Installing Scrutiny on QNAP QTS NAS
Did you lose your AirPods?
GraphQL Introspection and Unsecured Queries in the Wild
A cheeky audit of smart package lockers
IoT Coffee Maker
LLM Coding Assistant Census 2025
Task Runner Census 2025
The Spell is Broken – Using Bluesky
Best films seen in 2024
Fragments on films watched in 2022
Why are AI companies so insistent on government regulation?
Courage and Commitment
Hello, World
#NovaraIRL: Money For Nothing
Changing The Weather On Immigration Via Legitimate Concerns On Donald Trump
Trigon: exploiting coprocessors for fun and for profit (part 2)
Trigon: developing a deterministic kernel exploit for iOS (part 1)
A step-by-step guide to writing an iOS kernel exploit
An in-depth look at the code-signing process: ad-hoc signing
A comprehensive write-up of the checkm8 BootROM exploit
Getting untethered code execution on iOS 14.8
Escape from social media
Credentials for Linux (FOSDEM 2026)
A vision for Passkeys on the Linux desktop
No Place to Hide
GitOps Squared
kuber(netes)less
Presenterm is my new favourite way to do presentations
Hello World
About
I built the Postman for Video Engineers
Introducing Video Commander
FFmpeg the Easy Way
FFmpeg for Instagram
FFmpeg + WebAssembly
A Quick Dive into MP4
Teaching AI to Verify Its Sources
The Universal Plug: Connecting Containers to Callables
Feng Shui Refactoring
Leveraging Attributes With Respect\Validation and Laravel
Bootstrapping Is Not Security Paranoia
Building a Modular Application with apywire and starlette
Validating Markdown Structure in a Single Declarative Expression
The Five Levels of PHP 8.5 Pipes
Quantum Error Correction goes FOOM
Actually, you can't test if quantum uses complex numbers
Why haven't quantum computers factored 21 yet?
[Talk at QEC2025] Yoked surface codes (and crosshair surface codes)
[Paper] A Classical-Quantum Adder with Constant Workspace and Linear Gates
[Paper] How to factor 2048 bit RSA integers with less than a million noisy qubits
[Talk at Simons Quantum Colloqium] Magic state cultivation
[Paper (Sigbovik 2025)] Falling with Style: Factoring up to 255 'with' a QuantumComputer
Your URL Is Your State
The Hidden Cost of URL Design
How Functional Programming Shaped (and Twisted) Frontend Development
Avoiding the Shiny Object Syndrome: When “Good Enough” Is Actually Perfect
From Code That Works to Code That Matters: A PDF Security Feature Story
Smarter than ‘Ctrl+F’: Linking Directly to Web Page Content
Search friendly dropdown menu
CSS Style Guide At Robusta
Gain an Edge in Lottery with Math
Mapping Global Cuisine with Word Embeddings
Random Forest Tutorial: Predicting Goals in Soccer
Kernel Density Plots
Self-Organizing Maps Tutorial
Layman’s Guide to A/B Testing
Time Series Analysis with Generalized Additive Models
Artificial Neural Networks Introduction (Part II)
Photo
Fooling OpenAI’s CLIP Vision systemOpenAI have developed a...
LitterCamComputer vision software can now detect motorists...
BearID Project“We develop noninvasive technologies to identify...
AI autocompletes Windows 95 startup tuneHere’s what happens when...
Chants of Fuck the AlgorithmStudents gathered outside of the...
First Order Kiss by ShardcoreThe artist Shardcore has used a...
training an existing StyleGAN model of faces, on catsJanelle...
Desert Space Ship Scene
Making of Tree Clipper
BCON 2025
About Algebraic
Rust Blender Extension API with Hot Reloading
Datenschutzerklärung
Impressum
Terms and Conditions
Schwarzenegger’s Meditative Mindset Secret
Why I’m starting a personal newsletter and why you should too
Creating from fullness while reaching after big things.
The Anchor And The Balloon
Creating For Relevance
Working backward and working forward
The Brain Blender
Seeing Is Editing
Weaving 8-shaft crackle patterns
Short film: Pattern Club Winter School
Tying knots in Düsseldorf
Upcoming research workshop: Natural Language as Heritage Code
Exploring 8 shaft weaving
Workshop: On being formal: communal informatics, khipu technologies, extractivism, and debt.
Weaving to understand how humans think
Weaving to understand the cosmos
ALF’s Wardrobe (Season 4)
ALF Magazine (The Premiere Issue)
ALF’s Wardrobe (Season 3)
ALF’s Wardrobe (Season 2)
ALF’s Wardrobe (Season 1)
ALF’s Cameos on TV
ALF Revives!
ALF Jigsaw Puzzles
Microsoft Is Undoing Windows 11
Wired Headphones Are Making a Comeback in 2026
Your Phone Is a Full Computer — Why Is It Locked Down?
The $599 MacBook Neo Is Reshaping the Laptop Market
Is BitTorrent Piracy Fair Use? Meta's Bold Claim
GPT-5.4 Explained: One Model to Rule Them All
MacBook Air M5: Is It Worth the Upgrade?
MacBook Neo at $599: Apple's Budget Laptop Explained
LAVENDER SPRIGS: Wear it with Pride!
ALHFAM President Mark Texel’s Post – Winter, 2026
“WHY THIS WAY?”: The Requirement for Rote Skills in Living History
ALHFAM FARM PIG Launches New Workshops in 2026
ALHFAM President’s Fall 2025 Message
250th Spark: Grassroots Power in a Time of Uncertainty
250th Spark: Two Lights for Tomorrow Kicks off 250th Celebration Next Month
President’s Message Feb 2025
Java CheatSheet
💐 Repl Driven Development: /Editor Integrated REPLs for all languages/ 🔁
Arabic CheatSheet
A Brisk Introduction to Karate
My Family Tree
A Brisk Introduction to the Fundamentals of Arabic Grammar, نحو
Arabic Roots: The Power of Patterns
Glossary of Arabic Linguistic Terms
Is Zig's New Writer Unsafe?
Everything is a []u8
I'm too dumb for Zig's new IO interface
Zig's new Writer
Zig's new LinkedList API (it's time to learn @fieldParentPtr)
Allocator.resize
ArenaAllocator.free and Nested Arenas
Zig's dot star syntax (value.*)
Driving Faster Takes Longer
A Hash Table that Uses Less Space Than the Items that it Stores
Train Tracks with Gaps: Applying the Probabilistic Method to Trains (Best Paper, FUN 2020)
I’m Above Average and So Are You
What is the actual infection rate at universities?
My favorite example of: the probabilistic method
My favorite example of: the pigeonhole principle
The Many Quirks of Qsort
When Zig Outshines Rust - Memory Efficient Enum Arrays
Beating the Fastest Lexer Generator in Rust
On Custom-Width Integer Types
Measuring the Impact of False Sharing
A threat model for accessibility on the web
How to self-host all of Bluesky except the AppView (for now)
Linux (Arch/EndeavourOS) on the ThinkPad X1 Nano Gen 1
Setting up my WhiteWnd
Week 395: Bird ladies
Week 394: Beautiful schlopp
Week 393: Aristocrapts
Week 392: Good naturedly
Week 391: Proper tea
Week 390: 🌷🥾
Week 389: Cool bean
Week 388: Future people
Making games in Go with Ebitengine
Self-hosting your code on Gitea
Building Itako: an investment tracking application
Playing with open source LLMs
Building a container orchestrator
Discord considered harmful
Thoughts on releasing our first indie game
Writing GDScript with Neovim
How To Never Be Bored at Work
How to build a time management routine
How procrastination affects your daily life
How Outsourcing Will Help You Grow on YouTube
10 Productivity Tips For New Entrepreneurs
What is Sustainable Productivity and How You Can Achieve It
10 Productivity Tips for Creators
What Is Burnout and How To Recover From It
The Apothecary Diaries: For My Friends with Their Inner Light
Chicken Soup
When the Weather is Dry......
The Matrix: That Strange Feeling Matters
Recommend Typeless
Digital Minimalism Manifesto
The Art of Creative Insults
Let Go of the Burden
Chocolate Mousse (GF/DF)
Alice’s Sauce
Birdseed Bread
Masa Cornbread, Gluten- and Dairy-Free
Once More, with Feeling
My c.v./resumé
”Galileo’s Middle Finger” publicity info
Cashew (or Peanut) Sauce
On stochastic parrots
On “Bostock vs Clayton County” and algorithmic discrimination.
On centering, solutionism, justice and (un)fairness.
FAT* Papers: Fairness Methods
FAT* Papers: Profiling and Representation
FAT* Papers: Systems and Measurement
FAT* Papers: Framing and Abstraction
On the new PA recidivism risk assessment tool
William Blake's Piping Piper
10^16 to 1 by James Patrick Kelly
Hot Stuff, The Little Devil No. 165
Captain Pook and The Pirate Kitties
Gold by Isaac Asimov
G.I. Joe, A Real American Hero No. 4
The Eye of the World by Robert Jordan
The Very Pulse of the Machine by Michael Swanwick
AI Hot Takes From A Platform Engineer / SRE
My Home Fibre Network Disintegrated, Literally
Back Strain is Gone
Project Homelab - Part 1: Laying the Foundation
《虑》
RCU is Pretty Cool
Debugging SRE #2: Pager Burnout
Debugging SRE #1: SOP Opera
Best Things to Do in Melbourne
15+ Best Things to Do in Brisbane, Australia
Ultimate Australia Travel Guide
Local&#8217;s Guide to Best Hotels on the Gold Coast, Australia
10 Best Travel Apps I Use on Every Trip
How to Start a Travel Blog (And How to Make Money From It)
What are the Cheapest Asian Countries to Visit?
15 Ultimate Best Things to Do on the Gold Coast, Australia
Update!
Wellness Update
Well, That Wasn’t Fun
End of Year Wrapup
Update!
Weird
Chad
Follow up - Never Eat This Soup
Empathy: Understand? Yes. Truly Replicate? No.
My Spirit Animal
All Apologies
On Money, The Upvote and the Iron Maiden (not the band)
Grasslands National Park
Luna
HBC Moudon - HC Therwil (M18)
HBC Moudon - SG Handball Seeland (M18)
HBC Moudon - US Yverdon (M13)
Street & station
Golden Voyager
Early at job
HBC Moudon - NHB La Côte (D3)
Luna
2026-03-16-11-03
HBC Moudon - HC Therwil (M18)
2026-03-13-19-08
TEETH
2026-03-11-06-32
2026-03-11-06-01
This Track Kills Fascism
i made new music!
I'm tired of being a "creator". I am an artist.
new habits are hard
new habits!
constantly trying to be less anxious / remember that buffy episode
i love this little plastic camera
i don't want to live in a cloud anymore / some brief thoughts on sobriety
morning poem / granola and yogurt
X-Forwarded-Prefix: Magic that almost worked
A different way to code
Backing up
React is a framework
Man in the middle proxying
Async iterators: a concurrency journey
My first split mechanical keyboard
Drawing Triangles on N64
Slipping standards
Flaws
On roles
Different things at different times
Relaxing is NOT a waste of time
Just write something. Anything.
My brain doesn't let me chill
Chatting in the airport
Why Graceful Shutdown Matters in Kubernetes
What is a CDN and Why It Matters?
Kubernetes In-Place Pod Resize
Contributing to Open Source: Why It Matters and How to Start
kubectl-find - UNIX-find-like plugin to find resources and perform action on them
The Simple Habit That Saves My Evenings
OAuth2-proxy: protect services in kubernetes
Note on cable management for standing desk
DAW question for Slackware 15.1: Pipewire or JACK Audio?
Oust the orange clown
Multiple Chromium updates in rapid succession
KDE 6_26.03 for Slackware-current
KDE 6_26.02 for Slackware-current
OpenJDK updates (Slackware packages)
Put your application inside a VPN jail
Ktown updates: KDE Frameworks and Gear (PIM & Applications)
Transmission
In Memoriam: Les Barany
Alien$
Casting Ripley
Alien Reviews From Yesteryear
Alien 3: I Was There!
Fan Reaction to Alien, 1979.
Alien: the 1978 Scripts
How good is Claude, really?
Developing a food-safe finish for my wooden spoons and cups
In search of the simplest all-in-one blade sharpener
Woodworking as an escape from the absurdity of software
The complex simplicity of my static websites
Reverse engineering the MacBook clamshell mode
A window switcher on the Mac App Store? Is it even possible?
Trying to get past the 500 nits limit of the MacBook Pro (and failing)
Typecasting form fields in Ember
Simple item aligment with flexbox
Ember closure actions have return values
Building Team Time Zone, part 5: Deployment, Release, Retrospective
Building Team Time Zone, part 4: Authenticating with Slack
Building Team Time Zone, part 3: Creating the User Interface
Building Team Time Zone, part 2: Ember Data and the Slack API
Building Team Time Zone, part 1: Inception, Prototype, and Planning
Online again
You’re being lied to
The Witcher
Name update
Living behind firewalls
Mental health with no internet
Internet blackouts
Alone and lonely
Monday @ 4:09 pm
Music Monday
The cost.
Sunday @ 12:29 pm
Sunday @ 11:51 am
Open Sourcing Deadpendency
Shutting Down Deadpendency
The Benefits of Learning Haskell
Reflections On Using Haskell For My Startup
Haskell On Google Cloud Is Great
Can We Have Exhaustive Return Warning?
My Experience Creating A One Person Startup
Photography: Hellenic Championship 2025 | ATP 250 | Telekom Center Athens, Greece
EPK and Behind The Scenes Productions Greece | The Assassin | Amazon Prime Video
Photography: The 2025 Davis Cup at the renovated OAKA Olympic Tennis Center (Stadion Sports Center) in Athens, Greece
EPK Productions Greece | House of David | Amazon MGM Studios
NASA features Alexandros Maragos image of the rare Blue Supermoon at the Temple of Poseidon in Greece as Astronomy Picture of the Day
21K Visuals by Alexandros Maragos for the Rebranding Launch Event of the National Bank of Greece
EPK Productions Greece | My Big Fat Greek Wedding 3 | Focus Features
Athens: The New Lycabettus Theater (Construction Timelapse)
Writing is the most powerful thinking tool
The Conversation I Wish I Had: A Story About Mental Health and Friendship
5 ways to become a product manager without having PM experience
Talking murders thoughts
Proton Takes on Silicon Valley Giants with Privacy-First products
Criticism is a gift
What’s your actual job compensation?
How to present fearlessly
The Drawn & Computer-Generated Menswear of “Tintin”
The Ornate and Cheeky Attitude of the Bib Shirt
Fashion DBs, Literal Sportswear, and The Aperture of Acceptability
Resoles, A New Grey Suit, & Loving and LARP-ing Around In Riding Boots
The Menswear in Train Dreams (2025)
“Consuming” Menswear Without Buying & Understanding Two Approaches To Creative Expression
Good Things Take Effort, Details Are More Important Than Brands & Don’t Be Passive!
The Menswear in Marty Supreme (2025)
Fixes for Koken Problems
Making a Parallax SVG Landscape - new site part 1
SVG Landscape with live colour theming - new site part 2
Conditionally loading a polyfill for :focus-visible
Conditionally loading a native image lazyload polyfill/library
Front End Web Development Feeds and Newsletters
Web Nostalgia and Lost In Translation
Personal site stack for alistairshepherd.uk
Books I Read in February 2026
Books I Read in January 2026
My Most Anticipated Books of 2026
My Books of the Year 2025
Books I Read in December 2025
Books I Read in November 2025
Books I Read in October 2025
Books I Read in September 2025
A Little Border Crossing… A Day Trip to Gibraltar from Málaga
A Little Family Travel… Gelato, Bells & Big Bikes in Rome
A Little Day Trip… Why We Skipped Pompeii for Ostia Antica
A Little Adventure… Enjoying Norway’s Most Scenic Train Ride in the Family Car
Vegetarian Survival Guide for Oaxaca, Mexico
History In The Making (2025)
BLIND RAGE (WDOA) *The mugshot drawn in this picture is fictional.*
DRAWN SHIRTS (CONTINUED)
anthony-louis-johnson: We choose to believe in everyone....
anthony-louis-johnson: What Up, Po. #OTHERart #YESSIR...
anthony-louis-johnson: #TheLoveMagnet. #OTHERart by...
anthony-louis-johnson: Imagine if this was your iPhone skin…...
anthony-louis-johnson: “#TheStrengthOfStreetKnowledge”....
(Update post) Joining the Troika! Mega dungeon and Sons of Horus Update
Inkarnate Map Tool - New Skill Unlocked!!!
Map of Nonsense and Spheres
Map of the The Blancmange & Thistle (of my own design)
TROIKA! - A disruptive Genie - "Be careful what you wish for"
Livestream Video Performance of New Album Material
Let the 2026 gardening season begin!
The “Haneda Problem” Problem
Ambient Guitar in the Studio
Deus ex machina? Yes, please!
It begins.
Today’s Rules
The Big 2025 Gardening Post
Dream
Springtime
Collage
key
Suna no Kioku
outlet doesn’t work
Comfort in the never change
Chasing Sunset
How to leave Germany
How to get a Kitagutschein
How to find a Kita in Berlin
German health insurance when unemployed
German health insurance for freelancers
German health insurance for students
German health insurance for employees
German health insurance for Azubis
Livestream Video Performance of New Album Material
Let the 2026 gardening season begin!
The &#8220;Haneda Problem&#8221; Problem
Ambient Guitar in the Studio
Deus ex machina? Yes, please!
It begins.
Today&#8217;s Rules
The Big 2025 Gardening Post
Binary operator precedence in SQL
This is Lutra, a query language
SELECTs and queries
How I do software
What do type systems do?
How data formats are born
Group by primary key
Parameter type inference in SQL
Lick Luck
a famous lost ceiling mural, visible only in other paintings of the building in which the mural&hellip;
ronenv: Brady Corbet. 2009/08/15 🗽
ronenv: Be My Valentine?Happy Valentine’s...
a few selfies 4 u
Of time, an ally make
Diving Back Into The Game Backlog
Clearing My Gaming Backlog
Pokemon, Diet, and Overall Health
So Long, Pikachu
Not Quite Vegan
Plans For The Future
Tapering Off Zoloft
Relearning How To Sneeze
GBCOMPO Update : Closure and Moving Forward
My Metroidvania​ Is Getting a Physical Boxed Edition (Pre-Order Information)
All the changes added since the jam version
The Game Map
A Deep Dive into Building a Modern AI Toolchain
Running ML Infrastructure Without Losing Your Mind
Evaluating NexaSci-Falcon-10B: A 3-Week Scientific Model That Punches Near Frontier
How I Built a Scientific LLM, Trained It for ~$200, and Hit ~878 tok/s on Consumer GPUs
Building Under Constraint: My Engineering Philosophy, Distilled
Predicting Protein Secondary Structures with CNN + BiLSTM
Building Software My Way: The Philosophy of an AI Systems Engineer
What is Systems Engineering
Newsletter Issue #5
Newsletter Issue #4
Newsletter Issue #3
Newsletter Issue #2
Newsletter Issue #1
How to make a Cyber Risk Assessor using ChatGPT Projects
GRC Resources
C-I-A Score Calculator Tool
Superplanning: a unified planning skill for Claude Code
superpowers-ruby v5.0.6: compound skills and Ruby idiom fixes
3 New RuboCop Style Cops: SelectByKind, SelectByRange, PartitionInsteadOfDoubleSelect
How to Add Rubocop MCP to Claude Code and OpenCode
OpenCode Uses Rubocop as the Ruby Language Server
How to Enable Ruby LSP in Claude Code and OpenCode
Essential Ruby Gems for Working with Agent Skills Files
Improving Git Diffs with Delta
Keeping Secrets Out of Logs
Mental Models
Read-once Objects
Tainted Types
Branded Types
Always Tell When You Stop Telling
Literature Insights
Every Online Course I've Taken
Holy Basil Batman
Masuyoshi Three
Alinea at Long Last
Quick Eats – Lavo
Date Night – Casa Vega
Date Night – Alto
Family Night – Shin Sin-Gumi
Blue Mun Day
DREAMSCAPES
NFT Collection: Floral
Ohayō おはよう
Readings
Startup Playbook
How to make your Websites Retina ready
Which of these 6 Product Team Antipatterns does your Team have
Referral Blueprint
How To Offset UE4 Pop-Up Notifications
Now that the game industry is working from home...
UE4 UMG UUserWidget: Which fires first, NativePreConstruct or Blueprint PreConstruct?
UE4 Editor limited to 60 FPS when not plugged into power (on battery)
Fixing UE4 Marketplace Comment Usernames Being Unknown
Confessions of an Unreal Engine 4 Engineering Firefighter
Building Dedicated Server Target Files
Custom UE4 UMG "Screen Sizes" Configuration
ABOUT
AI and Software Development
Architecture of a URL Shortener
DNSao - Quick and Private DNS Forwadder
Migrating from Jekyll to Wordpress
Do what you need to do: The importance of doing the basics with excellence
The Trap of Toxic Positivity
What you need to know to be a software developer
Peer-to-peer voice over IP call with pjsua
Download OpenStreetMap bounding box PNG
Geohash Python example
Lossy Counting Algorithm Python example
Create a local Kubernetes cluster and deploy your code end to end
k3s and MetalLB "destination unreachable" issue
A "super ping" command to run while diagnosing network issues
Upgrading Alpine Linux diskless setup on a Raspberry Pi
It&#8217;s a Poor Craftsman Who Blames His Tools
Responsibility and the Road Ahead
Agents in the Wild
MCP Isn&#8217;t Dead You Just Aren&#8217;t the Target Audience
The Observability Gap
The Fingerprint of Sound
Great Video on Gemini Scribe and Obsidian
Everything Becomes an Agent
Building a Trading Bot That Could Turn $10K into $102K: xLSTM (DL) + PPO (RL)
Nvidia's $20B Groq Deal: The Inference Wars Just Got Real
Forge: Lightweight, Fast, and Reliable Local CI/CD
MCP x Cursor PoC: Rogue MCP Servers, IDE Browsers, and Real Defenses
Majestic Labs vs. the Memory Wall
China's AI Dual Flywheel: Why Mainland Hardware Wins First, Hong Kong Internet Later
Compute Wars: Google’s TPU Push vs Nvidia Blackwell and China’s No‑Sell Moment
After Meta's $75B Bet: A $30B Bond Deal and Wall Street's Harsh Reality Check
Fluoridation Barely Fails a Risk-Benefit Test
Mortality Cost of Taxation
Notes on Gaza
Why you are psychologically screwed up
The Inaccuracies in Don't Look Up
Algorithmic Feed Equals Publisher
Unique Entity Ethics Solves the Repugnant Conclusion
Bounding Uncertainty of Addiction Costs
Launch Now
Maggie Appleton on Gas Town and Coding Agent Orchestration
A Broken Heart
Writing Elixir for AI Agents: Patterns That Help (and Hurt)
Why AI Coding Agents Love Elixir (And You Should Too)
Elixir and AI: Building LLM-Powered Features
The AI-Native Elixir Project: What Changes When the Agent is Your Pair
Testing LiveView Components in Isolation
Building Real-Time Dashboards with LiveView
Debugging Production Elixir with Observer and Recon
Building APIs with Absinthe GraphQL
The Differentiation Premium
Cairn: Flow Within Constraint
The Vision Pro, an Unintentional Trojan Horse for AR
Eccentric Founders
Gawking at the AI Zoo
Review: New Money
Decision Precision
The Demise of Tesla’s Flagships
Rising from the dead
Hope
Perfume gods smiling down on me
Should your collection contain classics?
Perfume Consultant
The future of home fragrance is here?
My top 15 perfumes
The year that was
The Future - 2026
Dungeon Design Note: Obstacles Support Exploration
Dungeon Design Note: Defining Interactivity
Natural History of the Mantichora
Most Adventures are Bad - An Adventure Writing Process
Fear in a Handful of Dust
AN INTRODUCTION TO DUNGEON CRAWLING
A Few Crystals More 1 - Magic Rules for My Games
Hardware Security Principles
Capabilities for Open Source Innovation: Background
Transitions in Open Source Initiative leadership
The Future of Open Source
Engaging hidden influencers as active participants
Relativity, skepticism, and virtual worlds
Mythbusters - Why I (still) Love Perl
UDS-R Architecture Preview
Motivational Interviewing the Navy Seals
How to get your money back from Techshop
Self Awareness
Conflicting goals
Write advice to yourself
Podcast Episode 2 &#8211; Interview with Bill Hartman
The art of the man purse
Tag-lines and framing your message
Sonoff NSPanel Pro locally in Home Assistant
Bed thoughts
Mask your email against spam with aliasases
Lifehacks for couples
Write beyond ashes
Bitwarden password manager
OnePlus 5/5T: Installing Magisk root & xXx NoLimits ROM
OnePlus 5/5T: Unlocking bootloader & Installing TWRP
What I've Been Watching (Feb 2026)
What I've been watching (Jan 2026)
Trip to Bristol + Stationery Haul
2025 - a year in review⋆。°✩
Film-mas Day 4# A Charlie Brown Christmas
Film-mas Day 3# - A Christmas Story
Film-mas Day 2# - The Preacher's Wife
12 Days of Film-mas Christmas movie challenge! Day 1#
Archival Notice
When asked about reading
The dilemma of double knowledge work a day
Fantasy tournament - Fall update
My struggle with doom scrolling
How do writers start writing with style?
The practice of noting down random ideas
Fantasy tournament - July & August update
Bets
Practical Tips for Getting Reinforcement Learning Algorithms to Work
Subscribe
Snippets
Linked
Hobbies
How to Learn Things
Getting started in Robotics
Launch day
About Us
FAQs
Does Freedom Exist?
Let's get this book back into print - community effort required!
This Was the Calling
I Look for Exits
The Masses
Scents All Around
The life we live is merely one among several possibilities
Pigeons, toll roads, hot dogs, Neue Nationalgalerie
Starting later to finish earlier
Duck Detective 2 Postmortem
Duck Detective Narrative Design Dissection
3 Things I Learnt from my Favourite Game in 2024
Sequel Announcement Learnings
We got over 60k wishlists in 6 months. This is how:
How we went from a 300 wishlists to 30k+ wishlists
What was the first game you launched on Steam and how did it do?
Rough RGB
Quasicrystal
Periodic System v4
The Prism Cross
24-Bit Horizon
The Spectrum Nautilus
Ganesha
Static Bloom
Building This Site with Eleventy
Adding the noopener attribute to CommonMark
Audible’s New Customer Experience
Introducing Notist
Implementing Webmentions
Using Gravatar as a Spam Indicator
Keeping Your Content Classy
Creating Custom Short URLs in Perch Runway