Blog by Jade Michael Thornton
Getting RailDriver to work on Linux
Responsibility Without Informed Agency: Kant do That
The Dakota War of 1862, Part Two: Six Weeks
The Dakota War of 1862, Part Three: The Reckoning
The Dakota War of 1862, Part One: When Patience Ran Out
StormScope: Giving Real-Time Weather Data to Your AI
Weather Station Forwarder on Cloudflare Workers
Your AI Is Not Your Co-Author
Business Is Not War
Creativity Was Already Free
Why is Dodd Road Discontiguous? A brief history of an early highway in the Twin Cities, Minnesota
Walden and Bdote:Land, Protest, and the Forgotten Cost of American FreedomJade Michael ThorntonUniversity of Minnesota
The Chains of Plato's Cave
Org-roam: Automatically Set Node Created and Modified Dates
Connecting consult-line with isearch history
A list of the best bug write-ups I've read
Setting up the Snyk Language Server in Emacs
A few of the best lesser-known Emacs packages
Overriding project.el project root in Emacs
Halfway on Main: Thoughts on Clean Architecture
Remove (deinit) a Git submodule
Fixing corrupt update files in Steam
Automatically add Jira issue to commit message from branch name
Data Paradigms in TCL: Associative Arrays vs Dictionaries
A Known SSH Socket for Tmux
TCL Wat
What's new in http-server v0.12?
Fixing cmdline for Non-Terminal Usage
ClearNight Retro
I successfully compiled the xmr-stak miner with CUDA
The Internet worm of 1988: A Tour of the Worm
Remove an element from an Array in Javascript
What's new in ECMAScript 2017
Duplicate IDs in HTML: What would happen?
Set DuckDuckGo as default search in Thunderbird
Vero: A Simple Zsh Theme
Coding a website from scratch — a timelapse
Combine multiple Excel workbooks into sheets in a single workbook
Protonmail—Why I switched and you should too
Switch Caps Lock and Escape (Linux)