development

event-stream vulnerability explained

If you work with JavaScript at all, you probably saw a ton of noise yesterday about a vulnerability in the event-stream npm package…

Read

How I Convinced Our CTO to Switch From CoffeeScript to ES6

Aha! is a Rails monolith. Although we have embraced front end technologies, such as webpack and React, Rails is the glue that holds…

Read

My Sublime Text Setup Revisited

Three and a half years ago (wow, time flies) I wrote a blog post detailing my Sublime Text configuration. Over that time, I’ve tried out a…

Read

Why You Should Not Major in Engineering

My college algorithms class was the final weed-out course in the computer science program. It covered advanced topics like computational…

Read

Why Doesn't Every App Autosave?

Every user knows the frustration of composing a long, thoughtful document or email only to experience a last-second crash or power failure…

Read

Just Open Sourced: Log Search Built on Google BigQuery

Maintaining useful application logs is an challenging problem, especially when dealing with tens of gigabytes of new data every day. When…

Read

Perfecting a Smooth Scrolling Experience for Large Tables

Depending on who you ask, the is a quintessential cornerstone of web development old and new; an outmoded curiosity from a time where CSS…

Read

Writing Tests for Rails: Continuous Integration

Around this time last year, I wrote a series of posts on writing tests for Rails apps using rspec and Capybara, beginning with the…

Read

How Engineers Want to Work with Product Managers

Engineers want to build the product. They do not want to manage it. So, you can see why a good product manager is an engineer’s dream come…

Read

Code complexity metrics suck — use them anyway

I love contributing meaningful code to the open-source community; I do it every chance that I get. A few years back, I authored my first…

Read

Using Nested Selects for Performance in Rails

Databases are fast , even at performing fairly complex operations. This is easy to forget in the age of ORMs and abstraction and many of us…

Read

Making Magic with contenteditable-"true"

I love this team. I love the product and engineering team at Aha! because we believe in objectively prioritizing work. To truly build what…

Read

Building Phantom.js 2.0 for OSX

Problem: You’re trying to build the Phantom.js 2.0 branch for OSX and you’re getting a bunch of compile time errors related to makefile…

Read

Riding on Jekyll

I recently refreshed my personal site/blog. I’ve been meaning to try out Jekyll , a static site/blog generator, and so I decided I might as…

Read

Deploying a Ghost Blog on Ubuntu with Capistrano

I recently set up a deploy script for a Ghost blog using Capistrano, to an Ubuntu server with Phusion Passenger. I had to figure out a few…

Read

Code Golf: Archive Entire Website to PDF

Recently, a friend asked me for help with a research project. He needed to gather data on high school websites, which required him to…

Read

Writing Tests for Rails: Controllers

In the previous post , I discussed writing model tests to enhance the coverage of your test suite. In this final post, I’ll cover one other…

Read

Writing Tests for Rails: Models

In the previous post , I finished up covering how to write comprehensive feature tests for Rails applications. Feature tests will do the…

Read

Writing Tests for Rails: Features

In the last post , I covered mocking data with FactoryGirl and writing a basic feature test using mocked data. In this article, I’ll cover…

Read

Writing Tests for Rails: Factories

In the last post , I covered setting up the rspec test environment and writing your first basic feature test. In this post, I’ll cover…

Read

Writing Tests for Rails: Setup

In the last post , I introduced this blog series on writing effective tests for Rails and briefly reviewed the test stack we’ll be using…

Read

Writing Tests for Rails: Introduction

Regardless of where you fall on the endless discussion surrounding test-driven development , solid tests are absolutely essential for any…

Read

Using Bower with Rails

Bower , the open-source frontend package manager developed by Twitter, is quickly gaining the affections of the NodeJS community (among…

Read

Fixing SSL errors in rvm for OSX

I recently had a fairly extended and annoying fight trying to get rvm to install gems from HTTPS sources, so I decided to post the quick…

Read

Building Interfaces with Backbone and jQuery UI

For my senior design project, I recently had to build a fairly complex client-side interface for professors to create and modify a course…

Read

Digital Ocean vs. Linode

After two years as a Linode customer, I’ve just finished switching and migrating the sites/apps I manage over to Digital Ocean . While…

Read

Two Weeks of Ghost: My Thoughts

I’ve now been using Ghost to power my blog for around two weeks (replacing my old Tumblr). So far, I’ve found it to be a pretty great…

Read

My Sublime Text Setup

Now that I’ve been using Sublime Text full-time for a few months, I decided to put together a short post detailing my Sublime Text setup…

Read

Wiring Associations in SailsJS

Today, I rewrote a prototyped Rails API into SailsJS, to take advantage of the dramatic speed boost of server-side Javascript. Waterline…

Read

Introduction to SailsJS

Over the past few days, I’ve started working on rewriting one of the web applications I manage using SailsJS , a NodeJS MVC framework that…

Read

Google OAuth2 and Rails

Today, I had to work my way through integrating Google OAuth2 authentication API access with my Ruby on Rails application, to lay the…

Read