Building a Simple Analytics Replacement

I've used Google Analytics on my site(s) for many, many years. It's fine. I honestly don't really have a problem with it from a developer's perspective. That said, I don't need all the things it does, and I fully understand the concerns of many people with the various tracking methods employed by Google and (many) others.

So, what other solutions exist? And what about for a static site where I don't get access to the server logs? And as a static site...

The Analog Hacker Challenge

A couple years ago a friend and former colleague said to me, "you like puzzles and games and stuff, right? How about you make a badge challenge for this conference."

I've been privileged to have attended and spoken at more than my fair share of conferences and similar events; however, these were almost entirely software development events, and none of them had a "challenge" to earn a badge. But this wasn't for just any conference, it was for DEFCON 32...

An Overview of the Open Source Ecosystem

In nearly every role I've held there have been people that do not understand open source. That's not to say that they couldn't, they've just never had to truly understand the nuances of the ecosystem, the players involved, their motivations, or the criticality of the delicate balance being held. I often become "the open source guy": that person in your organization that gets it. The one others refer you to when you have a question about open source software.

The Magic of Engineering Leadership

Software engineering isn't magic, and neither is engineering leadership. Too often organizations leave engineering teams to fend for themselves when it comes to basic tools, techniques, and practices. A good leader makes decisions, leads from the front edge of those decisions, and then listens to their team to iterate and improve over time. But how can a new leader approach an existing organization to make a positive impact?

This article will explore some strategies for...

Understanding `super` in JavaScript

With the adoption of ES6/2015 by nearly all browsers (with one notable exception), developers have access to the new class keyword and its construct for creating objects. If you are familiar with prototypical inheritance in JavaScript, don't worry, that knowledge is still useful. Why? Because JavaScript "classes" are just syntactic sugar over the top of prototypes. In this post, I'll shed a little bit of light on the ability to access a parent class (prototype) from...