Blog by Jade Michael Thornton

All opinions are my own and do not reflect the views of my past, present nor future employers. Do not immerse this blog in water. Do not expose to direct sunlight. Safety goggles recommended. Blog titles ice before road. Danger: high voltage. Do not read odd-numbered posts during a snow emergency. Keep out of reach of children. Secure firmly to wall before reading. Not intended for highway use. Remove silica packet before eating. Do not make eye contact with the performers. Watch for fallen rocks. This blog is known to the state of California to cause cancer. Do not use as a projectile in a catapult. Do not feed the wildlife, especially after midnight. Avoid reading during a full moon. In case of emergency, this blog doubles as a floatation device.

Family Recipes | Subscribe


Why is Dodd Road discontiguous?  
A brief history of an early highway in the Twin Cities, MN: Captain Dodd’s 1853 Minnesota pioneer wagon trail, its discontiguous modern alignments, and surviving gravel segments.

Walden and Bdote: Land, Protest, and the Forgotten Cost of American Freedom  
Sharing one of my favorite college papers, in which I contrasted Henry David Thoreau’s celebrated individual communion with land against the Dakota’s collective kinship with Bdote and desperate resistance to dispossession, using this to point to how American freedom was built on the silencing and exile of indigenous protest.

The Chains of Plato's Cave  
The chains of the prisoners of Plato's allegory of the cave aren't really there holding us down. Critical thinking is one tool which can help us realize the shifting nature of our perceptions.

Org-roam: Automatically Set Node Created and Modified Dates  
Enhancing Org-roam nodes with auto-updating created and modified properties.

Connecting consult-line with isearch history  
Adding the latest consult-line search term to isearch history for easy search continuation

A list of the best bug write-ups I've read  
A modest list of interesting blog posts I've come across containing tech mystery stories exploring how a bug or mistake or other problem came about, how it was discovered, how it was fixed, and maybe some lessons to learn.

Snyk Language Server in Emacs
Setting up the Snyk Language Server for use in Emacs by defining a custom server connection in LSP Mode

Some favorite lesser-known Emacs packages  
A few of my favorite lesser-known Emacs packages which don't usually make the top lists

Overriding project.el project root in Emacs  
A short function to override what project.el thinks your project root is with a hidden file

Halfway on Main: Thoughts on Clean Architecture
Uncle Bob ignores his own advice when considering the "Main" component, but we can improve on his thoughts and learn from them

Remove (deinit) a Git submodule
A quick reminder of how to remove a Git submodule, because I always forget

Fix Steam 'Corrupt Update Files'
How to fix the annoying error when downloading or updating some Steam games, which reports the error 'Corrupt Update Files'

Automatically add Jira issue to commit message from branch name
When your git branch name contains an issue number (e.g. from Jira), automatically format git commit messages with the issue number at the end

Data Paradigms in TCL: Associative Arrays vs Dictionaries
Understanding the fundamental differences between TCL's associative arrays and dictionaries, and when to use each.

A Known SSH Socket for Tmux
Using a known, shared SSH socket to enable agent forwarding through an existing tmux session

TCL Wat
A collection of weird TCL edge cases and gotchas I've encountered while working at FlightAware.

What's new in http-server v0.12?
A preview of upcoming features in http-server v0.12, including Brotli compression, configuration files, and improved error handling.

Fixing cmdline for Non-Terminal Usage
A fork of the TCL cmdline package that fixes a bug preventing usage in non-terminal contexts by removing the dependency on argv0.

ClearNight Retro
Introducing a new dark, relaxed retro theme for the Atom text editor

I successfully compiled the xmr-stak miner with CUDA
After many errors and failures, I found a method to successfully compile the xmr-stak unified XMR miner with CUDA support

Remove an element from an Array in Javascript
A new Javascript function to remove any element from an Array in an intuitive way, with support for negative indexing.

What's new in ECMAScript 2017
Two years ago, ES6 gave a massive update to the already powerful ECMAScript standard. This year's release, ECMAScript 2017, provides several new features and changes. Let's take a look.

Duplicate IDs in HTML: What would happen?
Duplicated IDs occur both intentionally and not, so what happens when a browser tries to render them?

Set DuckDuckGo as default search in Thunderbird
For several dwindling reasons, DuckDuckGo can still be tricky to add to some services despite being the default search engine for several browsers. A couple years ago, Mozilla broke the old method of adding DuckDuckGo to the settings. They neglected to update their documentation, so here's a little for you.

Vero: A Simple Zsh Theme
Announcing the release of Vero, a simple and informative theme for Zsh with git status, version managers, and more.

Coding a website from scratch — a timelapse
Jade creates a simple website from scratch using the Bootstrap framework.

Combine multiple Excel workbooks into sheets in a single workbook
A quick VBA subroutine for combining multiple Excel workbooks into a single workbook, making ingestion into Tableau easier.

Protonmail - Why I switched and you should too
ProtonMail is the world’s largest, most user-friendly open source secure email service, developed by CERN and MIT scientists and protected under Swiss privacy law. It brings email privacy back to the people while still maintaining a fantastic user experience characteristic of the first-class email service it is.

Switch Caps Lock and Escape (Linux)
The standard QWERTY keyboard is great in a lot of ways and for a lot of uses. My current keyboard has been with me for years and I know it well, but if I could change the locations of a couple keys, I would. And naturally, that's what I did.