I recently realized it’s past time to replace my second hand Core i5 ThinkPad T470s, processor can’t seem to handle modern PackageKit, battery is toast, display and sound are just depressing. After a successful multi-decade career as a software engineer, I reasoned it’s probably ok to get some decent hardware for myself for the first time in my life. I am very drawn to the current MacBooks, Apple silicon looks and sounds amazing.

Elon’s Twitter meltdown and the rise of Mastodon arrived at an unusual time for me. I read Cal Newport’s Digital Minimalism this fall and it really resonated with me. I spend too much time on my phone and I have for years, suffering the physical and mental consequences as many of us do. My habits started changing through the pandemic when I realized I just couldn’t take the never ending stream of doom and everyone’s hot takes about it any more.

A quick note on how to use with Hugo, including pipelines and overrides. From my limited experience it looks like overriding bulma variables is essential to getting your site to look the way you want, especially for color. Pull bulma into your project. I did this with npm, you can just download and drop somewhere in your project as well, but you’ll need to adjust a path in the last step.

Looking back at my new year’s resolutions for the last decade or so, taking up photography has been on the list virtually every year. I’ve tried in the past, which went ok for a time, but as smartphones ate the world I eventually lost interest in lugging around a camera and drifted away from it. It’s been developing for a few years now, but 2020’s pandemic really helped me realize how much I love to be outdoors, in the woods, on the coast, and in the ocean.

Nodes? Where we're going, we don't need.... nodes. (what if kube was just the API that could talk to anything?) prototype and call to ideate at — Clayton Coleman (@smarterclayton) May 5, 2021 Earlier this week Clayton Coleman presented Kubernetes as the Hybrid Cloud Control Plane as a keynote at KubeCon EU 2021, and revealed the kcp prototype. kcp is exploring re-use of the Kubernetes API at a higher level to orchestrate many different workloads and services across the hybrid cloud.

Earlier this year I did a short talk for Halihax, a local technology community, providing an introduction to the Kubernetes operator pattern. This was my first attempt at giving any kind of a talk (outside of demos at work), but hopefully it will prove useful to someone out there.

I made a resolution for 2020 to be less reliant on Google by the end of the year. This post is an update on where I ended up in that process. Replacements E-mail This one was actually pretty easy as e-mail has increasingly become less important to me over the years, but I ended up paying the $5 a month for FastMail. Absolutely no regrets here, they’re good at importing all your GMail, great Android app with dark mode, better privacy, does everything I need.

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)

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.

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.

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.

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.

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.

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.

I’ve just uploaded a v1.11 release of NetWorth, my personal finance / net worth tracking / budgeting app for Android. This is a pet project, just modelling how I thought and have learned about personal finance and retirement planning. I was hoping to do a grand 2.0 release but as ever time evaporates and I couldn’t quite get there yet. However I did manage to find some time for a lot of nice improvements and figured it was worth pushing them out until I get working on it again.

On my personal VPS I host a handful of websites accessed from a variety of domains and sub-domains, as well as a few more involved webapps such as tt-rss. Historically applications that cross multiple programming languages and databases have been a terrible pain to deploy and keep running on a private server, but since containers have arrived this has become a lot easier. On my server, I wanted to have a web server listening on the standard http/https ports proxying traffic for a variety of sites and applications, based on the domain/sub-domain in the request.

tito 0.6.10 was tagged and built this morning, brought to you almost entirely by the newest tito committer skuznets. Changelog Do not undo tags when git state is dirty ( Parse options in tito init ( Only use rpmbuild --noclean if it is supported ( Explicitly define indicies in formatting statements ( Achieve quiet output from rpmbuild without passing --quiet ( Update the ( Correctly pass verbosity options through the builder CLI (skuznets@redhat.

I’ve just pushed a release of tito 0.6.9 with the following changes: Simplified version and release update logic ( Added --use-release flag for tito tag ( Fix typos/errors in man pages ( Explain how automatic tagging was done ( Add support for bumping version for Cargo projects ( Right now this is available in my Copr repo, and builds are on their way for Fedora and EPEL. My thanks to all who contributed patches!