Posts from: May 2020

TIL: porcelain versus plumbing

May 29, 2020

I guess I haven't spent enough time living in the git documentation to notice this before, but a Stack Overflow answer for something I was trying to do with git diff used the term “porcelain” function to describe diff versus diff-index, which led to another Stack Overflow answer to what the concept of a porcelain function was, the origin of which appears to be from this email conversation in the git project

If you don't want it, I won't do it. Still makes sense to separate the plumbing from the porcelain, though.

It’s interesting to me that software prefers plumbing metaphors to electrical ones (switches from the circuits, in this case), but I guess what travels through the plumbing is critical to the metaphor.


Reading List, May 29, 2020

May 29, 2020

I split my mornings between reading a book or combing through my RSS feeds. This week skewed more heavily towards reading a book (How to Do Nothing), but I did find a few things that avoided my “read later” list.

Daring Fireball: ‘What Time Is It in London?’

So every other service that tries to answer “What time is it in London?” gets it right. Only Siri gets it wrong.

If I could bring one thing back to the internet it would be blogs

Opinion | What if We All Vacationed at Home Again? - The New York Times

At the end of last year, an Ipsos Mori poll found that 79 percent of British people believe that their country is “on the wrong track” — a sentiment echoed in countries around the world . Much of this can be attributed to the attenuation of opportunity that followed the financial crisis of 2008-09. But some of it stems from a lost sense of belonging and the gulf that has emerged between those who still cling to the liberal dream of heterogeneity and those hankering for a more parochial past.

The fact that so many of us now spend our moments of maximum happiness overseas has surely played a role in deepening this fault line. And many of the pleasurable experiences of social intermingling that might once have offered a counterbalance, like a day out at the seaside, have been sacrificed to consumer choice.

Please Print (A Journaling Rant)


I moved the content side of this site to markdown, but wanted an easier way to update content than making markdown files, commiting and pushing them, so I added Netlify CMS to the site. It's a little rough around the edges still, but for what I was trying to do it hits 100% of the features.


I have a soft-spot for magazines, when I was re-learning how to program I had two days a week where I would kill some time in the day flipping through the coding related magazines at Microcenter. This issue is all about frontend development so its extra relevant to me but the past issues look pretty good too.


DEAD LORD - Distance Over Time

May 25, 2020

(Elvis Costello + Thin Lizzy) * 11


Reading List May 22, 2020

May 22, 2020

Things I read over the last week. At first glance this week might appear to have a theme of “everything is broken!” but I prefer to read it as “look at all these things we can do better!”.

Second-guessing the modern web

But the cultural tides are strong. Building a company on Django in 2020 seems like the equivalent of driving a PT Cruiser and blasting Faith Hill’s “Breathe” on a CD while your friends are listening to The Weeknd in their Teslas. Swimming against this current isn’t easy, and not in a trendy contrarian way.

Low-Challenge, High-Skill Tasks in Terrible Times

For the last month I’ve found myself subconsciously jumping on “easier” tickets where I feel a high level of expertise (CSS tasks, layouts, prototypes) and I’ve struggled to get through tickets that have a high learning curve or cognitive load. Those deep work tasks are hard to sustain when reality, in the form of kids or breaking news, comes crashing through my door. That’s where the broader concept of Flow is helping me. If I understand the psychology correctly, lowering the challenge level raises my relative level of skill and that gives me a sense of control in an otherwise uncontrollable world. I’m able to move fast and not break things.

A Static Future

A thorough (and well illustrated) explanation of how static site builders like Gatsby work.

Students are failing AP tests because the College Board can’t handle iPhone photos

One of my favorite books is To Engineer Is Human by Henry Petroski, particularly the stories of uncaught or seemingly minor issues that went unconsidered that resulted in catastrophic failures. I don’t think there’s a software engineering equivalent (if there is, let me know!), so I have to find them in news articles like this.

Chris Coyier had a somewhat related tweet this week. You’d think operating systems and software would fundamentally get image formats and text formatting correct, but it’s been an ever-repeating problem since computers had screens.

Your Day Care Probably Won’t Survive the Coronavirus

While nearly every other developed nation supports child care as a public good, the United States treats child care providers as private enterprises — more like gyms than K-12 schools. ... The child care sector, like your favorite fitness enterprise, is propped up mostly by private dollars paid into the system.

There’s a whole Greatest Hits album worth of things that parents in the US get screwed on compared to other countries, but the #1 best seller is the fact that child care between the ages of 0 and close to 6, basically one third of the time the child is under your care, is on the individual structurally and financially. I have a lot of other thoughts on this but they mostly involve 🤬 so I’ll stop here for today.


Reading List May 15, 2020

May 15, 2020
  1. Modern CSS Solutions

CSS continues to improve, and browser support for modern solutions continues to grow, so all the ways you used to do things might have better versions today.

  1. JavaScript’s ecosystem is uniquely paranoid

Three factors have caused a widespread cultural paranoia among JavaScript developers. This has been inculcated over years. These factors are: JavaScript's weak dynamic type system; the diversity of runtimes JavaScript targets; and the fact of deploying software on the web.

  1. Why does writing matter in remote work?

“But what if the problem is juicy and we can’t solve it through an asynchronous discussion?”

My response to this is to still default to an asynchronous discussion because asynchronous discussion makes it clear when it needs a meeting. Many people aren’t agreeing. The Slack thread is 148 messages deep and no one made a decision. These signals mean that the discussion needs to be a meeting.

  1. Notion-Powered Websites

    I find what people are trying to do here with Notion super interesting. Notion can create a URL for any page you make, but it’s styled like Notion styles it, and it gets metatags as Notion decides it should. So people are using undocumented Notion APIs to build their own sites using Notion data, or cloud functions to take public Notion pages and build a site from that.

    Notion has promised to release an official API “soon” but I think what’s driving people to jump the gun is that it’s UI is astronomically easier to use than almost any headless CMS out there I can think of, both in terms of constructing the information architecture and editing content. Technically there are a lot of differences, e.g. if you used Notion as a real time content source I think you’d be very sad, but I can at least hope that the UI and ease of adding content structures is something other CMS solutions adopt.


Stop Motion

May 9, 2020

My first Macbook was also my first laptop with a camera in it, so I asked a somewhat dumb question when I was buying it, which was, "can the camera take pictures?". I think what I was asking was essentially what the app Photo Booth is, but the sales person at the Apple store, for some reason, thought I wanted a camera to make stop motion videos. They said they weren't sure if it could, but that would be cool. I agreed. I never tried but I can imagine it would have been not cool, since the camera on those plasticBooks were about .1 megapixels and shoved in the top of the lid making for some awkward angles.

Jump forward 14ish years and the little pocket computer I take everywhere has both a camera good enough to use for stop motion videos and the processing power to edit them. We've been rebuilding my childhood Lego collection lately, so I used some minifigs as actors. The wizard's... hat... was from an earlier video.

I later tried to get the child to help me make a stop-motion video her mother might appreciate on a certain day that's upcoming, but she didn't seem to impressed by moving picture technology. I stitched these together using Stop Motion Studio which is straight up amazing at the cost of free.



May 7, 2020

Plenty of maps mess up New England states because they're small and the states are small, but to have so much room and end up here... I dunno. This does at least depict (sort of) my long standing opinion that the nub should be part of New York and Long Island should be part of Connecticut.


Shelf Love Podcast

May 3, 2020

Late last year my wife started a new podcast called Shelf Love.

I built her a website. It was not good. It worked, but brought us both great shame.

To be fair, at the time there wasn’t a lot of content, and most of what she needed/wanted from it was theoretical. But, time has passed, and now there’s 38 episodes with many more to come, a blog, and a newsletter.

Beyond a visual refresh, the back-end of the site was changed from pulling episode content from Storyblok to pulling it directly from Simplecast which means content isn’t living in two places. Storyblok is still in play for page content and blog posts. It’s also still a GatsbyJS site distributed through Netlify.

Anywho, go check it out.

Back to top