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.

Roadmap for Learning Rails

If you have no prior development experience, one of the worst things you can do when learning Rails is to just dive in. Some of the concepts build on each other, so jumping in would be like signing up for a calculus class before you’ve learned algebra. Sure, you could muddle through it, but most of your time would be spent trying to figure out why things aren’t working.

Rack::Plastic Helps You Write Rack Middleware

Back in November I participated in the CodeRack Rack middleware contest. Besides submitting entries that were stupid and downright dangerous I actually managed to create some middleware of value.

The Two-Envelope Paradox

You just finished some yard work for your eccentric neighbor, Mr. Grimes. He prepares some lemonade for you while you rest at his kitchen table.

“Thank you for your help today,” he says as he places two envelopes on the table in front of you. “Both envelopes contain money. Pick one and you can keep the money inside.” As you reach for one of the envelopes he adds, “One envelope has exactly twice the amount of money as the other.”

You pick one of the envelopes and open it. Inside you find a $20 bill. You are about to pocket the money when Mr. Grimes interjects, “I’ll give you a chance to switch envelopes if you’d like.”

Should you switch envelopes?

Using Capybara in Rails 3

Capybara makes it easier to write integration tests. Its syntax is very similar to Webrat’s. The main difference between Capybara and Webrat is that Capybara has more architectural flexibility. It works with a variety of JavaScript-enabled browser simulators and–because it’s based on Rack–it works with any Rack-compatible web application or framework. Another advantage is that Capybara is compatible with Rails 3, but Webrat isn’t. Because Capybara is basically a more flexible Webrat, Capybara and Webrat are likely to merge.