Posts
Streamlining Development with Project Template Solutions
In the fast-paced world of software development, efficiency is key. One of the most time-consuming phases of any project is the initial setup. This phase involves configuring environments, setting up directories, integrating libraries, and ensuring that everything complies with the latest security standards. Fortunately, project template solutions offer a streamlined approach to kickstarting new projects, significantly reducing the setup time and allowing developers to focus on what they do best: coding innovative features.
read more
Posts
Enabling Google Analytics on Your Hugo Site: A Step-by-Step Guide
In the digital age, understanding your audience is key to crafting content that resonates and engages. Google Analytics stands as a cornerstone tool for webmasters, bloggers, and digital marketers, offering a wealth of data about visitor behavior, traffic sources, and content performance. If you’re running a website powered by Hugo, integrating Google Analytics can provide you with actionable insights to help you optimize your site and content strategy effectively. This guide will walk you through the process of enabling Google Analytics on your Hugo site, ensuring you have the necessary data at your fingertips to make informed decisions.
read more
Posts
The Rationalist's Fence
As software engineers, we are constantly creating. But there are always times that, rather than build out new features, we must support older features to cover up for edge cases that weren’t foreseen during the original development process. More often than not, this work is benign, but sometimes, there’s a certain piece of code that constantly seems to require maintenance.
We’ve often wanted to just remove and re-write this functionality, but, depending on your team’s leadership, you may not always be able to make the change you want because it exists for a reason, and we cannot remove something if there’s a good reason for it to exist.
read more
Posts
Good Systems Run Themselves
When large teams of people are tasked with maintaining what should be a simple project, there is a large degree of inefficiency. These scenarios can be referred to as “brute force development”. Rather than be clever with the resources available, you force an outcome with an abundance of capital. This is similar to “brute force algorithms”1 in that you’re targetting every single eventuality rather than reducing the focus and only targetting what’s immediately important and economical.
read more
Posts
All Code Is Bad
All code creates a more complicated and harder to maintain world. Technical debt does not only apply to “bad” or “near-sighted” code. It applies to all code. If you add a line, you’re adding an untested layer of functionality to something that was working in a specific way beforehand - even if that way wasn’t fully functional. The same thing happens in pop culture. If you exist on the tip of the culture spear, you’re consuming all sorts of raw media that doesn’t necessarily fit into the cannon of human experience and may not live past the cultural filter in a decade’s or two decade’s time.
read more
Posts
The Enemy of Good
There’s a common saying that “Perfect is the enemy of good.” In our modern society, we often focus on perfection - the model on Instagram or TikTok or some Hollywood hunk in the latest movie. As such, we’ve conditioned ourselves to only accept - or at least primarily lean toward - the “perfect” solution rather than the “good” solution. In doing so, we almost obsessively spend as much money on whatever the latest product is to bring our lives in line with the lives that we see through our digital windows.
read more
Posts
To Change One's Mind
I have a working theory that, at some point in everybody’s life, they decide that they’re done learning and are just going to start reacting to the things around them as they come and either be angry if it conflicts with their internal model or take credit that it adheres to their beliefs perfectly. Now, I’m not a scientist, but I’m capable of coming up with my own theories about the world and informally exercising it.
read more
Posts
Have Opinions
You should definitely have your own opinions. Don’t go to the internet to discover what you should think. It’s alright to discover new tools (or toys) to use in your everyday life, or to learn more about those tools (or toys), but why would you pass over something that could be very useful to you for a specific, niche purpose just because it doesn’t have the general appeal that everybody’s starving for nowadays?
read more
Posts
Do Repeat Yourself (Sometimes)
Everybody knows the DRY principle1, and it makes a lot of sense. You really don’t want to have to copy and paste the same code over and over again. But I’d say that, even worse than copying the same code, is building out a common code base that doesn’t grow very well. As we add functionality, we want to do so in a way that doesn’t conflict with the general purpose of the area that we’re adding the code to as a conflict in purpose creates an existential problem.
read more
Posts
Code's Shadow
Nothing, in the presence of light, can exist without its shadow. When you finish a feature, you can not see it’s shadow. For this, you must shine your light on it by writing tests. In my mind, the tests themselves are the shadow. They’re the imperfect negative of your work that demonstrate its efficacy. As the work rises up against the sky, the shadow stretches across the ground even longer.
read more