SEO is Easier Than You Think

Posted on

After several years of working in web dev and SEO, I’ve come to the realization that SEO isn’t really that hard. That’s not to say that there aren’t any challenges in SEO, but that overall, you can simplify SEO down to a few key ideas. I’ll be writing a companion article about the challenging things later as well. Search Engine’s Goals Google’s goal for search is to bring you the best results for your query possible.…

Read more »

WWW or no-WWW

Posted on

Should you use the www. prefix in your domain name or not? Here are a few reasons why I think you should.

  1. Using a Content Delivery Network (CDN) As your website grows larger in scale (or for reliability / DDOS mitigation), you may need to use a CDN. CDNs work by caching your website content on a variety of servers around the world, to reduce the load on your web server(s) and improve performance by removing latency for visitors far away from your servers’ location.

Read more »

DNS Basics for Developers

Posted on

Overview When I first worked with DNS I was a bit confused, but it’s actually a very simple system. DNS is essentially a key-value store that maps records pertaining to your hosting environment with bits of data needed to interact with it, such as where to find your server and how to connect to it. The majority of the time, DNS is being used by browsers to connect to your website, so let’s look at it from that perspective.…

Read more »

The Obscure Windows Battery Issue

Posted on

I’ve had a hard time finding any information about this on the web, so sharing what I’ve found in case anyone else finds this useful. Although I’m a developer and casual gamer, I tend to try to be frugal and have a tendency to replace my computers rather infrequently. This article is written on a laptop around 8 years old, and my gaming computer is only about a year newer.…

Read more »

PHP's str_getcsv is Completely Broken

Posted on

Say you have a csv file that you want to parse with PHP. No problem, PHP has a function for everything! Assuming that maybe we’re on the beginner-to-medium level of experience, we might be tempted to reach for str_getcsv as a quick way to read CSV files. Before we get started, I’m using PHP 7.3.14 on Ubuntu 18.04.3 LTS (Bionic Beaver). Attempt #1 Let’s start with a simple CSV file:…

Read more »

Robot Experiment

Posted on

In a recent discussion at work, some of my colleages mentioned that they believed to have found that Google is ignoring robots.txt and noindex rules and showing blocked content anyway, in violation of thier documentation and the robots.txt standard. Let’s do some science to find out whether this is the case! Theories Google uses two terms which at a glance have seemingly overlapping definitions: Crawling The process by which pages are accessed and processed for links and content.…

Read more »

JSON is not appropriate for configuration

Posted on

Almost every program, particularly in compiled languages, needs some type of config file to store database connection strings, It’s become very common for JSON to be used by package managers and tools for configuration, perhaps due to it’s simplicity or ubiquity, but is it really a good choice? To determine this, let’s first determine the features we want in a good configuration language: Easy to be understood and edited by humans Simple to parse Expressive power to cleanly and accurately represent the data Simplicity (along with #1) Let’s explore the ways that JSON does not meet this criteria:…

Read more »

Welcome to my Blog

Posted on

Hi, I’m Jason, welcome to my Blog. I’ve been working as a software developer professionally since 2006 working on website projects in PHP, C#/.Net and my personal projects in Go, NodeJS, and others. I’ve previously headed the SEO efforts at my company for several years, and now work as tech lead spending a lot of my time mentouring other developers. Over the years, I’ve developed a lot of thoughts about coding practices, and I’d like to start sharing them here for feedback from the community at large.…

Read more »