Aside
Context buckets
Sometimes I ask myself: why did past Adam think this text/link/picture/etc. was important. Increasingly the answer is: put it in a bucket that makes the answer self-explanatory. For example: I have tags in Bear for music, recommendations, notes on The System of the World, Technology, software, Disney, and even for random tweets that I will sometime want to share with someone as proof that I’m not just making this up.
95% endorsed! The exception: I am extremely picky about the size and aspect ratio of windows in relation to how the particular application is designed. I can neither walk into Mordor or simply resize an application to use exactly 50% of my screen.
Pick prolific: quantity, quality, and Chidi's Dilemma
Prolific is better than perfect, Jared Dees:
“Perfect” is a mirage that no one knows how to reach.
I’m fond of restating this in terms of the quantity/quality trade-off. It’s easy for me to fall into the temptation of creating one essay/pull request/turn-of-phrase that exhibits all of the quality that should exemplify my work. But it’s better for me to create a bunch of things that exhibit some of that quality so I can better learn what is essential to the quality and what is illusory.
To borrow Dees’ model: if I write fifty-two blog posts in a year, several of them will be Not That Great. But after the first dozen or so, I’ll start to figure out what’s important in a story and what I thought was important but doesn’t really matter much. This is quantity creating quality; not a tradeoff!
The flip side is Chidi’s dilemma: spending your whole life trying to write every single thing about your area of expertise, with nuance, and producing something so impenetrable that not even a demigod can make sense of it.
In short: quantity doesn’t reduce quality. Quantity is the feedback loop that creates Quality.
We are now a two robot vacuum family! One for the cats upstairs, one for the dogs downstairs. Courtney loves them both.
The cats and dogs are way smarter than the robots, which just bump around like embodiments of the old Windows logo screensaver. Our floors have never been slightly cleaner and our power strips never in greater threat.
I highly recommend it if you have the means.
It is I, who dwells at coffee shops, who sometimes reads paper books instead of a glass display, who prefers Apple Pay over card swiping when possible.
Advocacy = empathy + speaking to someone else’s conceptual framework. When I’m trying to convey an idea from my head to someone else’s head, the biggest challenge is converting from my conceptual framework and values to theirs. Hence, The words that work:
For example, one partner in a conversation might use concepts like power and tradition and authority to make a case, while the other might rely on science, statistics or fairness. One person might argue with tons of emotional insight, while someone else might bring up studies and peer reviews.
Rare is the success of advocacy that doesn’t involve a lot of empathy, understanding your conversation partner, and letting go of the little details to reach a new local maximum of mutual understanding.
It's dangerous to go alone, take dotfiles
Yesterday I was handed a fresh, nifty new laptop. This is, for me, mildly terrifying. Last time I did a clean operating system install was seven years ago. I’ve carried an idiomatic mixtape of dotfiles, macOS preferences, files, and cruft with me on my personal laptop ever since.
A brand-new, stock laptop is a shock to my highly acclimated and particular system.
I started contemplating how exactly I could get setup relatively quickly. At the same time, I want to pay down a little bit of automation debt. By the next time I’m faced with this situation (when I buy my own computer, if a disk is struck by lightning, etc.) I shouldn’t feel so much like a deer in headlights.
At first I thought I’d attempt to transmogrify my current lightsaber into something like Gina Tripani’s dotfiles. I like how this is structured, and that the initial setup of apps and Unix-y things is bootstrapped by Homebrew. But, then I remembered Thoughtbot’s laptop and dotfiles and convinced myself this was the way to go.
Indeed, laptop
helped me cut the Gordian knot of setting up my new machine so I can write code and feel at home on it. I highly recommend it if you have the means.
New dotfile repo forthcoming!
I’m starting a new job tomorrow. I decided to take a week off in-between jobs, mostly to make a quick trip to Disney Land.
I hid most social media apps away, stopped paying attention to news, and caught up on reading. I gave myself a 3-day weekend before our trip to decompress, we went to Disney Land for 3 days, and had a 3-day weekend to relax before I start the next thing. I’ve done a fair bit of writing, watching movies, tinkering with Ableton, and playing games too. A great vacation sandwiched between two stay-cations, in the lexicon of our times.
My mind feels like it’s had a chance to reset and get back to a neutral state. I’m hoping this will help me keep my frame-of-mind looking forward as I start the next job. This was a great decision and I highly recommend you do something like this (granted, Disney Land isn’t everyone’s thing) yourself, if you have the means.
👍 Master of None Season 2
Just finished watching Master of None, season 2. What a great show. It’s hilarious without being campy, poignant without being a downer. Aziz Ansari is very good at this. Also, now I just want to listen to old Italian music and eat food.
Did you try editing the right file?
The first few years of my career, I edited the wrong file all the time. I could spend hours making changes, wondering why nothing was happening, until I realized I’d been tinkering in the wrong place because I was misreading a file path or not paying close enough attention to control flow.
Fast forward to now, and I’m pretty quick to drop a raise “BLORP”
in code I’m tinkering with if things aren’t working like I think they should. All hail puts debuggerering.
However, it turns out I found a new class of this operator error today. I was diligently re-running a test case, expecting new results when the test fixture file I thought was changed was the wrong file. Once I deleted the right file, I was back on my way.
Joyful and grumpy are we who can find new ways to screw up time ever day!
Extra Ruby chaining, not that costly
A few folks suggested I try lazy enumerables to make my extremely chained style practical. I was curious about the actual costs of my style, so it’s time for lies and microbenchmarks! Turns out naively chaining a bunch of maps together isn’t very costly, so go with that to start.
Lazy came in much slower than consolidating the logic in one loop or chaining them without lazy. I thought, I must not have used lazy properly. Turns out, I’m probably showing that laziness isn’t well suited to iterating over collections without an early termination clause (e.g. a take, first, or find) and that for small collections (like an 87-line /etc/passwd), the cost of the lazy plumbing can noticeably outweigh the work done inside the loops. Thanks to Rein Heinrich for talking me to the bottom line!
Less fancy
Programming is easier when you know how to stop solving 100 problems with 1 fancy thing and solve 100 problems with 20 plain things.
How does a bomber outlast a JS library?
Ember is probably leading the JavaScript framework pack by supporting releases with security patches for slight more than a year. By comparison, there’s a cottage industry of garages restoring and updating old Porsche sports cars then selling them for ridiculous prices. The USAF (the same one, curiously, that is spending $1.5 trillion on a useless jet, somehow) is going to use their largest strategic bomber, the B-52, for one hundred years.
I’m always thinking about Greg Borenstein’s words when it comes to technology churn:
The constant churn of web technologies hobbles the creation of timeless learning materials and continuity of knowledge across generations.
We should try harder on this.
Things I’ve noticed San Franciscans deeply despise:
- housing prices
- nearby events that aren't actually held in San Francisco (e.g. the Super Bowl)
Commercialeering
Things you might hear in commercials/promotions for software and beer:
“The first 96-calorie Pilsner” “Invented the smooth-pour top” “Next-generation build system” “The database that beats the CAP theorem”
American software and beer, much innovation, many hands waving. Solutioneering!
Vegas, America/Starbuck's playground
I’m going to Vegas this weekend with my wife on a real vacation where we’re going to do as little as possible. Not run around Disney World all day, not drive up and down the southern California coast. Based on this little bit of research, I can’t wait.

Toot a horn while you test
Someone make me a thing that plays horn samples as my test suite runs. Every time a test or assertion finishes, toot the horn sample. A fast suite would sound like Phil Spector’s Wall of Sound (i.e. awesome), a slow one would sound like a grade school marching band (i.e. kill it with fire).
Let me help you, computer DJ
I look forward to the day when machine learning can differentiate between “don’t play this song because it is awful” from “ don’t play this song because I’ve heard this it a thousand times” (e.g. “Superfreak”, “Rapper’s Delight”, “Come as you are”). Related, I’d love a way to tell the machine learning “if you are ever stumped about what to play next, it’s always OK to slip this song in” (e.g. “Wouldn’t it be nice”, “Summertime Blues”, “Izzo (H.O.V.A)”, “Overture to Samson and Delilah”).