Getting RailDriver to work on Linux
Getting my RailDriver train sim console working through Proton on Linux so that Train Sim World 6 can read it as a native controller
Blog by Jade Michael Thornton
Getting my RailDriver train sim console working through Proton on Linux so that Train Sim World 6 can read it as a native controller
Responsibility for AI systems means little without informed agency, and the AI industry's pattern of opacity around training data, environmental costs, and system prompts is a structural failure to sustain it.
The second of a three-part history of the Dakota War of 1862: six weeks of fighting along the Minnesota River valley, from the first attacks to the Dakota surrender at Camp Release.
The last of a three-part history of the Dakota War of 1862: the military tribunals, the largest mass execution in American history, and the exile of the Dakota people from Minnesota.
The first of a three-part history of the Dakota War of 1862: how broken treaties, fraudulent translations, and a winter of starvation brought the Dakota to the night they chose war.
An open-source MCP server that gives AI assistants access to real-time US weather data from seven sources, enabling grounded meteorological reasoning.
How I ported a Google Apps Script weather station forwarder to Cloudflare Workers to push my Tempest readings to CWOP, Weather Underground, PWSWeather and Windy.
Frank Slootman's Amp It Up gets some things right about standards and focus, but its war metaphors and urgency obsession miss how good work actually happens.
AI coding agents have started adding themselves as commit co-authors by default, claiming a moral responsibility they cannot hold.
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.
 In June of 1861, a steamboat 3 carrying Minnesota's governor, political dignitaries and a group of white observers drew up at the Redwood Agency for what would become the last peaceful treaty payment to the Dakota people 4 before betrayal, starvation, and violence made such ceremonies impossible. 5 7 8 Among those present was Henry David Thoreau, the New England naturalist, whose brief visit…
Enhancing Org-roam nodes with auto-updating created and modified properties.
Adding the latest consult-line search term to isearch history for easy search continuation
A modest list of interesting blog posts containing tech mystery stories exploring how a bug or mistake came about, how it was discovered, and how it was fixed.
Setting up the Snyk Language Server for use in Emacs by defining a custom server connection in LSP Mode
A continually updating list of my favorite lesser-known Emacs packages
A short function to override what project.el thinks your project root is with a hidden file
Uncle Bob ignores his own advice when considering the 'Main' component, but we can improve on his thoughts and learn from them.
A quick reminder of how to remove a Git submodule, because I always forget
How to fix the annoying error when downloading or updating some Steam games, which reports the error 'Corrupt Update Files'
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
Understanding the fundamental differences between TCL's associative arrays and dictionaries, and when to use each.
Using a known, shared SSH socket to enable agent forwarding through an existing tmux session
A collection of weird TCL edge cases and gotchas I've encountered while working at FlightAware.
A preview of upcoming features in http-server v0.12, including Brotli compression, configuration files, and improved error handling.
A fork of the TCL cmdline package that fixes a bug preventing usage in non-terminal contexts by removing the dependency on argv0.
Introducing a new dark, relaxed retro theme for the Atom text editor
After many errors and failures, I found a method to successfully compile the xmr-stak unified XMR miner with CUDA support
On the evening of November 2, 1988, a self-replicating program was released upon the Internet. Within the space of hours this program had spread across the US.
A new Javascript function to remove any element from an Array in an intuitive way, with support for negative indexing.
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
Duplicated IDs occur both intentionally and not, so what happens when a browser tries to render them?
DuckDuckGo can still be tricky to add to some services. However, adding it to Thunderbird is just a few short steps.
Announcing the release of Vero, a simple and informative theme for Zsh with git status, version managers, and more.
Jade creates a simple website from scratch using the Bootstrap framework
A quick VBA subroutine for combining multiple Excel workbooks into a single workbook, making ingestion into Tableau easier
ProtonMail brings email privacy to the people while maintaining a fantastic user experience characteristic of a first-class email service.
For those with lazy hands like me, switching Caps Lock and Escape can avoid uncessesary effort. Making the switch is just a couple short steps.