Git Rebase Is The Pikmin Of Source Control

git isn’t easy to learn, and once you do, the git rebase command seems to invoke fear and confusion in many people.  But once you learn how to use it effectively, you’ll wish you had learned it sooner–both for your solo projects and while working on a fast moving development team.

I’m going to use Pikmin to describe git rebase for you.  Not only will it make things fun, but it also expertly illustrates what you’ll be doing with your code: manipulating it to achieve a certain goal, just like you’d do in the video game.

And if you’re anything like me, you’ve tried to read about rebasing but never really grasped the concept or you’ve glossed over as you’ve looked at images of branches that try to describe the process. Continue reading “Git Rebase Is The Pikmin Of Source Control”

Dynamic Profile And Badge Switching Without Shell Integrations In iTerm2

I use iTerm2 for all my terminal work.  One very nice feature it has is dynamic profiles.  But I usually don’t want to install shell integrations on every server.  Instead, I use my dotfiles and an SSH config to change profiles.  While working across different local, development, and production systems, it’s helps my mental state to know when I’m on a dev or prod system.  I have my system setup so when I:

  • SSH to a local vagrant box, my terminal turns purple
  • SSH to a development host, my terminal turns blue
  • SSH to a production host, my terminal turns red

Continue reading “Dynamic Profile And Badge Switching Without Shell Integrations In iTerm2”

How To Create A Custom, Dynamic Inventory Script for Ansible

Writing a dynamic inventory script for Ansible can be useful for more than just getting a list of hosts to run a play against.  It can also function as a standalone command line utility for your infrastructure.

The first time I wrote one, I had a difficult time finding information on how to actually do it so I wanted to write about how to make one and then show an example of how it can be extended beyond a simple inventory script by adding additional flags to the scripts.

Let me set the scene, which may sound familiar: due to a lot of tech debt, there are thousands of servers–many of which are not tracked anywhere.  Continue reading “How To Create A Custom, Dynamic Inventory Script for Ansible”

Spacewalk–Containerized And Running In Kubernetes

Spacewalk is a decent open source project for patch management but there is no native support for running it in a container.  I’m a fan of Spacewalk and use it daily but it falls short in a few areas–namely, it’s a large monolithic application, which I’m not a fan of.  I thought it could benefit from running in a container and on Kubernetes

This blog post explains how you can run Spacewalk 2.8 or 2.9 in Kubernetes and how I accomplished it.  Whether or not you should, is a question you need to answer yourself after reading through this.  The work I’ve done is all in a repo and I have images created on DockerHub (for Spacewalk v2.8 and v2.9) or you can generate them yourself from the provided Dockerfiles:  Continue reading “Spacewalk–Containerized And Running In Kubernetes”

Tame Your Patreon Shipping Problem With Ansible

My work on the Pi-hole project led me to a start a Patreon page.  Like many creators, I spent a while determining what rewards users would want.  But unlike most users, I did not have a problem fulfilling orders.

Apparently, this is a big problem: project creators spend more time shipping and fulfilling orders than actually working on their project.  But for me, fulfilling the orders my patrons took me all of 5 minutes.  In this post, I’ll explain how I did it using an API. Continue reading “Tame Your Patreon Shipping Problem With Ansible”

Fully Automated: DeployStudio Dual Boot

I was recently tasked with deploying dual-boot Macs to all new staff.  Naturally, I wanted this to be as automated as possible so it was repeatable and consistent.  I already knew how to use an answer file to fully-automate the Windows side of the deployment.  And I also knew how to fully automate the Mac side of things.

I did need to learn how to make Windows 10 into a deployable .pkg, which was the final piece needed to automate the entire dual-boot deployment process. Continue reading “Fully Automated: DeployStudio Dual Boot”

How To Make An Automagic Windows 10 Boot Camp Install .pkg

I spent a long time trying to automate a dual-boot deployment of macOS and Windows 10.  The reason being is that it’s very useful to only buy a single piece of hardware (Apple) and have it run Windows and macOS (and maybe Linux, too).  But getting two completely different operating systems to deploy to a single piece of hardware in an automated fashion is a challenge.

This post describes how I went about creating a sysprep’d Windows image in a .pkg format, so it could be easily run on a Mac or deployed through something like JAMF. Continue reading “How To Make An Automagic Windows 10 Boot Camp Install .pkg”

Run PJL Commands From A Shell Script

I love learning obscure and under-utilized things in the tech world; PJL commands fit that bill.  You can use PJL commands to get and set printer preferences.  This includes getting the page count, setting the serial number, and changing the LCD display message.

I was recently tasked with evaluating our printer usage to determine if we could save money by removing low-usage printers.  Like many companies, the majority of our printers were HPs, and we were on a tight budget, so something like Papercut was out of the question.  I also wasn’t about to go around to each printer and print out the usage report, nor did I want to enter the Web interface of every printer to manually get this information. Continue reading “Run PJL Commands From A Shell Script”

Using Dropbox For An Easy Restore Of All Your Computer’s Settings

Just to be clear, Dropbox isn’t backup software; it’s a syncing service.  If you delete a file and that change is synced, and your file no longer exists.

I really love the things you can do with Dropbox.  And since I’m stingy, I wanted to use Dropbox for backing up–and more importantly–restoring my computer.

One thing I always hated about getting a new computer was losing all of the customizations and settings that accrued over time.

Before this little trick,

I would spend an entire day re-configuring my computer to get it back to the way it was.

Continue reading “Using Dropbox For An Easy Restore Of All Your Computer’s Settings”

Roll-your-own Anonymizing Email Server

This post isn’t about a specific security breach, but rather a post to educate you on how to better protect your online identity.  The term “anonymize” is used loosely for lack of a better word.


  • Create a unique email address that forwards to your real email for every site you sign up for.
  • Create a unique password for each site you sign up for
  • Don’t reveal your real email address again
  • Make hacker’s work more difficult

Continue reading “Roll-your-own Anonymizing Email Server”