CJ Eller

Classical Guitar by Training, Software by Accident

There's a phrase that's often from technical circles: whatever the problem is, it's always DNS. Working with a lot of AWS lately, I find another acronym that is taking the place of DNS.

IAM.

Whatever the problem is, there's a good chance that Identity & Account Management could be the issue. It's a paradigm shift I've had to make from past experience.

Reminds me of what Scott Piper mentioned in his AWS CTF FlAWS:

Through a series of levels you'll learn about common mistakes and gotchas when using Amazon Web Services (AWS). There are no SQL injection, XSS, buffer overflows, or many of the other vulnerabilities you might have seen before. As much as possible, these are AWS specific issues.

The resources in a VPC attached to a transit gateway cannot access the security groups of a different VPC that is also attached to the same transit gateway.

The seconds it takes for you to read this sentence outweighs the hours floundering at doing the opposite of what it says. All it took was a little bit of time to look into AWS documentation to find a single sentence. A single sentence that negates all of the clicking and scrolling and typing through AWS console esoterica. It's another curious case of measuring twice and cutting once, though I suppose the modern interpretation goes something like this:

Strain your eyes twice, type once.

As cheeky as it sounds, I find that in this sort of Cloud & DevOps adjacent work I am doing aligns with this method. Sure there is a lot of “action,” but usually that follows much reading, discussing, reviewing, testing. Typing once isn't just typing a single character, but making sure that you type with conviction, knowing that what you're typing is based on a strong foundation of deliberation. In a way, this practice conserves those finite keystrokes we have and makes them work towards something that much better.

Strain your eyes twice, type once.

Lately I've found myself opening up a text editor every day at work and commentating on my daily tasks.

This not only acts as a sort of archive but also as a means of troubleshooting. Typing out my thought process acts as guardrails when approaching a problem. With those guardrails I can navigate down each possible solution until the proper fix is stumbled upon a couple paragraphs later.

It reminds me of something I heard of lately called rubber duck debugging:

The rubber duck debugging method is as follows:

  1. Beg, borrow, steal, buy, fabricate or otherwise obtain a rubber duck (bathtub variety).

  2. Place rubber duck on desk and inform it you are just going to go over some code with it, if that’s all right.

  3. Explain to the duck what your code is supposed to do, and then go into detail and explain your code line by line.

  4. At some point you will tell the duck what you are doing next and then realise that that is not in fact what you are actually doing. The duck will sit there serenely, happy in the knowledge that it has helped you on your way.

Perhaps I am using the text editor partly as a journal and partly as a rubber duck.

Just finished my first play through of Sekiro: Shadows Die Twice. It's reminded me of why I enjoy single player games so much. Sekiro is actually the first one I've played in about a decade. What a hell of an experience — challenging, rewarding, awe inspiring.

Now I feel like I want to get back into these kind of games more.

No matter how many reminders I give myself about chores, I'm bound to forget them. I don't forget about scrolling through Twitter or playing a video game. Just about getting my truck's oil changed or replacing the house's dryer vent.

This gets me thinking about Hijack Your Feed, a browser extension for MacOS that transforms Twitter ads into your todos:

Hijack Your Feed generates eye-catching posts based on your Reminders. Designed to nudge you toward your intentions… and away from doom-scrolling.

[...]

Harness the power of persuasive design for your own benefit. Hijack Your Feed transforms any task—no matter how boring—into content worth consuming.

I'm intrigued by the idea of having your todo list embed itself within the things that distract you from checking off your todos in the first place. Because we're all used to the idea of eating your vegetables before having dessert. An analogous practice of this mindset could be your game console preventing you from playing something until you complete an item on your todo list.

What Hijack Your Feed proposes is different. It acts on a subliminal level. Imagine playing a video game that is able to pull in your todo list and mentions todo list items in-game, maybe even incorporates them into the story — not just on a surface level but in a fundamental way. This isn't preventing you from playing the game but is rather using the game to get you thinking about the things you want to get done outside of playing the game. All, of course, with the hope you'd go out with more eagerness to complete those tasks.

This isn't exactly what Hijack Your Feed is going for per se, but it gets me rethinking my perspective on todo lists.

Today I giddily discovered AWS CLI aliases — a way to create shortcuts in the AWS CLI for frequent commands or longer scripts. That excitement led to a measured meandering.

Shortcuts, whether for keyboard or a CLI, seem to require a pain-point for them to be useful. I use the AWS CLI pretty haphazardly these days. One-off commands reign supreme. But who doesn't use a CLI like that sometimes (if not all the time)? I don't think I've really understood what the bread & butter AWS CLI commands will be for my current role. T

That's the thing I take for granted with shortcuts of the keyboard variety. I know what my frequent commands are from a text editing or web browsing perspective since I engage in those activities a lot. That frequency better brings out the pain points that are addressed with keyboard shortcuts.

Why try to find shortcuts for a path you don't know much about? Well, sometimes the shortcut can be the default path for someone. They didn't know there was a trail, rather they assumed the shortcut was the trail. Some things, however, are better if taken from the path first. Familiarizing yourself with the path then leads to a better sense of where efficient shortcuts should be.

Perhaps.

Feel like I am running around a mile a minute and yet I still need to type something here. Sometimes it's okay to not have much to say. Writing is often compared to a muscle. Reps count. You still have to show up, even if it's not as pretty. The show must go on.

I think of performing a piece and having it be a bit sloppy. My teacher would tell me that it's okay. That this is why we practice performing. I wonder if the same could be said for writing.

Today I tried to use a keyboard shortcut in one program that I often use in another. It didn't work. Well, the shortcut did work. It did something else instead of what I wanted it to do. I never noticed this until now, when I use the shortcut more often than I once did before.

This reminds me of guitar tunings. With a particular tuning, you get used to a way of navigating the fretboard — scales, chord shapes, the like. When you play with a tuning that you're unfamiliar with, that ease you were used to becomes hindered. Try to play a pleasant chord like you used to and it now sounds cacophonous. Not to say one tuning is better than the other. You just navigate it differently and have new sonorities available.

I suppose keyboard shortcuts could be approached no differently. Each program could be viewed as a different tuning by which you navigate the fretboard of the computer that is the keyboard.

Then again, programs (and OS's for that matter) are extensible far beyond the guitar. That is where another approach arises — just change the keyboard shortcut in that one program to match what you're used to. The computer becomes the universal tuner by which each program adjusts itself.

Is one way better than the other? A silly question. It's more compelling to think of the two in dialogue — the universal tuner versus each program with its own tuning.

Nate Dickson's post Anno 2205: Own an Economy! is a delightful read in that it highlights the power of games to be educational, but not in the way you typically think.

Nate remembers a game used in an operational management class for his MBA — a clunky and convoluted gamification of teaching operational management.

Then he mentions the city-building and economic simulation game Anno 2205:

It starts simply enough. Produce rice for your people to eat. Also produce water. To do this you build factories. In 2205 water comes from desalination plants on the coast. Rice comes from highly automated rice farms.

Then you start producing things that need two steps of processing. Mine this metal, then make it into something that your people want. As you produce fancier goods you can promote your employees (who are also your primary customers, the supply/demand curves in this game are weird) which will make them ask for still fancier goods, which will allow you to promote them, which in turn means they will pay more for goods...

And then you get into real ops management. Before too long you are managing multiple sites, each with different strengths and unique goods. Your “temperate” region is the cheapest to build on, and will be your moneymaking region. The “Arctic” zone produces some specialized goods that you need for other workflows. The orbiting space station (2205, see?) does research. The Moon produces very specialized goods. You start to need raw goods from the Arctic combined with processed goods from the Temperate region to be shipped to the Moon to build an awesome new resource there...

His description goes on, but I want to focus on this insight Nate leaves:

It's interesting to me that this is a game. This is literally part of my MBA education, handled far better than my professors ever could have. The motivations for your actions are made clear. The payoffs for handling your inventory levels correctly are explicit. And it's honestly really fun.

From Nate's observation, it seems like Anno 2205 doesn't beat you upside the head with the educational concepts as the little simulation game in his class. Then again, the game doesn't replace a text book teaching you about operational management. That doesn't detract from it either. The educational value of Anno 2205 lies elsewhere.

It seems like Anno 2205 gives you a context through which to think of operational management, how to think of trade-offs, how to think of the ever-swinging pendulum of supply & demand. Capturing the spirit of operational management is just as valuable as capturing the concepts and definitions. That is what makes Nate's description of the game so intruiging to me.

These thoughts stem from a wonderful talk the game designer Jonathan Blow gave called “Video Games and the Future of Education.” Definitely recommend you watch/listen to it. Nate's post reminded me of many of Blow's own thoughts on the educational value of games:

I have my classical guitar in the corner of my office. When working, there'll be a time when I have to wait for a minute or two for a process in AWS to finish or for code to compile. That pocket of time is just enough for me to break out my guitar and play a piece or improvise. It feels like playing hooky, but I also couldn't help but think it's a better use of my time than checking my work email. Interestingly enough, a recent episode from Deep Questions with Cal Newport (Ep. 84), gave me the explanation for why that was the case.

Newport talks about keeping a cognitive context free from distractions that require resources from that cognitive context. The example in the episode is compiling code. What he suggests not to do is check your email. That frazzles your cognitive context and sends you down a spiral of responding to email rather than focusing on the programming project you were on already. He instead suggests an activity that operates from a different cognitive context, preferably a simple physical activity:

Keep your mind occupied without changing the relevant networks you already have queued up and ready to go for the cognitive work that you're in the middle of [...] It can really preserve a bit of cognitive context because it gives you something to focus on that's using a different part of the brain.

Playing guitar checks those boxes for me. I never thought about how it preserves cognitive context until playing a little bit today when I was stuck on a work problem. Even though I concentrated on playing a piece, I could still keep my focus on the issue — the cognitive context remained. If I were to go to my email instead, everything would go out the window. It doesn't with music.

I guess music activates a different part of my brain, which is so obvious yet somehow wasn't in this context of work.