Hello friends,

I found this in my notes and I can't remember if I've written about it yet:

You can choose the rarest, most delicious variety of olive. And pick out the creamiest, most luscious flavor of ice cream. But if you put the two together you're probably not going to get a very good sundae.

It's tempting to pick and choose from “best practices”, or from amongst the most popular features, and try to put them all together in a perfect sundae. We do this sometimes when deciding how our teams will operate. Or what features our programming language should have. Or when comparing feature lists on comparable services.

The problem is that practices and features are never “best” objectively. They are only “best” in a context… of other practices or features.

eXtreme Programming works (when it does) because it's a set of mutually-reinforcing practices. If you pick out just “no code review” and “test-driven development” but leave behind pair-programming, small releases, constant refactoring, and an on-site customer, you are likely to wind up with a big ball of mud that isn't fit to purpose.

See also: programming languages that never met a PL buzzword they didn't try to assimilate. Object-oriented! Functional! Dynamic! Static! Actor-model! Floor polish! Dessert topping!


I said I was going to make this newsletter more personal going forward and it occurs to me I haven't actually written much that's personal in the last few. I guess that's because I've been, for the most part, ridiculously happy, and happiness is dull to write about.

Happiness also brings with it the dangerous temptation to write about “how to be happy like me”. And that's where shitty self-help books come from.

Happiness is always spiky and ephemeral too. If you sampled me regularly over the last month you'd get an overall trend of joy, but you'd also get individual datapoints way down in “anxiety”, “loneliness” and “depression”.

Brene Brown says that everyone practices dulling their emotions to some degree. And that when you dull one emotion, you dull them all. Conversely when you allow yourself to feel more strongly, you don't get to pick and choose which feelings. I'm in a period of opening up to levels of pleasure and happiness I'd never felt before. And that means also feeling sadness, loss, sympathetic pain, loneliness, and fear that much more keenly.


OK. Let's see how I did.

  • ✔Submit a talk proposal to NordicJS (and use this as a pull to get my ducks in a row for talk submissions – update bio, abstracts, talk history page). Done! In the process I put together some convenient pages with abstracts, video, and nice things people have said about the talks I've been doing lately.
  • ✔Make sure I'm on top of at least the next two RubyTapas episodes. Well, sort of. I've caught up on a lot of my RubyTapas TODOs, but I think this week's guest ep is still going to be delayed. I may have to come up with something short-notice while the originally planned episode is completed.
  • ✔Make plans for the upcoming Cohere/ShipRise Smoky Mountain Retreat. We'll be working on the AsyncJS course and other plots & plans. What do I need to do to prep? I checked this off by saying “hey, I'm super anxious because I never host people so please work with me on this, OK? 😅”. Sometimes “done” means “feelings communicated and expectations managed”. 
  • ❌Reimplement Promises in Ruby, again, based on the A+ spec. Nope, but I wound up writing some new code to illustrate polling solutions to async problems, which needs to come before Promises in the sequence that I'm building.

Extra credit:

This week:

This week is unusual because Betsy Haibel is in town so we can work on Cohere's AsyncJS course together. We've been working on the course a little at a time for a while, but we kept losing momentum. So we decided it might work better if we just huddled up and focused for a week. Wish us luck!

As far as an actual TODO list goes…

  • Record lots of course video with Betsy.
  • Publish a RubyTapas episode, even if it isn't the planned on.

As always, thanks for reading, and don't be a stranger to my inbox!

Published by Avdi Grimm