intertwingly

It’s just data

ActiveRecord::Tenanted Needs Geo-Aware Lazy Migrations

ActiveRecord::Tenanted is a promising multi-tenancy solution for Rails, but its eager synchronous migration approach won't scale to geographically distributed deployments with Kamal Geo Proxy.

This post advocates for adding geo-aware lazy migrations to ActiveRecord::Tenanted, based on patterns battle-tested in Showcase across 70+ sites in 8 countries over 3+ years.

Upgrading Eleventy After 5 Years

Five years ago, I migrated this blog to Eleventy v0.12.1. This week, Claude Code upgraded it to v3.1.2, handled configuration changes, made the site environment-aware, and completed the search functionality I'd started but never finished. Eleventy still embodies the "it's just data" philosophy that attracted me in the first place.

Re-Retired

Three years ago, I unretired to join Fly.io as a Rails Specialist. As of last month, I've re-retired. What's changed for me? Not much.

Snoopy

If you don't get your hands slapped at least twice a year, you aren't pushing the boundaries hard enough.

Unretiring

Fly

I went looking for a place to host my ballroom showcase application. I ended up with a job. I start on Monday at Fly.io. as a Rails Specialist

Agile Web Development with Rails 7 Update

I don't have a firm date yet, but expect to ship a beta in January.

The book will show you how you can largely stay with Rails defaults and can build an application that is roughly 50% HTML, 40% Ruby, 5% CSS, and 5% JS. The resulting application will have the look and feel of a single page web application complete with asynchronous updates.

Genie WSLg

For those who have not used WSL yet, it is frankly amazing, to this long time Linux user.

Consolidated instructions for running Windows 11 + WSLg + Ubuntu 20.04 + Genie.

Absentee Ballot Application

Today I recieved a Absentee Ballot application from the Center of Voter Information. It appears legit.

iCalendar explorations

After nearly 20 years away, I found it was surprisingly easy to set up a full development environment on a modern Windows 10 machine. Given a decent browser, terminal, shell, and IDE, the underlying desktop environment turns out not to be much of an impediment.

Prepping a Windows Machine for Development

After nearly 20 years away, I found it was surprisingly easy to set up a full development environment on a modern Windows 10 machine. Given a decent browser, terminal, shell, and IDE, the underlying desktop environment turns out not to be much of an impediment.

React Hooks as Middleware

Unless I'm missing something, I don't see React often used as middleware. There is a subtle, but important, difference between using React as templates and as middleware.

Ubuntu 20.04 on Chromebook

Chromebook's support Linux now. There are instructions on the web that are incomplete and out of date to switch to Ubuntu. This post pulls much of that information together.

Please Pardon the Mess

I've migrated my site to 11ty, a static site generator. I've undoubtedly broken many things in the process.

Realtime Updates of Web Content Using WebSockets

Three mini-demos showing how to implement realtime updates of web pages using WebSockets.

Achieving Response Time Goals with Service Workers

Blending cache and live responses in order to achieve response time goals.

Converting to Vue.js

I’m in the process of converting four Whimsy applications from React.js to Vue; and I’m taking a moment to jot down a list of things I like a lot, things I find valuable, things I dislike (but can work around), and things I’m not using.

On balance, so far I like Vue better than React.js (even ignoring licensing issues) or Angular.js, and am optimistic that Vue will continue to improve.

Badges? We don't need no stinkin' badges!

I found myself included in an IBM Resource Action ("RA").  I’m fine, nothing has changed.  I’m already working with a non-profit, namely the Apache Software Foundation, and find my work there to be very rewarding.

Service Workers - First Impressions

Created by potrace 1.13, written by Peter Selinger 2001-2015 Cache put and match worked right the first time; cache keys not so much. Authentication is a mystery. Outline of future plans, and a call for help.

FacePalm

Automated Publishing with Instant Articles

<description> A summary of your article, in plain text form.

<pubDate> The date of the article’s publication, in ISO-8601 format.

Related: plaintext, May Day, June Bug, Another Month, and numerous others.

Brief history of the ASF Board Agenda tool

the current implementation is a lot more fun to develop and easier to maintain than prior versions.  As an example, if it were decided that the moment the secretary clicked the ‘timestamp` button on the 'Call to order’ page, all comment buttons are to be removed from all windows and all comment modal dialogs are to be closed, this could be implemented using a single if statement as the event is already propagated, and a re-render is already triggered.  All that would be required is to change the conditions under which the comment button appears.

The board agenda tool has been tested on Linux, Mac OS/X, Vagrant, and Docker.  It contains a suite of tests.