This is my blog. There are many like it, but this is the one that embarrasses me.

You can add the JSON or Atom feed to your feed-reader, or join the mailing list to receive new posts as emails.

Tech Debt and Taxes

March 14, 2022 · An argument for highlighting the customer cost, via product unreliability and feature delays, of technical debt. Getting the time to clean up old bodges is a matter of revealing the constant but oft-hidden productivity tax of leaving them in place.

Collected Memories of Evans Hall

February 13, 2022 · Evans Hall, once home to UC Berkeley’s Computer Science department and current home to several others, is slated for demolition. While that’s good news, Evans Hall is a point of contact with history, a sort of concrete collective memory.

Hearst Hall: Continued Reading

July 04, 2021 · Extended notes on Hearst Hall. This essay reviews Bernard Maybeck: Artisan, Architect, Artist by rehashing old arguments with new evidence: extended excerpts from that text, from Sally Woodbridge’s history of Wurster Hall, and zingers (“quixotic purities…”) from Lewis Mumford.

Genres and Subtraction Tests

June 13, 2021 · Discusses ‘genre’ as a generic model for informally learned categories, and a test for making them more formal by using a duck test to learn if a feature is necessary or sufficient for membership in a category.

Blogging with TikZ

May 21, 2021 · Notes on using TikZ, a LaTeX extension for defining vector graphics, to create static diagrams and interactive demos for State Machines via Jorge Luis Borges. These notes cover my motivations, my tools for generating SVGs as I wrote, and how I modified the script-generated diagrams for interactivity.

State Machines via Jorge Luis Borges

February 19, 2021 · An introduction to state machines (also called “automata”) via an extended Borgean allegory about an existence in a labyrinth, a sort of infinite gallery of mazes. It introduces several significant concepts—equivalence, finitude, acceptance, determinism, and the powerset construction—as a succession of realizations about that existence.

Making Things Worse on Purpose

February 13, 2021 · Customizing one’s browser is a neat way to cut out app “features” that squeeze value out of users by being more irritating than useful.

Hearst Hall

November 22, 2020 · Hearst Hall is a stunning example of California Arts & Crafts architecture. What does a gothic hall—built, moved, and built again by a mining baroness, burned down in 1922, and now largely forgotten—say about the spaces that replace it?

Web Syndication with JSON Feeds

November 02, 2020 · Sometime in the last ten years, while you were mourning the loss of Google Reader, we entered the golden age of the feed. A brief pitch for web syndication and an overview of the tools I’ve built for generating and working with JSON Feeds.

Processing PDFs with Cloud Functions

October 19, 2020 · A personal project of mine requires storing and processing tens of gigabytes of scraped files. I discuss using polyglot Cloud Functions as a rudimentary data pipeline: first, a function for highly parallel file uploads; second, one for PDF text extraction.

Web App Product Ontologies

August 22, 2020 · What are a product’s central concepts? I consider planning products around a product model’s “noumena.” Such an object-oriented organizing principle should mitigate corrective error and, hopefully, set you up for interpretable and reusable componentry.