All 39 articles, essays, and posts

CSS Grid is a Treasure

December, 17 2019

I'm working on a fun new project that is making me write a lot of HTML and CSS. I've taken this opportunity to learn CSS grid. Wow, it's really nice. I wanted to share some treasures, as well as a…

How to Install HashiCorp Packer using Bash

November, 21 2019

Building on my last post, I wanted to breakdown a similar bash script that will install a tool from HashiCorp called Packer. HashiCorp is a company creating tools that make managing cloud…

How to Install Firefox Developer Edition using Bash

November, 10 2019

Today, I'm going to run down a bash script for installing Firefox Developer Edition on Ubuntu 18.04+. I found several blog posts already out there on how to do this, but none of them actually worked…

Bash Helper Scripts

November, 09 2019

Returning from a long break, I thought I'd try something totally new. I've long been looking for a way to programmatically rebuild my laptop, so I can nuke it whenever I feel like, run a set of…

Power over Distraction

January, 18 2019

I used to have a really big problem. I used to be a terrible procrastinator. I am way too good at distracting myself from what I should be doing. I'm changing that though, and I'm doing it by…

What's a Shortstack Developer?

January, 07 2019

A shortstack developer is always two pancakes short of a full stack. A full stack of pancakes is five pancakes and a shortstack is only three. A fullstack software developer is expected to know…

How A Manager Refers to Their Team Matters

January, 04 2019

You can spot a leader that takes stewardship seriously, owning the idea down into their core, by how they refer to their team. How do you refer to the team you work on? Do you actually act as their…

Decision Maker or Decision Listener?

January, 03 2019

Agency is the capacity of an actor to act in a given environment. Organizations with heavily centralized decision making are creating environments where their best equipped team members (those on…

Borrowing Time vs. Owning Time

January, 02 2019

One of my primary issues with leaders that were brought up in command and control organizations is how they perceive their team, ownership over it, and their time. I see many managers suffering from…

What's a Servant Leader?

January, 01 2019

Servant leadership was originally defined in the 1970s as a departure from traditional leadership: This (servant leadership) is different from traditional leadership where the leader's main focus is…

A New Language: JavaScript

December, 27 2018

I was listening to a podcast yesterday, and I had an epiphany while listening: The downside of making a language more expressive is it also makes it harder to learn. Javascript in 1996, when I learned…

ES2017: Object Spread and Rest

December, 26 2018

Once again, the speed of JavaScript evolution is apparent. When you learn it all together, it's easier to see how an idea is being iterated upon. In this case, the Rest and Spread operators we…

Async Your Battleship with ES2017

December, 25 2018

Async functions are a special type of function that returns a Promise. They've been designed to make Promises easier to work with. Imagine they're kind of like all the new String methods, except…

Pad Your ES2017 JavaScript Scores

December, 24 2018

ES2017 brings new String methods for us, which honestly, feel a little weird. I think they're mostly in response to the famous leftpad incident, whereby a disgruntled developer brought a shocking…

ES2016: Exponents and Includes

December, 23 2018

I'm starting to feel like a broken record, but once again, JavaScript ES2016 jumps into 2009 with a few nifty features! (I kid, I kid, these updates are great for the language and although small in…

Love to Hate JavaScript

December, 22 2018

After a half a month of joyful posts about JavaScript's ES2015 (also called ES6), I decided to get a little grinchy before the holiday. Here's something that tripped me up for the last hour or so. I…

Async Sugar: Promises and Generators

December, 17 2018

Promises from an instructor on Mr. Steele's Advanced Developer Bootcamp course (a little paraphrased): A Promise is a one time guaranteed return of some future value. The idea is that we do not know…

New Data Structures: Set Map to Treasure

December, 15 2018

Despite the title, I'm not a pirate on the high seas here. What is a Map? A Map is a collection of key-value pairs where the keys do not have to be strings. In other languages, this is often called…

Better Object Oriented Programming in ES2015

December, 11 2018

It's starting to feel like JavaScript wants to really support Object Oriented Programming. The addition of the keyword 'class' in ES2015 makes me think of my beloved old Java. The new hotness: There…

Easier Arrays: Array.from, find, findIndex, For...of

December, 07 2018

Finally, they've made Arrays easy to work with in ES2015. I can't believe I'm saying this. It's great! I kind of feel like ES2015 represents years of pent up anger over developers having to…

Getting Some Closure on JavaScript

December, 06 2018

You hear developers in the JavaScript world talk about closure. I always thought it was about getting over the demise of Netscape Navigator. Boy was I wrong! (Sorry, horrible joke... sorry not…

Broken Arrows, Default Parameters

December, 05 2018

It's 1996. John Travolta and Christian Slater are at the height of their powers. What's better than a cheesy action flick? Okay, this post isn't about Broken Arrow... it's another post about…

More VAR-iety: var, const, let

December, 04 2018

Excusing the horrific pun, it's great to see JavaScript support more options when it comes to variable declaration. Let's go over them together and then it'll be easier for me to remember the nuances…

The Brave New JavaScript: Better Strings

December, 03 2018

Wow, I'm only a few days into learning how much JavaScript changed in 2015 with the release of ES2015, but I am already excited. My First Sad Try When I first tried to learn ReactJS this last summer…

Mongoose vs. Candy

December, 02 2018

Mongoose is an Object Data Mapper (ODM) which makes it easier for a NodeJS application to interact with MongoDB. It provides standard functions that allow you to model data through schemas…

Mongo like Candy

December, 01 2018

Mongo like candy, but MongoDB likes unstructured data. I am diving into MongoDB. Let's hope it doesn't blow up in my face like the infamous candygram. As a refresher, MongoDB is a non-relation…

Non-Relational Databases

November, 30 2018

Of the two major categories of databases, I plan on learning a little bit about non-relational databases first. Before I get into a specific one though, here's a table of the different types of non…

Introduction to Databases

November, 29 2018

The time has come to crack open the old textbooks and dive back into databases. Let's start with a very simple breakdown of the two main families or types of databases in the world: relational and…

Keywords 'this' and 'new' in JavaScript

November, 25 2018

The 'this' keyword represents a core part of object oriented programming in JavaScript. You have to understand how 'this' operates in different contexts and its rules to really maximize your use of…

Framework vs. Library

November, 24 2018

For years, I have found myself using framework and library interchangeabley. That's just wrong. I never knew it until now, but these two are very different. The key sits in understanding a scary…

RESTful Routing Reference

November, 23 2018

I wanted to take a second to capture a basic guide for myself on RESTful routing. REST stands for Representational State Transfer and is essentially a design pattern for creating web services. To…

Anatomy of an HTTP Request

November, 22 2018

In order to understand how the web works, you have to understand the request-response cycle and how an HTTP request is structured. This is another post for future me, as I know I'll need to refer…

Home Network v1.0

November, 21 2018

I have been hard at work re-learning some networking fundamentals, and as a result I decided to completely re-engineer my home network. There are compelling privacy and security reasons for doing…

Anatomy of an HTML Form

November, 20 2018

An HTML form is a powerful tool that allows you to capture data and transmit it. Here's a basic one: And in clean HTML code, here's that same form that sends to an action "/createDog" endpoint (URL…

Prototypes in JavaScript

November, 19 2018

Prototypes in JavaScript feel natural to me, because I first learned Object Oriented Programming when Java was the next big thing. I remember when the Java Virtual Machine and its promise of…

Power of the Marker Board

November, 18 2018

I have installed a marker board in my office, so I can start thinking outloud, in dry erase marker, literally on the walls. I have found this incredibly helpful for tracking my learning. Little…

Breaking the Blog

November, 17 2018

Well, that didn't take long. Yesterday, I broke the blog. I stumbled into the long grass without even knowing it. However, I learned a very important lesson about this brave new component based…

Found a Tanner

November, 16 2018

I said yesterday that I was going to need more leather for this effort. Here's the good news: I found a tanner. This tanner's name is the amazing Gatsby plugin system. I know you were probably…

Need More Leather

November, 15 2018

This is my personal blog to embrace learning in public as inspired by Swyx. It's also the final step in a virtuous cycle of learning, building, and teaching. The idea behind learning in public is…