• Capturing a Paste Event in Firefox

    Imagine yourself building a web app that supports image uploads by simply capturing your computer’s paste keyboard shortcut. Sites like imgur.com already support this behavior and it adds an extra level of convenience for what would otherwise require several additional button clicks. The paste event has been supported in major browsers for some time now, but interestingly Firefox doesn’t trigger the event […]

  • Node.js Testing Doesn’t Need to be Difficult

    Whenever testing code in the context of Node.js comes up in conversation, it’s very likely to be accompanied by an exploration of testing-related tooling and strategies. If you’ve ever participated in such a discussion, it’s not uncommon to hear one or more of the following terms thrown around: test runners, assertion libraries, mocking, stubbing, spying, […]

  • Running Grunt tasks without grunt-cli

    Grunt is a JavaScript task runner that helps automate common development tasks such as minifying and testing code. Traditionally, using Grunt is a two-step process. First you install Grunt’s command-line interface (GLI) globally using npm (npm install -g grunt-cli). Next, in any project where Grunt is to be used, you must locally install Grunt and […]

  • Creating a self-correcting alternative to JavaScript’s setInterval

    Recently, I’ve been toying with JavaScript’s setInterval method which, if you’re unfamiliar, allows you to execute code repeatedly at a specified time interval. For example, one might create an interval which executes every second by using the following code snippet: setInterval( function() { console.log( ‘I execute every second!’ ); }, 1000 ); Both setInterval and […]

  • Static Site Generators

    As web developers, we most often work with dynamic web content. These days, it’s rare to come in contact with plain old HTML files. That said, there are a growing number of tools which assist in the creation of static sites, aptly named static site generators. To cite a recent example, Kyle Rush published an […]

  • My Resources for Learning

    To be a resourceful developer, it’s important to keep up with new trends and current best practices to be applied in our own projects. Below, I share my current resources I use to find new projects, ideas, and discussions. Blogs Blogs allow industry experts and other enthusiasts to share their knowledge on a topic that […]