Experimenting with the Architecture of Ember.js

What do you get when you cross Ember.js with the Single Responsibility Principle? I recently decided to find out by refactoring the architecture of Ember.js so that each class had only one responsibility. This is the result of my experiment. Three Layers You can think of a software application as having three layers, each having […]

From Ruby to JavaScript

Last Tuesday I spoke at the Boston Ruby Group about strengthening your JavaScript skills. I’ve put the slides online. Enjoy!

Stop Using Single Point Estimates

Estimating how long it will take to develop software is difficult. Fortunately, as an industry we’ve moved away from big-planning-up-front, exhaustive Gantt charts and toward a more agile approach. Unfortunately, we’ve stuck with single point estimates which have some significant disadvantages when compared to range estimates.

Are You a Good Programmer?

If someone asks you to recommend a good programmer, who comes to mind? Do you consider yourself a good programmer? What criteria do you use to judge?

Please Steal My Startup Idea

Every restaurant menu item in the world is searchable by its ingredients.

Sanely Updating Your Gems

If you followed my advice in the previous post, your Gemfile would look something like this:

source :rubygems
gem 'rails', '3.0.3'
gem 'devise', '1.1.5'
gem 'redgreen', '1.2.2'
gem 'capybara', '0.4.0'

There’s nothing wrong with this except that if you wanted to keep your gems up to date frequently it would be tedious to manually change all of these versions. Fortunately, we don’t always have to be this exact with the version numbers.

The No-Nonsense Guide to Managing Gem Versions

If the Ruby code you write never leaves your computer, then this article is not for you. But if you find yourself sharing Ruby code with others, or deploying your Ruby code to a web server, then you have a problem. And that problem is gem versions. Sooner or later, the version of a gem on your computer will not match the version of that gem on your production web server, and your cute little disruptive social media web app will fail in a steaming pile of 500 errors.

Crash Course in Web Typography

Thoughtbot recently started up a fantastic design group called Design with Boston. Last Thursday I gave a presentation there called “Crash Course in Web Typography” and I’ve put the slides online.

Tutorial for Adding Tabs to Rails Using Tabulous

This tutorial shows you how to make a simple Rails application from scratch that has both tabs and subtabs.

Introducing Tabulous: Tabs in Rails

If you’re like me, most of the Rails applications you’ve written use tabbed navigation. And if you’re like me, you find that writing the code to handle tabs becomes increasingly more boring with each new application. So I wrote tabulous. Tabulous aims to solve this problem once and for all with a quick and easy way to set up and manage your tabs.