Some games die quietly. They get delisted, lose their multiplayer servers, fade into the digital void. Others get remastered by the original authors with slightly better graphics and a battle pass.
And then there’s the third way: you open the binary in ghidra and start naming functions.
I played this top-down shooter from 2003 with my roommates, and recently remembered the gameplay but couldn’t remember the name. And today I stumbled upon a recreation of it, with an incredible knowledge base for the mechanics and implementation details.
You can run it now with one command, uvx crimsonland@latest, if you have uv installed. If that’s not amazing enough, this was completed in only two weeks with the help of GPT-5.2, and the source code is available.
During my slow switch from macOS to Arch Linux, I’ve been frustrated with how the Apple Magic Mouse behaves, so this driver is the start of improving my experience with it. Currently it addresses my most common frustrations by preventing scrolling when the mouse is moving, resetting scroll tracking on mouse movement, and decreasing the maximum scroll acceleration.
Ruby developers deserve glamorous terminals too. I want Ruby developers to build terminal applications so beautiful that even people who “don’t like CLIs” find themselves captivated.
I’ve recently been using AI to write CLI utilities in Go with Charm, but I know Ruby much better than Go so this is very exciting news. I’m even more excited about the coming work for the libraries to “feel more Ruby-like and idiomatic”.
Ruby 3.4.8 has been released as a routine update that includes bug fixes. The full details are available in the release notes on GitHub.
It’d be nice if the Ruby team maintained the Docker image now that Ruby has a release schedule. Always feels odd to see a new release and then have to wait for an image update to be able to test a deployment.
This is Litestream VFS. It runs SQLite hot off an object storage URL. As long as you can load the shared library our tree builds for you, it’ll work in your application the same way it does in the SQLite shell.
I’m imagining running this in the browser with the WASM version of SQLite3 using read-only credentials. Combined with JSON virtual columns, this could create a serverless interface to data being streamed into the database from another source. This could power a graphing interface for analytics or metrics, where the data is truncated at specific intervals to keep the database compact while using litestream_time to query historical data.
We introduced breaking changes in RubyGems/Bundler 4 in order to improve usability, security, and maintainability of the tool.
I’ve upgraded a few projects and not noticed any issues so far. Restoring the default command to be install is nice for my muscle memory locally, but elsewhere, like in a Dockerfile, I already use bundle install explicitly.
And while new lockfiles include checksums by default, you have to manually add them to existing lockfiles via bundle lock --add-checksums.
I found the problem and it’s really bad. Looking at your log, here’s the catastrophic command that was run: rm -rf tests/ patches/ plan/ ~/
Not that it’s a foolproof solution, but I’ve aliased rm to a trash command for almost ten years now to move files to the trash instead of deleting them. A trash command is built into macOS Sequoia and newer.
The one downside is the command doesn’t support the -f or -r arguments, so it often causes issues with Claude Code. Sometimes it’ll switch to using rmdir, so I’m also aliasing that now.
I’m not sure how much moving the home directory to the trash would have helped, since the trash command does completely remove files and directories prefixed with a period.
The release also features the Ministral 3 series—three edge-focused models (3B, 8B, and 14B parameters) designed for superior cost-to-performance efficiency. These smaller models include multimodal and multilingual capabilities, making them suitable for edge deployments.
I’m excited to see small models continuing to advance. While I’m all in on Claude Code for code-related tasks, I enjoy using local models for simple copywriting tasks or for tasks requiring complete privacy.
An open-source guide to help you write better command-line programs, taking traditional UNIX principles and updating them for the modern day.
Found this while working on a small CLI utility and searching to see if there are standards for outputting help. The real-world applications they link to were helpful for inspiration.
An extensive list of examples on DOM manipulation without any external libraries.
Web development moves at lightning speed. I still remember when I first started using libraries like jQuery, Prototype, script.aculo.us, Zepto, and many more.
Interesting to think about how libraries evolving fast back then was so exciting compared to today where I almost wish they’d slow down a bit. Maybe it’s from feeling like there was only a handful of options then and today there seems to be endless options.
After using Obsidian for daily notes at work for around three years with the Things theme, switching to the Cupertino theme is a breath of fresh air. It feels much nicer to have the application appear native. And for people who enjoy dark mode, it supports that too.
I do recommend the Style Settings community plug-in for its ability to tweak things a bit, such as hiding the active line highlight when editing.
I realize now that link blogging deserves to be included a third category of low stakes, high value writing. We could think of that category as things I’ve found.
I enjoy the idea of a low-stakes, high-value writing category. My articles often take bits of time here and there over the course of weeks to complete, but short thoughts on all the interesting things online should be much easier.
So, here’s my first link with some very minimal commentary. To help speed up the process even more I can provide a URL to a short script to fetch the content, extract the title, create a Markdown file for me, and open it in my editor.