Zsh Vi Mode and Command History

I’ve been using zsh for about 15 years but despite this I’ve noticed lately I’m pretty inefficient at editing commands in particular, mostly because I don’t have a clue about emacs keybindings. I am however very familiar with vi bindings but my config was never properly setup for zsh, I couldn’t search history like I could in emacs mode and I’ve been blundering along in this state for too long. (turns out it was just because the bindkey’s were not declared after doing bindkey -v to go to vi mode, oops)...

November 7, 2020

When Not to Write a Kubernetes Operator

The Kubernetes Operator Pattern has a lot of appeal and I’ve led a team that has written and maintained several over the past three years. We’ve learned a few things in the process and I wanted to write up some thoughts around when you shouldn’t be writing an operator. ...

September 12, 2020 · Devan Goodwin

Terminal users, fasd is worth learning

I spent some time recently revamping my zsh setup, something I haven’t really spent any dedicated time with since about 2006. In transitioning to oh my zsh I discovered fasd, a command line productivity booster. Essentially it tracks the files and directories you work with in your terminal, and ranks them by “frecency”, both frequency and recency. You can then reference them with short, usually single character aliases and fuzzy matching....

February 24, 2020 · Devan Goodwin

Buying A Used Thinkpad T470s

I’ve generally been a desktop guy for most of my life, but since unboxing a X1 Carbon (pictured left) from work last year, I’ve been falling in love with Thinkpads. I’d had an X230 back around 2011 which was a great piece of hardware, ran Linux like a dream, but it was relatively thick and heavy with a very dim display. I ended up going back to a desktop workstation for it’s replacement....

February 17, 2020

Becoming Less Reliant on Google: Location, Browser, Search

One of my new year’s resolutions is to be less reliant on Google by this time next year. I’ve wanted to do this for a long time, I’m sure many others do as well once we realize what’s involved and why those services are free. However it requires time, maybe in some cases money, and most of all a loss of functionality because there’s no denying Google builds great stuff. In the end I’m generally just complacent and end up accempting the warm embrace of slick free services harvesting every possible detail about me to power advertising....

January 4, 2020

Fedora, Vagrant, Libvirt, and Functional DNS

For my work on OpenShift I wanted a way to use my local workstation as a test cluster with vms for a master and multiple nodes. Ideally it would be possible to quickly teardown and rebuild the whole cluster, but I also want reliable hostnames (and IPs) across each rebuild. This post outlines a way to do this with Fedora (25 as of writing) and Vagrant. The key to getting Fedora configured such that the hostnames and DNS will work is this post by Dominic Cleal....

June 14, 2017

Fetching The Latest Git Hash For A Branch With Ansible

I’m currently working on an Ansible role to deploy an application to OpenShift. My application template uses a BuildConfig with a dockerStrategy, so when a build is run it runs against a remote git repo and branch. I wanted my role to ensure that the current deployed application is up to date with the git branch, so we can push changes to that branch and whenever ansible runs it will know to reprocess the template, triggering a new build and deployment....

June 8, 2017