It’s just data

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.


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.

Spartan Test Results

I replaced IE results with Spartan results in my urltests.  Other than the user agent string, nothing changed.

Following are selected examples where three out of four of the top browsers agree, identified by the odd browser out:

Ruby2JS 2.0

I’ve released Ruby2JS version 2.0.  Key new features:

The Whimsy Agenda rewrite-in-progress (previously based on Angular.js, now being rebased on React.js) can be used to explore both of these features.

React.rb updates

I’ve made a number of updates to the demos.  The tutorial demo has been updated to do server side rendering.  This means that it is able to be used by clients which either don’t support or have turned off JavaScript. 

The second demo is a calendar.  Unlike the tutorial which is a single file, this application is organized in a manner more consistent with how I expect projects to be organized.

DSL for JavaScript


Jeremy Ashkenas: “work towards building a language that is to ES6 as CoffeeScript is to ES5”… close, but—do it for [ES6+HTML+CSS], and you’ll win ;)

It occurs to me that there is a shortcut available.  Let a library like React replace [ES6+HTML+CSS].  Then build a DSL for that library.

Web Components

Brian Leroux: ES6 and Web Components

My take is that this talk lumps React in with others based on when it was introduced; but that it is fundamentally different from, say Angular.js as Angular.js is from jQuery.