For macOS Users

We are all familiar with basic keyboard shortcuts like Cmd + C and Cmd + V — they make our lives easier, save time, and allow us to work efficiently. If you code with others long enough, you will eventually witness some higher-level shortcut wizardry being used. For those using VS Code, I want to help pull back the shortcut curtain a bit and provide you with some of the most helpful tools to speed up your coding.

Some Housekeeping

First, let’s make sure we’re using the same keyboard symbols and terminology. …


I recently attempted to scrape a website for assets in order to recreate the site as a personal coding exercise. I tried to do this with wget, flagging particular file suffixes like jpeg, gif, png in order to download the images I needed for this project. However, all I got back was a single file — robots.txt.tmp.

The Robots Exclusion Protocol

So what is this robots.txt file? It allows website owners to dictate which areas of the site web robots are allowed to visit, a concept called the robots exclusion protocol or robots exclusion standard. In practice, this is how it works: a…


This is a quick post that covers the important but easy-to-miss detail of your React app’s browser tab. By default it will look like the following:

Default React browser tab has the React logo along with the text “React App”
Default React browser tab has the React logo along with the text “React App”
That’s not our app!

Small overlooked details like this can adversely affect the overall impression of a website. Fortunately, this is an easy fix.

First, locate the default document (usually this will be index.html) and find the following code at the bottom of the <head> element:


If you have ever been tasked with cleaning up capitalization or filtering for special characters in strings, chances are you have encountered regular expressions. If you dove into the documentation it probably wasn’t long before you were greeted with mind-melting expressions that looked like this:

/[\w.%+]+@[\w.-]+\.[a-zA-Z]{2,10}/

Because regular expressions allow for so much customization and specificity, it can result in very complex, convoluted-looking syntax. This guide looks to untangle some of these concepts and illuminate the basic principles that guide more involved expressions like the one above.

What is a regular expression?

A regular expression is an object in JavaScript used to identify specific character…


Rails was designed with a focus on making the work of a developer easier. One of the ways it accomplishes this is by providing tools to automate core, commonly-used functionality. Generators encapsulate this idea, building out models, migrations, routes, and other assets by taking some parameters and quickly implementing our boilerplate code for us. This process is standardized which limits the potential for human error while also speeding up one of the more tedious aspects of developing a new project.

This can occasionally be a slippery slope as the convenience of these generators can tempt us to generate needless files…


Image for post
Image for post

If you are looking to add another layer of immersion to your game or web site, sound is a great place to start. There are several ways to accomplish this, so I’ll walk you through your options starting with my favorite:

let mySound = new Audio('my_audio_file.wav')
mySound.play()

The simplest way to add sound is through Javascript’s Audio() constructor. It takes an argument of a string that is either the local or remote file path. Declaring this as a variable allows you to then call the play() method which starts playing the current audio.

Another way to accomplish this requires some…


In transitioning from Ruby to Vanilla Javascript, one of the most disorienting bits of syntax I encountered came in the form of arrow functions. The =>s peppering the JS files I initially encountered had no equivalent in Ruby, although they function similarly to Lambdas in other languages like Python.

meandering arrows
meandering arrows

The first thing to know is that arrow functions have not always existed in JS. …


This post is all about the whimsical, imaginative language that undergirds what at first glance appears to be cold, utilitarian code. Before we get to splats and kebabs, however, I should quickly share how I came to be delivered on the doorstep of such unexpected irreverence.

Image for post
Image for post

.shift-ing expectations

When I first began the pre-work for Flatiron School’s software engineering bootcamp, I had absolutely no prior coding experience. There were no bad habits to unlearn and no good ones to draw from. …

Noah Eakin

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store