Weekly Digest, 1-6-09

If you enjoy these links, you should follow me on GitHub here.

Steve Krug on Usability

I can’t think of a better intro to the essential points of usability than this presentation by Steve Krug. I especially appreciate his “least you can do” approach. Enjoy.


…the Sun-Times is forwarding every page request to http://mobile.suntimes.com (the root “home page” of the optimized site), thus breaking every link to every single article they’ve published. This is the very definition of a broken website.

Caliper: Hosted Ruby Metrics

Ruby metrics don’t get any easier than this.

Admin Noob

System Administration for Noobs

AJAX activity indicators

An important design element that’s part of the whole AJAX business is somehow letting your user know that stuff is actually happening while the server crunches away. A common way to do so, is to add a little animated GIF that is only shown when the AJAX request is happening.

The Ruby Toolbox

The Ruby Toolbox gives you an overview of these tools, sorted in categories and rated by the amount of watchers and forks in the corresponding source code repository on GitHub so you can find out easily what options you have and which are the most common ones in the Ruby community.

Waging War on Whitespace (using TextMate)

To avoid diff cruft you’ll need to instruct your text editor to remove trailing whitespace, preferably every time you save so you don’t have to remember to do it.

roman’s warden_oauth

warden_oauth enhances the Warden authentication framework, offering a simple interface for creating oauth strategies.

ffmike’s has_messages

This plugin provides a nice and easy way to create simple internal messaging system in your application.

jpignata’s temping

Temping allows you to create arbitrary ActiveRecord models backed by a temporary SQL table for use in tests.

Gem Bundler is the Future

This guide went over how to use Bundler today, with a Rails 2.3.4 app. According to Yehuda, this eventually will be packaged in Rails 3, so the commands will be baked into Rails…so something like script/bundle. The nice thing is that you can use the bundler with any Ruby project, so this is good to know in general.


Tipsy is a jQuery for creating a Facebook-like tooltips effect based on an anchor tag’s title attribute.

One in Three: Inherited Resources, Has Scope and Responders

So we were there, building an application based on scaffold, and as we saw duplicated code we started to realize Inherited Resources contains a lot of tools that could be used outside its context. And this is what is happening right now, two new gems are being launched: Responders and HasScope.

Why programmers are not paid in proportion to their productivity

The romantic image of an über-programmer is someone who fires up Emacs, types like a machine gun, and delivers a flawless final product from scratch. A more accurate image would be someone who stares quietly into space for a few minutes and then says “Hmm. I think I’ve seen something like this before.”

Learn to Let Go: How Success Killed Duke Nukem

It’s a dilemma all artists confront, of course. When do you stop creating and send your work out to face the public? Plenty of Hollywood directors have delayed for months, dithering in the editing room. But in videogames, the problem is particularly acute, because the longer you delay, the more genuinely antiquated your product begins to look — and the more likely it is that you’ll need to rip things down and start again. All game designers know this, so they pick a point to stop improving — to “lock the game down” — and then spend a frantic year polishing. But Broussard never seemed willing to do that.

jzawodn’s mytop

a “top” clone for MySQL

Why I think Mongo is to Databases what Rails was to Frameworks // RailsTips by John Nunemaker

Below are 7 Mongo and MongoMapper related features that I have found to be really awesome while working on switching Harmony, a new website management system by my company, Ordered List, to Mongo from MySQL.

Server-Side Javascript: Back With a Vengeance

Last month was Javascript season in Europe, with two conferences dedicated to the language that powers interactive web applications, and a third, which featured it heavily. If a common theme emerged, it was the buzz about Javascript leaping out of the browser to serve other domains, and the noise has only become louder in the aftermath.

Subdomains and sessions to the rescue!

After some research we decided to go with the subdomain-fu gem, which is great to give your application the ability of handling subdomains. Another great resource we have used is Ryan Bates’ screencast about the subject. But they did not solve our problem completely, so here we are going to document a few steps to help you get up and running easily with subdomains and sessions.

CodeRack: Rack::Snapshot

Rack::Snapshot is a quick way to expand image urls for the popular image sharing services. If you have a URL to a public page for an image on Skitch, Img.ly, Twitpic, Yfrog, Flickr, or Twitgoo, this middleware will embed the direct image URL for you.

config/deploy.rb from tobi’s imagery

Capistrano tasks for a GitHub-style deployment.

sickill’s racksh

Console for any Rack based ruby web app.

tobi’s clarity

Web interface for the grep and tail -f unix tools. Useful for real-time log analysis. Remotely related to splunk.

tobi’s imagery

Image server / proxy that can resize images on demand based on common file prefixes ( such as _small, _medium ) and apply other rmagick effects. Supposed to be used between a Squid/Varnish and S3.

Introducing RR

I’m pleased to introduce a new Test Double (or mock) framework named RR, which is short for Double Ruby.