SIGAVDI #85: Picnic Edition

Hello friends,

I'll Trade Ya!

Hey there! Archived SIGAVDI letters are for newsletter subscribers only. All it costs to join (and unlock this post) is an email address! I'll write to you weekly-ish with a few interesting links, some updates, and some reflections on the intersection of software and life. And I'll respond to your replies! Whattya say?

A photo of Avdi Grimm

First off, a special invitation: Iโ€™m throwing an experimental two-evening pop-up workshop on Investigative Debugging next week. The Big Idea is to stop hypothesizing about how code is working (or not-working), and instead leverage surveillance tools like strace, mitmproxy and docker diff to understand software behavior with hard data. Iโ€™m not an expert in these tools, but Iโ€™ve used them enough to get to the bottom of some mysteries. Youโ€™re invited to come explore them with me!

Iโ€™ve never done something like this before; it could be amazing, or it could be a flop! Iโ€™m capping it at 12 participants, and if 6 or more sign up by Saturday Iโ€™ll go ahead with it. The cost is $100, both to cover my time and to make sure everyone involved is committed to participating. If this sounds interesting to you, thereโ€™s more info here.

And now…

Whatโ€™s good

Whatโ€™s new


One reason Iโ€™m able to do all this research & blogging is because of my very much appreciated Patreon supporters! I try to say thanks with some stuff thatโ€™s just for them as well. Recently Patron-only publications include:

Iโ€™m also really excited about the new private Discord server that weโ€™ve been kicking the tires on! If youโ€™d like to get in on some of that action, you can support me on Patreon here.


I often say I am my code. I donโ€™t believe in โ€œego-less codeโ€. I donโ€™t think thatโ€™s a fair expectation to put on people. And I think that too often, the concept of โ€œego-less codeโ€ is used as an excuse to criticize people under the guise of critiquing their code.

As a programmer Iโ€™ve sunk an enormous percentage of my life code. Iโ€™ve eschewed other creative outlets in order to code.

Some of my code will outlast me. It will be one of the durable impacts I have on the world. It will continue to reflect my decisions, my tastes, my intentions long after Iโ€™m gone.

I am my code as much as an artist is their work; as much as a writer is their novels; as much as a carpenter is in their woodwork. And I try to remember that other programmers are their code as well.

Which is why yesterday morning I started my day by writing an apology to members of the Rails core team.

Because over a very frustrating weekend of trying to get an experienced-dev-but-first-time-Rails-user up and running with her first Rails 6 project, I went on Twitter and said some nasty thing about the Rails code. I used words like โ€œtrain wreckโ€.

By my own logic, that means I was saying the same thing about the Rails maintainers. Hence, the apology.

Hereโ€™s what Iโ€™m stuck on and mulling over, now:

When I, Avdi Grimm, with 20k followers and a lot of Ruby community cred, went on Twitter to rant about Rails 6, it got a lot of traction. People recognized my frustration. They felt validated and vindicated, and they joined in and said โ€œyes! I have had the same kinds of frustration! And I felt like it was just me!โ€

Or โ€œI felt dismissed for โ€˜using it wrongโ€™โ€.

Enough people piped up like this that the Rails maintainers took notice. To his great credit, instead of getting defensive, DHH did the โ€œego-lessโ€ thing, reached out to me and a few others, and said โ€œletโ€™s do something about this.โ€

(Iโ€™m not saying we shouldnโ€™t be ego-less about our code! Iโ€™m just saying itโ€™s an unfair expectation of others.)

Whatโ€™s bothering me is the sense that I canโ€™t imagine a scenario that would have achieved this positive outcome that doesnโ€™t start with someone prominently and loudly bashing the 2020 Rails experience. I donโ€™t know how this could have happened without someone being an asshole.

Donโ€™t get me wrong: the fact that things came out this constructively owes far more to DHHโ€™s gentle reaction than to my instigation. But it feels like the instigation, while insufficient, was necessary.

Because the Rails community had become complacent and content with saying โ€œyouโ€™re just using it wrongโ€. And developers were steadily, quietly draining off to other software ecosystems. The community needed a large number of people to say โ€œThis REALLY SUCKS NOWโ€ in order to prompt a reconsideration of what kind of Rails DevX is considered Good Enough.

And based on my experience with how people react to different kinds of wordingโ€ฆ Iโ€™m not convinced that patiently, even-handedly saying โ€œour experience has been very frustratingโ€ would have had the same effect.

I donโ€™t like this conclusion. I donโ€™t want this incentive. I donโ€™t want to learn that being the asshole gets results.

I hope Iโ€™m wrong. I hope I just have insufficient imagination.


Last week

  • โœ” Email, again I kept up with itโ€ฆ for a few days! ????
  • โœ” Chew through some more WIP Yes! I delivered another big chunk of Robust Ruby
  • โœ” Keep following up on work leads
  • โŒ More streams! Jess and I felt like taking a step back from streaming these past couple weeks.
  • โŒ Host another Patreon hangout I dropped the ball on that one

Bonus points

  • Some work on consolidating how I sell stuff online, not yet complete
  • A whole lot of coding and a whole lot of learning and a whole lot of writing about it
  • I got re-started on some very old WIP, whichโ€ฆ Iโ€™m not going to talk about yet, because I donโ€™t want to jinx my momentum.
  • Got my new patron Discord server up and running, and started transitioning from Slack

This week

  • More online presence re-org and consolidation, while I have the time for it
  • This Investigative Debugging workshop thing
  • More WIP
  • More cost-cutting & streamlining
    • Iโ€™m not usually this vague with goals, but Iโ€™m doing a pretty good job of figuring out what to do next and doing it on a daily basis, so Iโ€™m gonna give myself a pass.

Threat board:

  • How does this summer even work
  • Becoming revenue-positive.
  • WIP.
  • Fixing my house.

WIP:

  • โฌ† Robust Ruby: 45%. woooooo progress!
  • MOOM: 92%
  • The Rake Field Manual: 10%.
  • AsyncJS Course: ~50%.
  • Patreon improvements.

Thatโ€™s it for this week. Thanks for reading!

Cheers,

Avdi