Dependency Injection and Ongoing YouTube Adventures
Greetings, friend!
Looks like I’ve managed to shorten the interval to only two months! If you’re wondering what I’m talking about because you haven’t heard from me since July 2023: It turns out I’m not great at creating Newsletters!
People have always been telling me that my emails are marked as dangerous, which I think is caused by the fact that I’m sending from the Buttondown domain like everyone else on the free plan (no complaints about Buttondown itself, though!). The problem is that sending newsletters under your own domain is not cheap!
I’ve spent hours researching it and talking to other non-commercial newsletter authors, and it comes down to either doing a lot by hand and paying at least $15 per month or paying $29 per month. If someone has a business and sends out several newsletters per month, that might be adequate, but for me, I can’t justify paying almost $350 per year just to tell you about my humble and free work.
But my last email was particularly bad because, in all my excitement, I tried to include an iframe with my first YouTube video, which no email client displayed, and, in many cases, sent the mail straight to spam.
If that’s you: surprise, here’s my December newsletter – I think it’s a pretty good one. And here’s my first YouTube video about my svcs package – obviously, it’s not “pretty good” because it’s my first video ever 😅 but my last newsletter explains why I got into it anyway.
New YouTube Video: Dependency Injection
Speaking of videos! I’ve got a new one! I’ve mentioned off-handedly in the first one that I could make one about how dependency injection, at its core, is simpler and more valuable than most people think. Well, the reactions were unequivocal, so here it is:
Loose Coupling & Dependency Injection the EASY Way!
Behind The Scenes
If you don’t care about the musings of a fresh YouTuber, scroll on to Conference Updates.
I thought my second video would be a quick one because I’ve thought everything through before and have had some experience in making videos now! Wrong. It took me two months again, only a few days less than my first one.
Firstly, when I write a blog post, I can link to explanations of concepts needed to understand what I’m writing about. That’s not true for videos. Nobody stops watching a video and looks up a word. In that sense, videos are much closer to conference talks. Therefore, I got a bit into an explanation spiral until the video got over 14 minutes long, despite tight editing. Talk about scope creep!
Secondly, my January was kind of cursed, as was my whole winter. I managed to get three harmless-but-obnoxious colds despite only going to the gym and having a fun surgery. From what I can tell, I got it at the clinic – yay.
Thirdly, I was again reminded that I’m punching above my weight class with my videos. They say the first 50 videos are for oneself to build skills, style, and confidence. For one, I lack the patience for that. However, my goal is not to be a YouTuber; my goal is to create helpful content, and these days, YouTube appears to be the best way to reach people I haven’t before.
Now, I have the incredible blessing of bringing my own audience. Almost 70% of people who watched my videos came – as YouTube calls it – externally. It’s my followers on Mastodon, Twitter, LinkedIn, and you, dear reader. And I couldn’t be more grateful for that because I don’t think I could motivate myself to put as much work into my videos as I do if it would be watched by a handful of people that accidentally clicked on a thumbnail.
All that to say, it takes me a long time to record and edit my videos just to achieve the baseline quality that I’m not totally embarrassed by.
And then I still am! 🙈 At the end, I hated the DI video so much I made a point out of pushing it out for the reason alone to get used to publishing suboptimal work and getting into the grind: I’ve got a terrible haircut because my barber is on vacation, I’ve got visible lint on my t-shirt, the lighting sucks because you can see the shadow in the bottom left. Everything in the top left corner is barely readable, and my attempt to slouch less and use my arms more resulted in vigorous microphone punching.
But now it’s out, and nobody seems to care, which was the lesson I sought.
Instead, the pattern of getting more positive feedback for my videos than anything else I’ve ever done continued – which is really motivating! It made me already write huge parts of my third video that’s gonna be less engineer-ey, and I hope I can ride the momentum until the end. I really want to play with different formats and not be a one-trick pony.
Speaking of feedback: thank you to everyone commenting on the videos. My understanding is that such kind of engagement is a good signal for the YouTube algorithm, and if I need anything, then it’s what my friend Glyph called “get out of algorithm jail”. Given what it tells me where it suggests my video, I can only assume it’s not quite sure what to do with me yet (if you found me because you watched an intro to MS Access and got my video recommended – please write me!).
Of course, if you have concrete, actionable feedback on my videos that you think could make a difference with reasonable effort, don’t be shy; the reply button is right there! I’m interested in feedback even if I choose not to follow it1.
Anyway! I’m challenging myself to produce the next one as quickly as possible (that is, anything under two months is a big success! 🤪) because it’s a bit time-sensitive – let’s see how it goes.
Conference Updates
A quick update where you’ll be able to see/meet/bribe me: I’ll be giving my Subclassing talk remote at the Python + DS fwdays’24 conference. I usually don’t give online talks, but I’m making an exception for Ukraine. 💛💙
If you’re wondering why it’s my technically last year’s talk: my this year’s PyCon proposal was rejected, so I don’t have any other. That doesn’t mean I’m staying at home, though. I’m already fully booked for PyCascades in Seattle and, of course, PyCon US in Pittsburgh.
As you might’ve deduced from my mushy words last year, I firmly plan to attend EuroPython in Prague. Unfortunately, my new favorite, PyCon UK, got canceled for 2024, and PyCon Italia clashes with PyCon US. Here’s hope for 2025! And here’s hope for an in-person PyGotham 2024. 🤞
Either way, come and say hi!
Again, I’m financing the PyCascades trip entirely from my GitHub Sponsors and Tidelift incomes, therefore thank you so much to everyone who decided to support me financially! ❤️
Tidbits
Blog
No new article, but I’ve updated How to Ditch Codecov for Python Projects to the v4 versions of upload-artifact
and download-artifact
that caused a nice churn for FOSS maintainers right before the holidays last year.
TILs
Only one TIL, but it’s blown some minds: VS Code Is Hiding Refactoring Tools
It turns out you can move symbols between modules if you know how to do so!
FOSS
To keep things short, I’m only going to point out attrs’s NYE 23.2.0 release that brought a really cool feature many people (including myself) wished for: @functools.cached_property
s with slotted classes! Woohoo! And it was an outside contribution, no less! It’s really great that after almost ten years, attrs attracts such high-quality contributions out of nowhere. 🥹
And you know what? Let’s leave it on that high note!
Have a great spring if you live in the north; I can already feel my nose tingling. 🤧
Cheers,
—h
-
Yes, I know my pronunciation and enunciation have to improve. I hope that regularly recording videos will actually help me with that! ↩