A Better Git Blame

TL;DR git blame rarely gives helpful results. Instead use specific flags on git log to find the true author of a change. What Does git blame Actually Do? git blame searches the commit history to find the last person who modified a line of code. Some editors have this…

IRC: The Secret Weapon of Developers

TL;DR When I was a junior developer, I wish I knew about Internet Relay Chat. Use IRC to get fast answers to tricky problems. If you haven't used it before, please read the etiquette guide below. IRC? IRC stands for Internet Relay Chat. It's a protocol, like HTTP. IRC…

How to Create Custom iTerm2 Window Arrangments

TL;DR Create a custom keyboard shorcut to automatically spawn a set of windows and splits with processes running. iTerm2 is very useful software, but this process is complicated. I've attempted to document known pitfalls. How to Create a Custom Window Arrangement Close all iTerm2 windows. We'll be using the…

The ReactJS Controller View Pattern

TL;DR Making a top level component that holds all state and passes it to children as props is really nice. Not to be confused with MVC, a "view controller" or "controller view" is a top level component that holds all state and passes it to children as props. For…

How to Copy Only Changed Files With Gulp

Recently I had to keep two folders in sync with gulp. I needed to copy all files from one folder to another, and keep them up to date when changes were made. The easy way is just to copy the entire folder every time. gulp.task('watch-folder', function() { gulp.watch(…

How to Debug Mocha Tests With Chrome

This post assumes you're familiar with Chrome's developer tools. Take That, WebStorm! I've long lamented that Vim will never have IDE style debugging, which is more powerful than any Vim feature. Until… I was browsing the Mocha documentation on a whim while waiting patiently for death, when I came across…