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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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 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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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 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, 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…
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…
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…
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…
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…
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…
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…
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…
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 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…
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…
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…
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…
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…