tumblr_oe7br9uhal1roi5yvo1_1280

My first car. Except not right-hand drive. 1989 Honda Accord. And it was not nearly so clean, or grey. But you could fit a double bass in the front seat! Pretty practical for my high school needs.

On the albums of The Clash

Passing thoughts on the discography of The Clash that is not London Calling:

  • Brian and I had a conversation that randomly veered onto the Clash which prompted to me to listen to all of their studio albums
  • I have listened to London Calling a few times before, and recall some story about its producer encouraging them to go broader with the album so as to reach a wider audience; basically that it’s not much like their other albums
  • I enjoy London Calling, but I’m not sure what to expect from a categorical English punk band
  • I like the punk ethos of don’t wait for permission and build it yourself
  • I strongly dislike when punk music is simplistic shouting
  • Enough about me, let’s talk about the music
  • I was pleasantly surprised!
  • Their early albums don’t sound like the learned to play their instruments an hour before they started recording
  • They probably listened to music outside of their genre even before London Calling 👍
  • The albums after London Calling sound like they were trying to walk a line between keeping to their punk/ish origins and exploring integrating other genres into their sound
  • I should mention that their “Guns On the Roof” is exactly the same riff as The Who’s “Can’t Explain”
  • Would listen again!

This has been 🔥 takes.

We’re all adults here, but we’re not all mind readers

My favorite advice on the topic of method visibility (i.e. public vs. private) comes from Python creator Guido van Rossum. It goes something like “we’re all adults here” and says it’s not really a necessary thing for compilers/runtimes to hide methods from specific callers. Don’t go mucking around in other object’s implementations. I still think that’s mostly right.

Except, coming up to speed on a new code base is vastly easier when there’s some delineation of the waterline between an object’s public API which it expects other objects to use and its private implementation which it does not. It tells me a) the private methods are open for change and refactoring and b) below the private “waterline”, don’t bother going any deeper when spelunking to figure out how this program works.

In a new or strange codebase, every little bit of tractability helps.

Automotive enthusiasm and pragmatism

A few years ago, I was re-infected with enthusiasm for cars. I came upon One Car to Do It All and found a new reason to obsess over cars.

I read Car and Driver and Road and Track as a teenager. I was excited by the agency that cars bring (who isn’t?). It was a fun thing for me to nerd out about: technical specifications , comparing feature lists, and of course benchmarks! There was also a slight bit of romance to automotive journalism, ostensibly all writers traveling the country (or world) driving neat cars in beautiful places, often quite quickly.

Now, I’m taken by the history of specific manufacturers and how older models of cars became the current models. The technology and coordination needed to produce the modern car appeals to my technological side. The shape of cars new and old is a fun subjective conversation (e.g. are exterior about form or function?).


Most people do not view cars this way. They are automotive pragmatists. They want a car like they want a refrigerator or washing machine. The car is an appliance. It takes you from where you are to where you want to go without drama, in a modicum of comfort. The quality of the steering feedback, the particulars of the engine, or the predecessor of the car from two decades ago are nothing. The optimization is all around cost of ownership and utility.

(For the sake of symmetry I feel compelled to write another couple paragraphs on automotive pragmatism. But, there’s really nothing else to say. It’s pragmatic through and through.)


A curious thing happens when my car enthusiasm interacts with pragmatic car owners. Some of them will encourage me to talk about my enthusiasm. Mostly, it seems a little awkward, as though they’re afraid I somehow experience cars in a better way than they do. This is totally not the case, I can’t even really drive a stick!

In a way its not actually that curious. Car enthusiasm and the cars enthusiasts own correlate highly with elitism, which is by definition intimidating. But it does make me wish I had a shorthand for “I drive this car because its interesting to me, but I won’t judge your car, now tell me what you’re enthusiastic about that I don’t understand”.

Here comes GraphQL

GraphQL is gaining purchase outside of the JavaScript communities and this seems like a pretty good thing. Shopify and GitHub have jumped on board. Absinthe (Elixir) and graphql-ruby have caught my attention, though I haven’t had an opportunity to tinker with them yet.

That said, I like that GraphQL (and JSON API) let service developers focus on exposing a specific data model and optimizing access to it rather than taking a side quest through REST API design. For application developers, building screens and interactions with the data they need defined inline seems like a big win for contextual understanding.

As ever, the risk of using any kind of mapping layer, whether its objects and relational data or JSON object graphs to downstream service calls, is creating a naive, one to one mapping that create awkwardness and inefficiency.

Weaponized jerks

For a long time, the Central Intelligence Agency has had a guide to wrecking an organization by doing a few weird tricks at meetings. It recently came to light, and took hold as a meme, that this is the reality many people (non-spies) experience in their actual work life. Basically, some people work with weaponized jerks.

Which leads me to wonder, did the CIA invent these tactics, or did they discover them? Were they sitting around, talking about how big of a jerk John is at meetings and how he’s causing the Communists to win? And then they said to themselves, “hey, what if we had low-level agents just be like John?!”

And thus, the CIA made the world just a little bit less great.

Refactor the cow paths

Ron Jeffries, Refactoring — Not on the backlog!

Simples! We take the next feature that we are asked to build, and instead of detouring around all the weeds and bushes, we take the time to clear a path through some of them. Maybe we detour around others. We improve the code where we work, and ignore the code where we don't have to work. We get a nice clean path for some of our work. Odds are, we'll visit this place again: that's how software development works.

Check out his drawings, telling the story of a project evolving from a clear lawn to one overwhelmed with brush. Once your project is overwhelmed with code slowing you down, don’t burn it down. Jeffries says we should instead use whatever work is next to do enabling refactorings to make the project work happens. Since locality is such a strong force in software, it’s likely that refactoring will help the next bit of project work. Repeat several times and a new golden path emerges through your software.

In other words, don’t reach for a new master plan when the effort to change your software goes up. Pave the cow paths through whatever work you’re doing!

Losing the scent, acquiring the taste

When I didn’t drink coffee, the thing I enjoyed about coffee was the smell. It has a really great aroma. Unlike popcorn!

Now that I do drink coffee, I don’t notice the smell as much. I have to stop myself to take notice of it. That’s sort of a bummer.

I’m acclimated to coffee. I love drinking it, and tasting it. But, I wish I could drink coffee, regularly, and still smell it.

Getting around, together

Riding the Rails: Celebrating Trains and Subway Commuter Life:

Train time is essential time, and rail travel isn’t strictly pragmatic. For many, the commute is their only time to read, think, and zone out.

For a brief window of several months, ten years ago, I rode the Dallas light rail to work. It was exactly as quoted. It was when I read, when I reflected on the world or just the day gone past. I often miss it.

…as Jacquelin Cangro writes in The Subway Chronicles, the “New York Subway is a microcosm of world culture. The train is the great equalizer. When the doors close, all of us — black or white, Sephardic or Catholic, Chinese or Indian — are going together, and no one will arrive any faster or in better style.”

Even more, I wish everyone had to partake of public transit. We spend too much time in our bubbles. Our offices, homes, social networks, and cars isolate us from each other. Perhaps we wouldn’t find ourself in this strange election cycle if people from different backgrounds and circumstances had to spend twenty minutes with each other several days a week.

Taking polluting cars off the road, reshaping our communities, greater safety, it’s all secondary to me. Growing our empathy with one weird trick to see each other and relate is the outcome I find most intriguing to good public transit.

A bold, future-retro Audi dash

I’m officially intrigued by the Audi TT and R8 going with no center display. The look is retro and functional. Will it annoy passengers, or do passengers who want to change the radio or see the map even matter in those cars? Worth noting that the 2016 A4 has the same display for the instrument cluster and a giant center display.

2015 Audi TTS

2015 Audi TTS

Another cool design detail: the A/C controls are on the center of the eyeball vents. Pretty cool!