Software Development Articles

Add column after another column in MySQL

By default, new columns are added to the end of a table in MySQL. This works well most of the time, but sometimes when you’re retrofitting a column into a table, you may want it to be adjacent columns closer to the start of the table. The ALTER statement makes […]

Docker Desktop won't reopen on macOS

After months of waiting, I finally received the MacBook Pro that I had ordered back in February. Thus far, it’s been a solid machine with crazy battery life, but not without it’s quirks. One recent quirk was with Docker Desktop. I had the app open and I quit it instead […]

How to convert JSON to CSV in JavaScript

Last week we discussed converting CSV to JSON in JavaScript. This week, we’re going to talk about going in the opposite direction, converting JSON back to CSV. Similar to last week, we’re going to use the immensely popular papaparse library. As it turns out, even though it’s touted as the […]

How to convert CSV to JSON in JavaScript

Parsing CSV data isn’t as easy as splitting the string up into individual lines, then splitting it by the delimited (in this case commas). Some of the values may have quotes around them, sometimes the values themselves have line breaks. Then there’s the potential that the data itself is malformed. […]

Tracking daily active users (DAU) with Redis

Daily active users, also known as DAU, is the number of unique users that have interacted with a website or application in a given day. We’re going to discuss how to track this metric, in a language agnostic fashion. The concepts discussed and Redis commands utilized can be implemented in […]

How to display a JavaScript array in HTML

From time to time, I see a search query that made it to my blog that piques my interest and inspires a post. This is one such post. How does one take an array (presumably in JavaScript) and display it in HTML? Now in this day in age, I would […]

Splitting strings and keeping the separator in JavaScript

When splitting strings, the majority of the time, I don’t care about the separator (or delimiter), just the strings that exist between it. In JavaScript, that’s very simply with .split(): 'one,two,three,four,five'.split(','); Which will yield an array of strings like this: ['one', 'two', 'three', 'four', 'five'] Great! But if we want […]

Downloading files in Node.js with Axios

I’ved used Axios a ton, but I’ve only ever used it to make AJAX requests. In fact, I don’t ever remember a time when I’ve needed to download a file and save it to disk in Node.js. That changed recently with a new side gig I’ve been helping out with. […]

Best way to pin TypeScript as a dependency

While I’m a pretty big fan of TypeScript, there’s some stuff that drives me up a wall. One of those things recently came to light during the release of TypeScript 4.4 on a Friday afternoon. So it was nearing both end of day and end of week, and we were […]

Remove unnecessary files in node_modules

As the meme goes, the object with the largest mass in our universe is the node_modules directory. Generally speaking, storage is cheap, and while an unkept set of dependencies can be quite messy (and often times a security hazard), the size of your node_modules directory tends to not be of […]

Debugging an AWS Lambda that stopped working

My wife and seed would agree that talking about AWS Lambdas are in my “big three” of things to not shut up about, along with fishing and professional wrestling. Regardless, I do love them so (both the Lambdas and the fam bam). As I’ve grown to use them more and […]

Setting an authorization header when using file_get_contents with PHP

Going through some of my old lists of blog post ideas this weekend. While it’s not something I’ve needed for a minute, it’s still something worth taking about. How to set an authorization header when using PHP’s wonderful file_get_contents() method. Similar to an old post of mine talking about specifying […]

Find unused npm dependencies

As much as I love to sling code, I love that we live in a world where you can stand on the shoulders of giants and easily leverage other people’s hard work by way of Open Source libraries. Simply referred to as “dependencies”, these little code gems can save a […]

Repeating Strings in JavaScript

While cleaning up some of my old notes today, specifically stuff I jotted down that would make for a good blog topic, I happened upon the topic of repeating strings in JavaScript. Things are really easy in ES6+, but if you happen to still support Internet Explorer for some crazy […]

Uninstalling dev dependencies with npm

While looking into some deployment issues recently, I ran into some logic that was in dire need of being refactored. The logic in the build process was installing all dependencies with npm, then removing the node_modules directory, just to install the production dependencies again. Yes, you read that right, the […]

Overengineering Challenge: Is Number Even or Odd in JavaScript

Code golfing is fun, and makes for great blog posts. The problem is, the world is flooded with posts attempting to show you how to write the best / most concise code imaginable. With that, I decided that it would be a fun challenge to attempt to take a simple […]

Recursively create directories with Node.js

Recently, while working on a new project, I needed to create a series of nested directories. From the command-line, it’s easy enough, just pass -p to mkdir and it will create all of the parent directories automatically. With modern versions of Node.js, specifically 10 and above, you can achieve the […]

Displaying an entire object with Node.js

For the most part, I do the majority of my debugging with Node.js / JavaScript’s console.log(). It’s quick and dirty but it gets me what I’m looking for. The exception being when I am working with larger objects, specifically any object that is nested three or more levels deep. Here’s […]

Juggling assertion syntax between PHPUnit versions

I’m no stranger to the nuances of testing against different version of PHP and PHPUnit, but my previous issues were related to the environment itself. Recently I ran into an issue with different syntax between versions of PHPUnit, specifically assertRegExp() being deprecated, which was throwing an error. Not only was […]

Passing a test without assertions with PHPUnit

While it may seem counter intuitive to have a test that doesn’t have any assertions, PHPUnit’s unique method of sharing data between tests can put you in a situation where you have a test that just doesn’t need to actually test anything, and simply returns some data. In those scenarios, […]

How to comment source code

One of the biggest offenses that I’ve seen over my entire software engineering career is a total disregard for code comments. I don’t subscribe to the idea that code should be self documenting. I do believe that human are inherently forgetful and code left undocumented is code that will bite […]

Allow dots in paths with webpack-dev-server

Generally speaking, I don’t use dots (periods, full stops, whatever else they may be called) in the URI for a website. That was, until I made the . an allowable character for user names on one of my projects. Allowing the character was a big deal at all with Express.js […]

How to get the first and last item from an array in MongoDB

One of the great features of MongoDB is the ability to store an array in a document. While I’m fully aware that there are issues with storing unbounded arrays in MongoDB, due to document size limitations, there are times when you may want to store data in an array that […]

How to set the background color of a Google Chart

As luck would have it a Google Chart I had created some time last year, which was looking great for a while, recently decided that the background color of the chart itself was going to switch from the color I had set to the default color, white. This was quite […]

Increase memory limit for Composer

Gone are the days of stitching together disparate services in an effort to create a solid continue integration and deployment pipeline. GitLab has had it’s Runners for a while and recently GitHub stepped into the mix with their Actions offering. Because of this, using external services like Travis CI or […]