Welcome to My Blog

I am a seasoned software developer. I share what I have learned, alongside the mistakes that I have made and continue to make so that you don’t have to. However, if you code, you too will make mistakes and learn along with me.
Scoops of chocolate ice cream in a bowl

Scoop Over Chocolatey: A Windows Package Manager Transition Guide

Introduction For the last decade, I have been using Chocolatey as my package manager on Windows. I recently needed to install software on a new machine, and decided that now was an ideal time to revisit some popular package managers and perhaps make a switch. One of my favorite benefits of package managers is the ability to install software in a consistent way across a variety of different applications. Having a command line tool with remote repositories of current versions of software makes it easy to keep applications up to date. Finally, it makes them easy to remove in a unified way should they no longer be needed. When setting up a new machine, the ability to have a script that installs most if not all the applications that I will need on that machine using such a tool is also highly beneficial. ...

March 4, 2024 · 20 min
Ball Python

Excel to CSV Using Python Pandas

Introduction Python Pandas is a powerful package used by data scientists to analyze data. My recent use case was far more pedestrian. I had one vendor that was providing a data file in Excel format, and another vendor that needed to consume that data in a completely different schema as a CSV file. As is often the case, the file I was receiving was formed oddly. I’m sure you can relate. The primary problem was that the columns were not all defined. They were unnamed and formatted for some previously defined form, such that the first column might be a person’s name, the second column might be the first line of the address, or a second person’s name. ...

July 26, 2022 · 7 min
Man holding keys

Is Identity GUID or Is It Int?

Introduction I have long waffled on whether a GUID or integer make for the best primary key. I wrote this with the goal of refining or challenging my current opinion. The identity, or primary key, uniquely identifies an entity or record. To be clear, ‘identity’ is a Domain Driven Design concept that describes an immutable identifying attribute of an entity (not to be confused with a SQL Server identity column, which is an automatically incrementing integer). A ‘primary key’ is a database concept that serves the same purpose for a record and enforces referential integrity. In this post, I will use the term ‘primary key’, since we are focusing on the database. The concept of an identity attribute is more than just a database concern, it is a domain concern, but it is important to consider where these concerns intersect. ...

April 19, 2022 · 7 min
Human skull holding toothbrush between teeth

The Disposable Toothbrush

I know the inventor of the disposable toothbrush. They would stay at hotels that provided soap, shampoo, conditioner, etc., but a recurring issue was that they would forget their toothbrush, and hotels didn’t furnish a solution. It seemed obvious that hotels should have individually wrapped toothbrushes, just as they had other toiletries. Why didn’t anyone make an inexpensive short-term use toothbrush with toothpaste already applied? So, this person invented it – only they didn’t. They did in fact come up with the idea, as I’m sure did many others, but they never acted on it. Someone else eventually did. To this day, every time this person sees one, they declare how it was their invention. ...

March 30, 2022 · 2 min