There are 87 posts here


2 in April
4 in March
5 in January


6 in October
2 in August
2 in July
2 in June
8 in May
1 in April
1 in January


2 in October
1 in August
3 in June
2 in May
2 in March
2 in January


4 in October
1 in July
4 in May
1 in April
1 in March

    A Picture of Change for a World of Constant Motion

    [Aug 27, 2020]

    I’m always jealous of the developers who get to build the interactive / scrolling features for the New York Times. I read A Picture of Change for a World in Constant Motion this morning while drinking coffee. I found it calming. I learned that Mount Fuji appears in The Great Wave off Kanagawa, a picture I’ve seen a million times.

    While I was reading it my daughter was bouncing around the back porch taking pictures on her Nintendo 2DS. She figured out yesterday that it had a camera, and today she’s explaning to me that you can take pictures, “with A, or L, or R!” and showing me how to go back and look at all the pictures you’ve taken. It’s fun to give a kid a camera, because you realize how they look at things. It’s doorknobs, the cats, every place her name appears in the house, close ups of textures and fabrics, a paparazzi style shot of the FedEx guy dropping off a package. Everything is close and immediate. We were at the park the other day, and there was a bird sitting on a rock off in the river, and I spent minutes getting her to see it. She was looking, but kept getting distracted by things closer to her, other birds, flowers, the shoreline. Eventually she saw the bird, and then it became “let’s go see the bird”, let’s get as close to it as we can. We got closer, but the bird flew away. We started looking at the seashells by her feet instead.


    The 20 year history of a Partscaster

    [Aug 5, 2020]

    The 90s

    Back in the mid-90s, after finishing middle school, my parents agreed to get me a guitar. I’d been in band, but I was playing the flute and I didn’t enjoy it. They probably didn’t consider, at the time, that I would try to teach myself by playing “Iron Man” through an 8’’ Fender solid-state amplifier.

    The guitar I ended up getting was a black Fender Stratocaster, Squire series. It’s an interesting product of globalization, there's a detailed history here, the TL;DR version being: while Squier was known as the cheap version of Fender in the 80s (and it is again, today), the Fender Squire series was American made parts, assembled in Mexico, with Asian electronics.

    The 2000s

    It was a good guitar for my bad guitar playing, but after a few years I got a nicer Fender Lonestar Stratocaster and the Squire series sat in its case most of the time. I spent a lot of afternoons in Guitar Center back then, and I saw a Tom DeLonge Stratocaster, a one humbucker and a volume knob guitar, and thought the Squire would be a great base to recreate that with.

    A Tom DeLonge Strat. I think I liked the colors and the CBS style headstock more than anything else

    I picked a Seymour Duncan JB for the pickup, got a single humbucker pickguard and wired it up. It worked fine, but the JB is known for having a lot of high end tones, and at the time I didn’t have a great setup to make the sound pleasant, so I thought I should wire the volume knob to a push/pull volume/tone knob so I had the option to roll the tone back and have a little less high end. Some combination of either bad pots, or bad soldering skills left with with a JB humbucker with about 2’’ of wire coming out of it, and a guitar that didn’t work.

    The 2010s

    I put the project aside — for about 15 years. Time passes, and one day the guitar comes back with me after a trip to my parents. It sat, in pieces, for a few more years.

    The 2020s

    I’ve been trying to either fix or get rid of things in our house, and I decided to do something with it. Fortunately for me and my soldering iron, solderless solutions have become abundant since I last tried this. Mad Hatter Guitar Products sells a few, more oriented towards mix and match solutions or guitars without pick guards. I ended up getting one from Obsidian Wire, who sells all in one solutions wired up with a lot of common wiring mods, e.g. their humbucker, single, single model runs the humbucker through a 500k pot, where most Strats that were single / single / single before had 250k controls. Trust me, this means as much (or little) to you as it means to me.

    In redoing the look of the guitar, I harnessed my inner 15 year old and drew inspiration from the car we recently bought. It’s a black Volkswagen GTI with the usual red GTI accents, so I thought, sure, black guitar, black pickups, red trim black pickguard. A quick search found the Fender Noir Stratocaster to prove that this wasn’t the worst looking thing I could make.

    Fender Noir Strat. Granted, it has a matte black finish…

    Warmoth sells the three-ply black/red/black pickguards. I got one with some black control knobs and wired it up with the existing neck and middle single coil. Perhaps unsurprisingly, 20+ year old bottom of the budget-bin pickups don’t sound great. They sound better than I expected, in as much as one can expect from wire around magnets, but I figured at this point I was all in on this project, so I picked up two DiMarzio Area 67 pickups for the neck and middle spots.

    When you’re bad at soldering you end up in a lot of questionable situations

    So now it’s all bolted together, and it looks like this:

    It plays and sounds pretty good. At some point in the past I had screwed the bridge down and put five springs on it, so it’s nearly a hardtail. It could probably use some nicer tuners and a black input jack to match the Noir, but the pickguard and the parts bolted to it cost about three times what the guitar cost, so I think it can wait another 20 years or so.

    But what does it sound like

    Another thing I'm trying to get better at is recording my guitar. I finally have a decent input device and I know what at least three of the buttons in Garageband do. These are all prime examples of the internal tempo of someone who has played alone most of their lives.

    Original neck pickup.

    Area 67, the new neck pick up. Wee bit clearer.

    Area 67, neck and mid.



    [Jul 15, 2020]

    I’ve been slowly “smartening” our current home. It started with some Ecobee 3 thermostats (the ones not yet haunted by Alexa), then a HomePod, and more recently some Hue bulbs. I bought the bulbs for our master bathroom thinking it would be nice to have lights that adapted to the time of day; very bright during daylight hours and dim and warm when the sun has set. What I didn’t realize is that the bulbs have a boot up time, so if you turn them off with a conventional switch, when you turn them on they won’t immediately set themselves to whatever time-based settings you have them on. I moved them all to the office, where I can now turn on the overhead light and desk light at the same time. It’s… an ok trick.

    There’s two things I don’t love about these smart devices, beyond the fact that you’re best off with wifi connected buttons to operate them:

    1. The interfaces of the native apps and the interface of Apple Home have a lot of overlap, but also a lot of inconsistencies.
    2. I don’t want to carry my phone around my home - I have an Apple Watch, I want it to control everything.

    The best solution I’ve found so far is the HomeRun app. You can assign it HomeKit scenes with custom icons, and run them off of the watch. They usually work, and it’s better organized than the Watch’s Home app that shows a grab bag of scenes at the top followed by every little device you own. At the very least I can now walk into the office at night, without my phone, and turn the lights on.


    Note ↔ Note, thinking outside the folder

    [Jul 10, 2020]

    I’ve used a bunch of note taking apps over the years (Evernote, OneNote, Apple Notes, Goodnotes, Notion, Bear) and I’ve almost always used them similarly to how you’d use a file system: folders for organization, notes as files. I’m always a little curious about new note apps and how they organize things. I was using Notion for a while, and got along well with using it’s concept of relational databases to make connections between notes. If you create notes in a database in Notion, you can make it look like Google Keep, you can make it correlate notes to a calendar (ala Agenda, another app I’ve tried, if only for a few minutes), or you can organize them in columns Trello style and use your notes as todos. It’s all the same set of notes, just with different views of the database. There’s a somewhat clunky way to associate one note with another, or one tag with another, and only if you’re using a database of notes (i.e, not just a “page” style note), but once you have that you can organize your notes in almost any fashion you can think of. A relational database + a nice UI is really just a primitive app building platform in the tradition of Access on top of Excel.

    The main issue I had with Notion is that it’s slow — it’s really a wrapper around a web app, even in native form. On top of that, it doesn’t play nicely with built-in MacOS features. One small example, if you copy a link to a Things project into Notion, clicking on the link… does nothing. It doesn’t know what to do with callback urls.

    So I’ve drifted from a combination of Notion and Bear, where Notion was project level and Bear was for quick capture, to Bear and Things, where Bear is project level and Things is quick capture. Everything is faster and it works across all my computers, my iPad, phone, and watch.

    Bear uses tags as organization, which means you can refer to a note in multiple directions. It doesn’t live in a given folder, it lives where ever it is relevant. That said, the tags end up being used mostly as folders, it’s just you might have the same file in multiple folders.

    An interesting idea I’ve seen floating around the web is associating all notes with links between notes, and using backlinks and graph views to understand where notes connect. Bear has supported “live links” or wiki style links for a bit now, you can have Note A and reference it in Note B with [[Note A]]. If you rename A, the link updates, and you never have to think about where Note A is. If you want to find all of the references to Note A, you can search for [[Note A]], and you can use Bear’s x-callback-url API to save that search at the top of Note A, so you can click on the link and find all of the notes referencing that note.

    Some newer apps like Roam Research and Obsidian[^1] make backlinks the main focus. You might start the day with a log, and then just tag other notes as you record what you’ve done, like:

    - Did [[HIIT workout A]] for 30 minutes
    - Met [[Cool McPerson]] for lunch at [[Local Establishment]]
    - Read article about [[Rust]] at [article](link)

    then in the note HIIT workout A you can see all of the times you logged that note. Graph view is just these associations, but rather than buried in text, in a nice visual format. Bear can’t do this, but it’s not exactly magic to make a chart of associations, and Bear has the API to support it. There’s a python script that will generate a Graphviz view of your notes for you on Github. It includes a handy —anonymize option so I can even show you what my Bear notes look like, graphically:

    Is it useful? I dunno. I’ve recently started daily logging with backlinks in my notes at work, and it’s proving helpful being able to click into longer running projects and see all of the times I associated it with a Jira issue, a person, a meeting, etc. The idea is that you can, with pretty low effort, record every thought in your head as it comes, then look at the graph and see what the core areas you’re thinking about are, and what areas can probably be pruned.

    [^1]. Obsidian is interesting to me, and I’ve started using it at work instead of Bear. It’s a little clunky at the moment (it’s in a beta) and it’s clearly an Electron app, but it works off plain text files on a local file system, which is surprisingly hard to find. Ia Writer works that way, but doesn’t support backlinks.


    TIL: graphvis

    [Jun 15, 2020]

    I worked for a number of years as a low-budget technical writer, producing documentation and technical diagrams at a few different companies. I say low-budget because these were manufacturing companies, not software companies, and the documentation was more “we need to keep this on file” than “we need this to function”. My go to tool for diagrams was Visio, and by the end of my stint as a technical writer I could do 3D diagrams in it that would put Autocad to shame, but lining up boxes for 2D diagrams was always a chore.

    Fast forward many years, today I needed to draw a diagram for a new architecture, and I was going to default to pen and paper (or, iPad and Pencil) as I usually do, but I vaguely recalled there being an app out there that did sketchy-style diagrams. Some googling found it, but it didn't have a drag and drop GUI, it uses graphvis, which it turns out is the best thing ever. Why spend minutes moving arrows around when you can just a -> b it!

    Hosted on Sketchviz

    A11Y in the Last of Us Part 2

    [Jun 14, 2020]

    Some inspiration for the next time you think making a dropdown menu accessible is hard.


    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.