I'm an independent programmer. See my
resume,
detailed work history,
portfolio, family.
Learn about this site or my other projects, at right.
Articles and Code Examples
2026
"AI" Alignment May Take More Time Then We Have Left–Sep 25
DNSimple: "DNS Hosting and Domain Name Management"–Feb 26
Black History in West L.A.–Feb 15
Santa Monica Pier at Sunset–Jan 14
2025
West Los Angeles Veterans Home Streetcar Depot–Dec 26
Cloudlare DNS to Avoid Cost of Excessive DNS Queries–Dec 7
I'm Astonished to Disagree with Kevin Kelly–Oct 9
Free Speech and Big Tech–Jan 20
2024
LLMs: Harmful, Useless Scofflaws–Dec 11
Cryptocurrency–Sep 29
Network First (Like "Housing First")–Feb 28
CSS-Only Lightbox with Deferred Loading–Feb 4
Solar Experiments for Camping and Biking–Jan 28
2023
Vardi and Berjon: Freeing the Next Web: Regulation or Design?–Oct 28
How to Improve Disaster Alerts–Sep 16
2022
My Exeriments With Mastodon So Far–Nov 13
Pinned Links–Oct 16
GPS Track Map Example–Feb 5
2021
Dragula Experiment–Jul 31
The Light Phone–Jun 5
Hey, Fastmail, If There's No RSS, It's Not a Podcast!–May 26
Bitwarden Open Source Password Manager–May 2
2020
Plausible: Simple, Privacy-Respecting Web Stats–Dec 20
HTML 4 Media Player Kluge–Mar 8
Highly Recommended: Fastmail!–Feb 29
Markdown Handler for Apache–Feb 3
The .org Scandal–Feb 1
2019
Hardening My Archives–Aug 29
Internet Archive Use Case: BayCHI A/V Raw Archive–Aug 21
On Linux Journal–Aug 15
Getting Familiar with the Heritrix Web Crawler–Aug 13
OpenSearchServer for Site Search–Aug 2
2018
Small Form Factor Linux 'Puter–Aug 19
Westy Custom Computer Display Mount–Jun 5
San Francisco Community Colocation Project–Mar 8
2017
Santa Cruz Bicycling–Apr 10
2016
Naming the 'Net–Jun 6
2015
Here's Why Google Shouldn't Hire Me–Jul 23
Ting for Mobile Voice, Text, and Data–Feb 14
2014
Toots Thielemans–Nov 2
2013
Replace Google Reader with The Old Reader–Jul 4
Integrated Laptop Charger for my Westfalia Camper–Jun 18
Ash Creek on Long Island Sound–May 18
2012
1938 McKesson & Robbins Scandal–Dec 22
Toward a Sustainable Lifestyle–Feb 10
2011
Westy House Battery Upgrade–Aug 8
California Parks to be Closed–May 14
O'Reilly's Release 1.0 Archive–Apr 18
Circumventing New York Times Paywall: Legal?–Mar 19
What's Up with Idealist.org's New Design?–Mar 8
Why Mobile Apps vs. Mobile Web?–Feb 18
PayPal Won't Fix Click-Wrap Page–Feb 4
2010
Piwik Open Source Web Stats–Dec 28
Blogger vs. Journalist–Dec 6
Orange Airplane from Massachusetts to California–Sep 15
Configurable PHP Class to Generate HTML Pagination Links–Aug 30
Orange Airplane Fuel Starvation Incident–Aug 19
Digg API OAuth Example–Jun 29
Recent Digg Activity as Activity Streams–Jun 12
Use CNAMEs for Trustworthy Links–Jun 5
Alabama to Massachusetts in the Orange Airplane–May 24
Identity Woman: Identity Spectrum–May 22
California to Alabama in the Orange Airplane–Apr 21
Ribbit/Kynetx Mash-Up–Jan 8
2009
Some of my Favorite Podcasts–Aug 24
RSS Widget Example–Aug 13
Technology and Society Committee RSS Feed–May 10
2008
Train and Bike to Kincaid's in Burlingame–Jun 22
Solution to Caltrain Bike Capacity: WiFi–Jun 18
Digg and the DataPortability Project–Jan 29
2004
Sprint PCS Dumbs Down Images–Jan 23
2003
Spam Ends, 2004–Dec 5
WYGFOPIWYGFAP: The Failure of Word Processors–Dec 5
Rules for Good, Accessible Web Sites–Jul 29
Want List for Photo Album Software or Service–Jul 29
Using PHP and Apache to Improve My Photo Albums–Jul 29
Why Twelves?–Feb 6
Ones and Zeros? Then What?–Jan 17
2002
P.J. Plauger on Consensus–Nov 4
Holofcener and Gilliam on the Sexes–Aug 6
The Trip to AYA 2002 and Back–Jul 29
My Favorite Bay Area Band Names–May 14
Oil Impeller AD Exempts Certain Gears–Mar 14
Diagram of Grumman Nose Strut Assembly–Jan 30
Maximize IE the Right Way–Jan 23
Thwarting Spambots–Jan 3
2001
The Quarter-Ton Quartet–Oct 21
The Word "Safety"–Sep 20
Switch Ratings, Fast-Ons–Aug 28
The Trip to AYA 2001 and Back–Jul 29
S-TEC 30 Familiarization–Jul 13
Flying–Jul 11
World Time Zones Calculator–Mar 26
Kirk in a Bag–Jan 21
Century I Guts–Jan 20
2000
History of My '67 Beetle–Dec 19
Coast to Coast in the Restored '67 Beetle–Dec 6
Ricochet 128kbps Wireless Flat-Rate Internet–Oct 7
Fuel Flow Installation in AA1A–Oct 1
1990 Audi 100 Quattro–Aug 4
Is Health Care Really Broken?–Jun 6
The Grizzly and the Nebula–Apr 8
Tech Toys, and How They Shape My Days–Feb 20
The Mormon Church Hides Out–Feb 10
Why the "W" in WAP?–Jan 1
1999
Homebrew Computing Before the PC–Nov 25
Bicycling–Nov 13
Jon Maestre Memorial, Brookville, Ohio–Sep 19
VW Restoration–Aug 2
Finally, GPS–Apr 5
1998
Batteries: Cranking vs. Capacity–Oct 18
De-Certification in Your Future?–Oct 17
FletchAir's PMA Trim Arms–Oct 6
Buying an Aircraft: What's Important?–Sep 13
About This Site–Sep 12
In Association With Amazon.com–Sep 12
AA1A Overvoltage Protection–Sep 9
Fuel Squawks–Sep 9
AA1x: One Key, Canopy and Ignition–Sep 8
Oil Temperature–Aug 16
Hayward Cats Barbecue–Aug 14
Aircraft Tax Tips from Bob Fields–Jul 15
The Orange Ignition Blues–Jun 5
Gyros: Suction is Bad–May 13
The "Minimalist" Instrument Panel–Mar 8
Three Taildragger Yankees in Formation, by Fred Fenning–Jan 30
1997
AA1A: 135 Knots at 2,000 fpm Climb–Dec 29
Kracon Paints Grummans–Dec 4
Family–Oct 3
Greg Amy and N81140–Sep 29
The Route to AYA '97 in Bowling Green, Kentucky.–Sep 7
The orange airplane at Moffett Field , Young Eagles Day, June 14, 1997–Sep 7
Monterey, Georgetown, Nuckolls at CMA–Jun 23
Trainer Electrical System Changes–Jun 12
Check the P Leads!–Mar 16
Whelen Strobes Replace Flashing Beacon–Mar 16
1996
The orange airplane at Gallup, New Mexico, October, 1996–Oct 28
Boy, Am I Spoiled (Rant)–Jun 14