In Obsidian, I’m starting to leverage callouts and I like them.

Callout in Obsidian

Kubernetes Lessons for today

Today’s Kubernetes learnings focused on scheduling as well as labels and selectors.

Every pod has a field called nodeName that by default is not set. The scheduler looks at all pods. If it finds one that does not have this field property set, it will rely on the scheduling algorithm to find the right node for this pod. The scheduler will create a binding object and assign a node to the pod.

Labels are found under the metadata section in a definition file. They are essential to configuring Kubernetes and we can setup configurations that leverage the labels. Here’s an example of how we might view pods with the label `app: App1’

kubectl get pods --selector app=App1

I drove an orange MG Midget. I bought an orange iMac. It barely fit in the trunk but I made it work.

As I make my way through the ‘Learn Object Oriented Programming’ course on Boot.Dev, the sections on Inheritance and Polymorphism are quite challenging. I am only a few chapters away from completing the final section on polymorphism and have decided to go back to the start of the inheritance section and start this part over. Why? I don’t know it well enough. I’m not interested in going through the motions simply to move to the next course. I need to fully grasp it or else I’m wasting my time.

While I have been taking notes throughout, I’m going to take a more detailed approach to my note-taking going forward. I’m going to write my notes on each topic as though I were explaining things to another person. In this way, I hope to really understand the topic at hand before moving on to the next chapter.

To symlink my dotfiles, I use GNU Stow. Most tutorials I have encountered assume you are placing your dotfiles directory at $HOME/dotfiles and thus, the command in that case would be…

stow .

since by default, the target directory is the parent of stow dir.

In my case, I keep my dotfiles directory at /Users/dw/Repos/github.com/donovanwatts/dotfiles so I need to explicitly define home directory as the target using the -t option.

stow -t /Users/dw .

On my Mac I use Hyperkey to remap some keys. In particular, I remap left control to a hyper key, caps lock to left control, and a quick press of the caps lock key to escape.

This morning, I tried opening Arc via Hyper-A but it didn’t work. That’s odd, I thought. Then I tried creating a split in tmux and that wasn’t working either. WTF! Why is this happening?

Then I remembered… last night Hyperkey had an update and didn’t restart itself afterwards for whatever reason. I’ve can’t function without my custom keys, man.

Hyperkey settings

Finished the Learn Git course on Boot.Dev. That’s Part One. I’ve updated my global git config to keep a linear history:

git config --global pull.rebase true

Perhaps my favorite learning is displaying a tight log with:

git log --oneline

When I want to see a fancy ASCII art representation, I type this:

git log --oneline --graph --all

About 80% complete with the new Git course on Boot.Dev by The Primeagen. I feel like my basic Git chops are pretty strong. This course has already upped my skills ten fold. Looking forward to part two in a month or so when it is released.

I’ve been rocking tmux default key binds for a few weeks now. It’s fine. I had no problem getting used to them and my life is simpler for it.

Ricoh…

We would like to inform you that the distribution and support of our driver software “ScanSnap Manager” will be terminated in October 2024, as we have already ceased the provision of its new functions.

But I like ScanSnap Manager. I imagine ScanSnap Home is going to be a pile of crap.

Diving into Prometheus and Grafana this morning. Installed the Helm chart to Rancher Desktop.

Today I learned about K9s to go spelunking around in my Kubernetes cluster. I’m glad I’m learning how to manage the cluster from the command line but I see the power and efficiency of being able to hop around in K9s as well.

When my brain starts to hurt from learning I turn to MST3K on Twitch. Always streaming.

To configure load balancing in Rancher Desktop, I changed ClusterIP to LoadBalancer in my yaml config file. Upon application, Rancher created an external IP to access the service. However, the IP was in a different subnet than the one on my Mac. To solve this, I needed to check the box in Preferences to allow Administrative Access. After checking this box and entering my password, a new IP was generated that was accessible and within my subnet.

Rancher Desktop Preferences

Universal Control on macOS/iPadOS is great. When it works. Often it loses the connection and the only way I’ve found to reliably get it back is to restart both devices. If only it worked universally, all of the time.

I’m looking forward to meeting up with the Rocky Python interest group this Sunday for lightning talks.

Learned Kubernetes deployment fundamentals today. Pretty fun and powerful to be able to know how to make it work, all from the command line.

Full circle… Calendar—> Fantastical —> BusyCal —> Calendar. I think I’ll keep it simpler now that I have few scheduled obligations.

It was ‘move to school’ day for my fifth grader so we walked instead of driving. Why don’t we do that more often? It was so nice.

I now have a profile README on my GitHub page. If you create a public repo that matches your username, then you can edit the README.md file and it’ll show up at the top of your page.

GitHub profile README