Happy new year, again! Starting the new year on January 1st and on Week 1 means we get to celebrate twice.
That’s true this year and last year, at least — see Weeknotes 2022 W01 — but won’t be for 2024: January 1st next year is the start of the first week of 2024.
I’ve still not got a year-in-review post planned. It’s most likely not going to happen.
The last two weeks, I’ve had a sensation of boredom. It’s unusual for me, and a sign that something isn’t quite right.
It’s not that I am out of ideas for things to do. My mind is always brimming with things to do. The problem is the lack of time: a full-time job soaks up so much time and energy that I don’t have much opportunity left to follow up on these ideas.
I had a holiday break of a week and a half, in which I worked on some interesting things (a rewrite of the Gex compiler in Go, for instance). But near the end of my break, I’ve lost the desire to continue working on anything.
My side projects are not trivial, and require regular time dedicated to them, of an hour or more of uninterrupted time. That’s easy enough to come by when on a break, but when working full-time, it very much is not.
Maybe going back to a four-day work week might be interesting. For the extra day I get each week, I’d set clear goals and spend the time working — but on my own projects. I don’t (and wouldn’t) want to define what those are up front: they can be different month by month, week by week. As long as I’m achieving something, I’ll be happy.
I tried the four-day work week a few years ago, but was not prepared to deal with the drop in income. Since then, I’ve taken the habit of budgeting diligently, so I might be able to make this work.
I wrote up an article on the use of the state pattern in Ruby: Avoiding bugs in Ruby code using the state pattern. Give it a read!
Perhaps a theme for 2023 could be to share more of my knowledge and experience, as articles, meetup/conference talks, YouTube videos, maybe even podcasts.
I tweaked the design for denisdefreyne.com. The biggest change is that the huge headers are gone, replaced with something much more subtle. The headers have always been a bit bombastic.
Those bombastic headers might have contributed to the feeling that any article I write on my site has to be worth it, and be of the highest quality. I’m fairly sure that I hold myself to too-high standards.
Following up on last week’s weeknotes, Weeknotes 2022 W52: Crisis, I wanted to mention that the Twitter sale has contributed to the anxiety around community building as well. The threat of being banned, and thus losing a large part of my social connections, because of a Mastodon link in my profile, has been terrifying and has destroyed the illusion that Twitter is a public good.
Here’s a new pet peeve of mine: extremely short functions. I know that “keep your functions short” has been common advice, but at work I’ve lately been in codebase where this advice is followed to the extreme. The code that I’ve seen looks a bit like this made-up example of a
def base_price @_base_price ||= @item.price end def tax_fraction tax_config.tax_fraction end def tax base_price * tax_fraction end def total_price base_price + tax end def tax_config @global_config.tax end
That code is hard to follow because the execution flow jumps all over the place, from function to function. There is no straight-line flow. Compare with this:
def total_price base_price = @item.price tax = base_price * tax_fraction base_price + tax end def tax_fraction @global_config.tax.tax_fraction end
I much prefer the second version: I can read it from top to bottom and understand what is going on. Admittedly, this shorter version looks more complex — but the complexity is there in the first version, too, just more obscured.
The idea behind the advice “keep your functions short” is increased readability. In the example above, though, that advice is counterproductive.
I’ve written up a summary of last year’s expenses: Expenses for 2022.
The biggest fraction of my expenses is still rent — 50% of my expenses this year. It’s a ton of money that just… disappears. I might spend some time figuring out what my options are for buying instead of renting; I’d still pay for a mortgage, but at least I wouldn’t lose the money as with renting.
Buying in Berlin will be tough. All apartments here are so damn expensive; significantly above my budget.
Your Theme (CGP Grey): You might have already set new year’s resolutions, in which case this video comes a bit late.
Megan Smith explaining the General Magic prototyping process (Dave Rupert): What Dave says.
Researchers thought this was a bug (Borwein integrals) (3Blue1Brown)
The Best Jazz Albums of 2022 (Bandcamp Daily): Fantastic stuff in there.
I am not a supplier (Thomas Depierre): It needs to be said!
Thinking Systematically (Jim Nielsen)
gum: A tool for glamorous shell scripts: Ooh, neat! I need to find good uses for this.
Microfeatures I’d like to see in more languages (Hillel Wayne)
Favorite compiler and interpreter resources (Phil Eaton): This certainly is relevant to my interests!