Fascinating mechanical stories

I already wrote about cars as appliances or objects, but I found this earlier germ of the idea in my drafts:

There’s an in-betweenish bracket where prestige, social signaling, or bells and whistles count a bit more. The Prius and Tesla are social signals. Some folks get a Lexus, Acura, Infiniti, BMW, Mercedes-Benz, etc. for the prestige more than the bells and whistles.

The weird thing about e.g. BMW, Porsche, or Ferrari is how much enthusiasts know about them. The history, the construction, the internal model numbers, the stories. I suspect you can tell a prestige BMW owner from an enthusiast BMW owner if they can tell you the internal model number of their car.

My first thought, when I came across this, was this is a pretty good bit of projection and rationalization on my part ;) But it’s not hard to look into the fandom of any of those ostensibly-prestige brands like BMW or Porsche and find communities that refer to BMWs not as 3- or 5-series but as E90s or E34s (mine is an F30) and Porsches as 986 or 996 instead of the 911 marketing number. So I’m at least a little right about this!

I will never experience driving the majority of cars out there. I may never know how an old BMW compares to a newer one or properly hear an old Ferrari V-12. I can partake of the enthusiasm about their history, engineering, and idiosyncrasies. That’s the big attraction for me: the stories.


The lesser known vapors and waves

There’s a thing going on in music with all the vapors and chills and waves. I’m not entirely sure what it is, yet. Even after reading this excellent survey of the various vaporwave subgenres, I’m still not sure what it is. But it’s very synth-y, a little sample-y, and very much what you’d expect to hear in a hip, contemporary hotel lobby.


Connective blogging tissue, then and now

I miss the blogging scene circa 2001-2006. This was an era of near-peak enthusiasm for me. One of those moments where a random rock was turned over and what lay underneath was fascinating, positive, energizing, captivating, and led me to a better place in my life and career.

As is noted by many notable bloggers, those days are gone. Blogs are not quite what they used to be. People, lots of them!, do social media differently now.

Around 2004, amidst the decline of peer-to-peer technologies, I had a hunch that decentralized technology was going to lose out to centralization. Lo and behold, Friendster then MySpace then Facebook then Twitter made this real. People, I think, will always look to a Big Name first and look to run their own infrastructure nearly last.

In light of that, I still think the lost infrastructure of social media is worth considering. As we stare down the barrel of a US administration that is likely far less benevolent with its use of an enormous propaganda and surveillance mechanism, should we swim upstream of the ease of centralization and decentralize again?

Consider this chart identifying community and commercially run infrastructure that used to exist and what has, in some cases, succeeded it:

[caption id=“attachment_3832” align=“alignnone” width=“796”]Connective tissue, then and now Connective tissue, then and now[/caption]

I look over that chart and think, yeah a lot of this would be cool to build again.

Would people gravitate towards it? Maybe.

Could it help pop filter bubbles, social sorting, fake news and trust relationships? Doesn’t seem worth doing if it can’t.

Do people want to run their identity separate of the Facebook/Twitter/LinkedIn behemoth? I suspect what we saw as a blog back then is now a “pro-sumer” application, a low cost way for writers, analysts, and creatives to establish themselves.

Maybe Twitter and Facebook are the perfect footprint for someone who just wants to air some steam about their boss, politics, or a fellow parent? It’s OK if people want to express their personality and opinions in someone else’s walled garden. I think what we learned in 2016 is that the walled gardens are more problematic than merely commercialism, though.

That seems pessimistic. And maybe missing the point. You can’t bring back the 2003-6 heyday of blogging a decade later. You have to make something else. It has to fit the contemporary needs and move us forward. It has to again capture the qualities of fascinating, positive, energizing, captivating, and leading to a better place.

I hope we figure it out and have another great idea party.


On recent Mercedes-Benz dashboard designs

Mercedes (is it ok if I call you MB?), I think we need to talk. You’re doing great in Formula 1, congratulations on that! That said, you’ve gone in a weird direction with your passenger car dashboards. I suspect there are five different teams competing to win with these dashboards and I don’t think anyone, especially this car enthusiast, is winning overall.

Here’s your current entry-level SUV, the GLA. If my eye is correct, this is one of your more dated dash designs:

[caption id=“attachment_3827” align=“alignnone” width=“634”]All the buttons! All the buttons![/caption]

Back in the day, I think, you had someone on staff at MB whose primary job was to make sure your dashboards had at least 25 buttons on them. This was probably a challenging job before the advent of the in-car cellular phone. However, once those became common, that was 12 easy buttons if you just throw a dial pad onto the dash. And you did!

So it’s easy to identify this as an older design from the dozens (43) of buttons. But the age of this design also shows from the LCD. One, it’s somewhat small. Two, and more glaringly, you simply tacked the LCD onto the dashboard. What happened here? Did you run out of time?

I think you can do better. The eyeball vents are nice though!

Now let’s look at a slightly more modern, and much further upscale, design. Your AMG GT coupe:

[caption id=“attachment_3828” align=“alignnone” width=“673”]All the suede All the suede[/caption]

OK so you lost most of the buttons in favor of bigger, chunkier buttons. That’s good! You also made a little scoop in the dash for the LCD. That’s progress, but the placement still feels awkward. I know that’s where all your luxury car friends put the LCD now, but you’re so dominant in F1, maybe you can do better here too?

Can we take a moment to talk about the interactions a little? Your take on the rotary control is a little weird. You’ve got one, and it’s got a little hand rest on top of it. That seems good. But then the hand rest is also a touch interface for scribbling letters? Seems weird! I’ve never used that, but I’m a little skeptical.

Next, you’ve gone through some weird stuff with your shifters. You had a really lovely gated shifter on the S-class couple as long ago as the early 90’s! Lately you’ve tried steering column shifters, and now it seems you’ve settled on a soap-shaped chunk of metal that you move up and down to change directions and put it in park. I feel like you should give up the physical shifter thing and just go with (you’re gonna like this) more buttons.

My parting thought on the GT’s interior is this: width. Your designs impart a sense of tremendous girth in the dash, making the car feel bigger. We’ll come back to that immediately…

Finally, one of your most recent designs, the E-class sedan:

[caption id=“attachment_3829” align=“alignnone” width=“867”]All the pixels! All the pixels![/caption]

Again with a regal sense of width. Personally, I don’t like it. It makes your car seem like a giant sofa.

You are making great progress on reducing the number of buttons. Again, kudos.

OK, clearly you got a great deal on LCD panels. Plus, an almost equally good deal on eyeball vents. Good for you!

Also you put an analog clock on the dash. So that’s nice.

I don’t think we’re going to like this giant piece of software and glass thing for very long. Did you see Her? There are hardly any displays in it. All the computers are somehow inhabited by the characters, either by talking to them or interacting within a projection. Why take one of your classic instrument clusters, make that an LCD, and occasionally project information onto the windshield if the driver or passenger needs to see it there? Just a thought!

I’m a little split on the design of your wheel there. It’s nice that technically it’s a 3-spoke design but really, if you count, it’s 4 spokes. The lamest number of spokes. Perhaps with the split you were trying to add more negative space and perhaps evoke a very old, SL-like 2-spoke design? That’s a nice gesture, but I think you missed here. Surely you could engineer a straight-up 2-spoke wheel?

In summary:

  • fewer buttons, less noticeable screens, more seamless interactions
  • a few retro design elements (eyeball vents, analog clocks) are great, too many is too much
  • reduce your five design teams (screens, buttons, wheels, interactions, A/C) down to two: driving interactions and auxiliary interactions

Hope that helps!


Mutual Benefit

Leaders of business and thought have been putting out statements showing unity or acceptance of Donald Trump’s election. I feel this is normalizing what has just happened to this country and therefore these statements are awful.

If I were a captain of industry or leader of thought, I’d use this statement and encourage everyone else to do the same:

As a private citizen, Mr. Trump has said and done numerous things which are indefensible and which we as a country cannot endorse or accept. While we regret that he’s been elected, as he transitions to life as a public servant, we are willing to consider his actions and act together when they are mutually beneficial to all of our customers, employees, partners, and the greater public. In any case where there is a conflict of benefit, we shall stand opposed to Mr. Trump as is our duty based on the founding principles of this nation.

Mutual benefit. It’s so easy to draft laws and make changes that benefit everyone. It takes nothing away from me if Black Lives Matter. Pricing the cost of pollution into the gas for my car means there’s an incentive for me to use less and what I do use pays for the negative effects of using it. Letting a gay couple marry or someone change their gender takes nothing away from my marriage or identity.

We will not let Trump do as he’s said to our neighbors and our country. If he wishes to change course for the better now, fine. Otherwise, we will refuse to allow Trump-style business and rhetoric to become business-as-normal in our country.


The least bad solution

Sometimes I look over the options and constraints to choose something suboptimal. I have to pick the least-bad solution.

I recently chose a least-bad way to write a test. In a Rails app, the most sensible thing to solve my problem was something like this:

[code lang=text] def propagate_from_child_to_parent model_parents.find_each(&:do_a_sideeffect) end [/code]

In the test, I ended up having to write this assertion

[code lang=text] expect_any_instance_of(ModelParents).to receive(:do_a_sideeffect) [/code]

This kind of stub and assertion is clearly a smell. But, consider the alternatives:

  • stub out the child model object under so that find_each returns a stub object that I can make sure do_a_sideffect is called on
  • try to hack around ActiveRecords associations so it returns the same object as I inject in my test
  • seek out some other result of do_a_sideeffect that I could assert on

In the end, it felt like the shady mock+assertion was the best choice. Using that particular assertion says “slow down and pay attention, a special thing is happening here”. It’s not something I want to do every time, but it was the least bad solution in this context.


Wanted: state machines in the language

Our programming languages are often structured around the problem domain of compilers and the archaic (for most of us) task of converting things people understand to a thing the computer can execute.

Why don’t our languages have deeper support for the ways we reason about problem domains or the ways we struggle to reason. For example, why aren’t state machines and checking their sanity (or marking their unsoundness) a thing in pretty much any language?

The unhelpful answer is “because you can write a state machine in library code”. Which leads me to ask, why don’t we have popular state machine clones? Why is there no xUnit or Sinatra of state machines that is widely cloned to fresh and exciting languages?

The cynical answer is “because many programmers don’t want to think that hard”. The optimistic answer is that there’s room for someone to capture this problem space as well as xUnit did for programmer testing or Sinatra did for turning URL-like strings into method calls. You could be famous!


Van Halen ranked, atypically

Best songs that David Lee Roth talks over:

  • "Hot for Teacher"
  • "Panama"
  • "Everybody Wants Some"

Coincidentally, best use of Van Halen songs in film:

  • "Hot for Teacher" in the strip club scene of Varsity Blues
  • "Panama" in the joyriding/donuts scene of Superbad
  • "Everybody Wants Some" in the Hummer scene of Zombieland

Bon Iver discovers the Option key on his Mac

[caption id=“attachment_3815” align=“alignnone” width=“213”]Someone just discovered all the weird glyphs you can make if you hold the option key and type random stuff! Someone just discovered all the weird glyphs you can make if you hold the option key and type random stuff![/caption]

22, A Million, quick thoughts:

  • first track has a very Tune-Yards drums thing going
  • second track has a very 808s & Heartbreak thing
  • a few tracks in: each track is like Bon Iver doing someone else’s track from the past ten years, but with emo autotune
  • I like the background piano/horn tracks on “29 #Strafford APTS”
  • feels like the track sequencing demonstrates thinking through emotional/tempo pacing 👍
  • I really like the use of pseudo-sax harmony e.g. “____45_____”; slightly Ornette Coleman-esque
  • I like how a lot of the individual parts don’t fit together exactly right, but it still works

So what genre is this album? Neo-electro-ambient-folk-jam? Either way, it works!


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!


Our current political Trolley Problem

As self-driving cars inch closer to a daily reality, the Trolley Problem seems to have entered our lexicon. In short, should a self-driving computer choose to avoid hitting a bunch of people and kill its single occupant as a result? Turns out people expect the car to protect the greater good second and their own skin first.

Maybe out our current political environment of unfettered gun violence, climate change, Trump-lead racism, Brexit-fueled xenophobia, and general apprehension about losing what we thought we’d earned are a kind of longer-term but still serious Trolley Problem. Would you vote to improve society at large even if it meant taking yourself down a ego/prestige/money notch?

Well when I put it that way, things seem pretty bleak!

I happened across an Alan Kay essay, Enlightened Imagination for Citizens, and it kinda helped me get through that bleakness. Some highlights:

In a raging flood, a man risks his life to save a swept away child, but two years earlier he voted against strengthening the levee whose breaching caused the flood. During an epidemic people work tirelessly to help the stricken, but ignored elementary sanitation processes that could have prevented the outbreak. More astoundingly, as many as 200,000 Americans die each year from diseases spread by their own doctors who have been ignoring elementary sanitation (including simply washing their hands when needed), but who then work diligently to try to save the patients they have infected. Studies show that about 80% of Americans are “highly concerned” about climate change, yet this percentage drops to less than 20% when the issue is combined with what it will cost to actually deal with these changes.

Regarding our inability to reason about dynamic systems:

One of the reasons the consequences were not imagined is that our human commonsense tends to think of “stability” as something static, whereas in systems it is a dynamic process that can be fragile to modest changes. One way to imagine “stability” is to take a bottle and turn it upside down. If it is gently poked, it will return to its “stable position”. But a slightly more forceful poke will topple it. It is still a system, but has moved into a new dynamic stability, one which will take much more work to restore than required to topple it.

On acting now instead of acquiring a perfect answer or solution:

When the costs of an imperfectly understood event are high or essentially irreversible, measures have to be taken even when perfect proofs are lacking. This idea is understood by most developed societies—and carried out in the form of levees and pumps, food and water stocks, etc.—but is nonetheless resisted by many of the voting public.

Perhaps the solution is to get ourselves representatives that excel at reasoning and legislation instead of politics and fundraising?

One of the reasons we are a republic with a democratic base is that the representatives can be selected to be “the best and the brightest” from the population as a whole (this was another early ideal for the great American experiment). We could argue that the current representatives are “all too representative”, but this is part of a slide in our political and social systems that needs to be shored up and improved. The idea of “national service” is now just a whisper, but it is what needs to be brought back into the forefront of what it means to be a citizen.