Where the Magic Happens

Effortful study means constantly tackling problems at the very edge of your ability. Stuff you may have a high probability of failing at. Unless you’re failing some of the time, you’re probably not growing professionally. You have to seek out those challenges and push yourself beyond your comfort limit. —Jeff Atwood, “How to Stop Sucking and Be Awesome Instead”

Telemetry != Observability

This post helps to understand the difference: Understanding Observability.

Weeknote 2/2020

Happy New Year! I’m back from my holiday break. We spent Christmas at home and had my brother-in-law flown over. Of course, as soon as I left the office on my last work day, a cold knocked me right out and I spent most of the time until Christmas Day in bed. The next day, we went to Germany to visit family. I’m happy to report that we had a very relaxed stay.

I’m glad to be back at work. Wednesday was my first day in the (home) office. During my two-week break, I had time to develop new ideas and I’m eager to get started implementing them. I was also excited to get back into live coding. Sadly, my first stream of the year didn’t yield too many results, but I guess I should cut myself some slack; it’ll take a bit of time to get my head back into the game. Skipping lunch wasn’t the best idea either, I guess…

Generally, I wasn’t too productive over my first three work days. I got distracted too quickly too many times. I’m going to consider this my warm-up phase. Next week, I’ll build myself a better basis for getting shit done by getting back into a routine of setting myself concrete goals. I’ve also realised that deadlines create accountability and focus. Perhaps it’s time to pull this SMART method out of the drawer!

On the hobby front, it’s all good. I’ve joined a new World of Warcraft guild a few weeks ago and did a great dungeon run with my new buddies last night. And typing this post, I’m enjoying the “good feeling of oneness with cup rubber”; in other words, I’ve added an original Happy Hacking Keyboard (the new Hybrid model) to my collection.

I hope you had a pleasant start into 2020, too!

The Ariana Grande retrospective

I like how a few creative modifications can make a dull team activity interesting again!

Guess I'll give Dark a watch

In addition, German children merrily walk home from school on their own through the forest. Everybody knows that it is extremely unhealthy for Irish children to walk anywhere, especially to or from school, never mind through forests.

The sarcasm is strong in this one. Didn’t expect to grin reading an article by Breda O’Brien.

Put a dent in the universe

Markus is thinking about making a ruckus. What a great New Year’s resolution!

“We’re here to put a dent in the universe. Otherwise why else even be here?” —Steve Jobs

I’m incredibly excited for 2020.

A great example how hosting a conference is more than just running it. chelseatroy.com

It's okay if you're not running Kubernetes

Adopt technology because it’s helpful to you, not just because it’s hot. Or, as Mattias Geniar says, “get satisfaction in knowing that you’re making a difference for the business & its developers because your servers are running as best they can.” sysadvent.blogspot.com/2019/12/d…

What a lame excuse for corporate greed. Die like the dinosaur you are, Irish Rail. “Irish Rail ban on reusable cups angers passengers” www.irishtimes.com/life-and-…

Weeknote 50/2019

It is true what they say about growing an audience: You have to show up regularly and in a predictable manner. Only after I settled on a consistent schedule, the number of viewers of my Ruby on Rails live coding stream has been increasing steadily. What makes me especially happy is that this makes the live chat more interesting. I’ll admit that I also had fun turning my home office into a little studio with proper lighting and two cameras. Come join me on Twitch on Tuesdays, Fridays and Saturdays at 4pm Irish time, and say “Hi!”

On my stream, I was struggling with finding a good place for some authorisation logic for more than two weeks. I finally realised that it needed its own object class. How I was missing that simple option for all this time is a mystery (and a bit of a shock) to me. I can only assume that it was part lack of OOD experience and part framework tunnel vision. But hey, just another reason to keep on truckin’!

On the keyboard front, I’ve lately been using Kailh Box Pink switches in a 60% Tofu aluminium case with HHKB layout. I really like the clicky and thocky sound, and the HHKB layout (which resembles the classic Sun Type 3 keyboard) makes coding more comfortable.

For 2020, I’ve set myself the goal of learning Javascript. I’ll use the year-end break to work through Wes Bos’ “Beginner Javascript” video course.

Tests are hygiene

Because I started programming a long, long time ago, I have to admit that I spent most of my career without writing tests to accompany my code. It was only in recent years that I learned how to use a test suite to my advantage. In hindsight, I should have started earlier because having tests completely changed my life as a software developer.

Tests create peace of mind. The amount of confidence with which I now release my code to production is worlds apart from the trepidation of past deployments when I was on edge for hours waiting for the other shoe to drop. Beginning of this year, I wrote about this in my article “Test-Driven”.

I remember how difficult it was for me to get into writing tests. Honestly, once in a while I still struggle with building clean and efficient tests. That’s why I can relate to developers who are turned off writing tests by the additional effort it takes.

Decades of me coding without a test suite prove that you can not have tests and still do a decent job. However, that doesn’t mean that it’s a good idea. Or that it’s good practice in 2019. I’d even go so far as to state that building tests for your code has become basic professional behaviour.

Martin Thompson draws an interesting parallel to the medical profession on the episode “Protocols and Sympathy” of the Arrested DevOps podcast (link jumps right to the related point in the conversation):

“A surgeon will not consider performing an operation without washing their hands.”

But did you know that it wasn’t until the efforts of people like Ignaz Semmelweis in the 1800s that antiseptic procedures were even considered par for the course by doctors? Setting higher standards for hygiene transformed medical practice.

I’ve come to the realisation that spending time on writing tests before coding business logic is like washing your hands ahead of performing surgery. In the long run, it saves time and money because it make sure that “done” means “done”. Better hygiene in medicine reduced the number of deaths and minimised the need for antibiotics and urgent follow-up operations. A robust test suite will reduce the number of outages and minimise the need for workarounds and urgent debugging sessions.

In both cases, there’s going to be far less suffering for everyone involved.

Is it just me or is Bad Lip Reading getting better all the time? “MORE STRANGER THINGS”

We’ve created democracies out of chaos before

I’m surprised that an article like “A Better Internet Is Waiting for Us” can be as enlightened as it is and still not mention the term IndieWeb or reference an alternative social platform like micro.blog.

PS: Is that CSS intro transition gorgeous or what?

PPS: I like to think that “You may not develop artificial or undesired entities for use in Photon Emission Products (PEPs).” is in fact advocating for ethical lasers.

Seth Godin: “The existence of DuckDuckGo doesn’t significantly change Google’s position as a monopoly able to dictate how most people experience everything on the web.”

…yet. 😃

I’m so happy to see how open source conferences are getting more and more inclusive. Good job, #RubyConf! EBF83775-C45E-4343-9C00-50A0039C6A59.jpg

My shell prompt is already written in Rust. Looks like my next shell might be as well.

Weeknote 46/2019

I use to say that the weather in Ireland is much better than its reputation. But this week, it’s been really, really terrible.

I had this week off and mostly did what I felt like doing. The phrase “Right. Next, I’ll have to…” is how I put pressure on myself. And, as I’ve explained in my talk about resilience at DrupalCon, pressure can slowly turn into burnout. That’s why avoiding “I have to” and not trying to accomplish anything is actually good for me.

Speaking of my resilience talk: This week, I was invited to give my presentation via Zoom to the Drupal Scotland groups in Edinburgh and Dundee. I’m really happy with the outcome and I hope I was able to inspire more people to stop and correct course towards better mental health.

I ended my holiday week somewhat early by doing a pair programming session with Markus on Friday morning. I’m pretty sure we both felt that it was time to work on something as a team again. A “want to”, not a “have to”.

My Bose QC25 headphones got a Bluetooth upgrade and it’s glorious. I’ll write a separate post just on this.

Man, these unknown unknowns. I had no idea of the capabilities my iPad Pro got with its latest upgrade until I watched Christopher Lawley’s iPadOS video.

Good explanation of what refactoring is and what isn’t refactoring anymore: Let’s Not Misuse Refactoring

I guess I’m in a good place when all that comes to mind about the new Macbook Pro is “I guess 2.5k is a bit excessive to spend on a mobile WoW rig”.

You have headphones with noise cancellation. But what about the noise within your head? Here’s a great bunch of tips: 28 Ways to Find the Stillness You Need to Thrive

Weeknote 45/2019

Joining the IndieWeb

After hearing and ignoring the term many times over the years, I finally got the importance of the IndieWeb movement. Which information we find on the web and how others find the information we put on it should not depend on the goodwill of mega-corporations and algorithms. Huh, that sounds quite cyberpunk; maybe it was my recently rekindled interest in Shadowrun helped the coin to drop for me. But it was Tantek Çelic’s talk “Take Back Your Web” that pushed me over. I’ve already left Facebook a while ago and (obviously) revived my own blog. Even though I now wanted to integrate it with others using modern standards like webmention.io and microformats2, I felt I’d rather spend my time writing. That’s why I decided to save time and move my blog to the micro.blog platform. I used this opportunity to give my blog the simpler domain name “geewiz.dev”. Welcome to my new digs!

Writing workflow update

I’m now using Drafts not only for short notes but also for writing posts, email and other text. Most texts start as a quick brain dump of only a few keywords. When I get to write, I flesh them out more and more. When a text has matured enough, I copy it to its final destination such as a Jekyll git repository, the micro.blog web form or my email application. After a few finishing touches, I publish the content. Simple.

“My web team told me about your Drupalcon talk and I watched the YouTube recording yesterday. I just wanted to say that I really appreciated your talk, your honesty, humour, concrete advice, thank you.”

This made my day.

DHH tries Windows, goes back to Mac begrudgingly

I can relate to DHH trying to drop the Stockholm syndrome. Apple machines are a very mixed bag. But they’re still the best desktop experience I can find. I’m now pairing my iMac and iPad with a Linux dev server and get both best worlds (i.e. desktop pleasure and open source power).

Weeknote 44/2019

I haven’t written any weeknotes lately, so let’s catch up with things.

In my old office box, I found the old HP 28S calculator that I bought in 1991 and that converted me to RPN for life. It still works, despite one of the batteries I stupidly left in having leaked a bit. I wish I had more math to do at work because I’d love to use the this nice piece of hardware some more again.

The upgrade of my iPad Pro to iPadOS 13 got stuck and none of the recommended solutions worked for me. In the end, I resorted to restarting it in Recovery Mode and that got things rolling again.

I built my first two custom mechanical keyboards. That’s going to be a separate post.

At work, we’ve been using Notion as our knowledge base for a few months. However, it wasn’t until watching a recent Notion Office Hours video that I realised how powerful this platform can be. The article on the PARA method mentioned in the video inspired me to put a lot more information into Notion than just text content.

An email recently informed me that “You’ve been on Drupal.org since 10/10/2008”. Wow, it’s been a while! And I still enjoy being a member of the Drupal community.

I’ve downloaded all the videos of RailsConf 2019 to my Plex server so I can watch them at the office or, thanks to Plex Sync, anywhere I have my iPad with me. Right at the top of my list was “Programming Empathy: Emotional State Machines” by Coraline Ada Ehmke. Reflexively, I was about to skip that one because I remembered that listening to her on podcasts had made me feel uncomfortable. But I decided to challenge this reaction and I’m glad that I did. I learned a lot about empathy from her talk and recommend watching it.

Weeknote 38/2019

At the end of last week, I was feeling pretty exhausted. That’s why I’m publishing this weeknote late on the following Monday. I have to have high expectations of myself, otherwise I’ll easily fall into slacking off and looking at keyboard porn all day. But I have to stop put too much pressure on myself. That’s the best recipe for burnout because I’m setting myself up for frustration despite of all the stuff I actually get done.

Speaking of keyboards, I’m still not sure if it’s self-improvement or self-sabotage, but on top of the previous changes to my keyboard layout, I’ve now adopted also the other important improvement of the HHKB layout by swapping the Backspace and Backslash keys using Karabiner Elements; now it’s much easier for me to reach Backspace with my right pinky. I was even about to buy an actual HHKB, but faced with its hefty price, I’ve decided instead to build myself two custom keyboards (one with a plastic case for travelling, one with a heavy aluminium case for my desk) that sport the “split backspace” (Tilde and Backslash) at the top right, with Backspace below, and a “split right Shift” with a small Fn key at the right edge. Until then, I’ll retrain my muscle memory with a software-defined layout. So, in short, I’m obsessing over mechanical keyboards as a way to combat both RSI and Alzheimers (that’s what I tell myself anyway). You can find my Karabiner rulesets in my dotfiles repository, by the way.

After returning from my holidays on Ibiza, I had lost all interest in playing World of Warcraft. And it still hasn’t returned. The parts of the game that I enjoy the most require group play, and good groups are hard to come by. Especially for me with my very narrow window of disposable leisure time. And people focusing on WoW Classic didn’t help my frustration either. Last month, I canceled my WoW subscription (it’ll still run for a few months) and took the opportunity to buy the three Shadowrun RPGs on Steam when they were offered as a Humble Bundle. Being able to play at my own pace is neat but I admit that I haven’t played SR much either.

Somehow, I’m finding live coding much more appealing than playing any games. In one of my streams this week, I did for the first time answer a question that someone had posted to my Discord server. That was fun and I’d like to make this kind of live-coaching a regular thing. If my brain wasn’t more or less fried come dinner time, I’d even do a few evening sessions on top of my regular slots on Tuesday and Friday morning. My next goal in this space will be to build myself an efficient toolchain that lets me churn out screencasts that aren’t live but instead more polished.