Weekly Digest, 8-10-09

Weekly in name only ;)

What’s New in Edge Rails: Default RESTful Rendering

Controller responders handle the chore of matching the HTTP request method and the resource format type to determine what type of response should be sent. And since REST is so well-defined it’s very easy to establish a default responder to handle the basics.

Out of the Kitchen, Onto the Couch

“Here’s an analogy,” Balzer said. “A hundred years ago, chicken for dinner meant going out and catching, killing, plucking and gutting a chicken. Do you know anybody who still does that? It would be considered crazy! Well, that’s exactly how cooking will seem to your grandchildren: something people used to do when they had no other choice. Get over it.”

Approaching a Minimum Viable Product

The purpose of the MVP is to answer your most pressing question, to validate your most pressing business assumption. To create an MVP work backwards from your question, not forwards from a feature list. Invest as little as possible to answer the question because after this there will be another question and another and you’ll need enough money to answer them all.

save! > save

When you’re not expecting something to fail, always use the methods that raise exceptions on failure.

What’s New in Edge Rails: Cleaner RESTful Controllers w/ respond_with

REST is a first-class citizen in the Rails world, though most of the hard work is done at the routing level. The controller stack has some niceties revolving around mime type handling with the respond_to facility but, to date, there’s not been a lot built into actionpack to handle the serving of resources.

cldwalker’s hirb

A mini view framework for console/irb that’s easy to use, even while under its influence. Console goodies include a no-wrap table, auto-pager, tree and menu.

josevalim’s simple_form

Simple easy contact form for Rails with I18n, validations, attachments and request information.

The Rails State Machine

Ruby on Rails recently added a built-in ActiveModel::StateMachine implementation and even more recently tied it in to ActiveRecord. And, for being a built-in library, it’s pretty damned fully-featured.

Deployment Script Spring Cleaning at GitHub

As we get ready to upgrade our servers I thought it’d be a good time to upgrade our deployment process. Currently pushing out a new version of GitHub takes upwards of 15 minutes. Ouch. My goal: one minute deploys (excluding server restart time).


QuickMagick is a gem for easily accessing ImageMagick command line tools from Ruby programs.

GreenAsJade’s s3-swf-upload-plugin

A rails plugin which allow user upload files to S3 through an embedded flash directly. This fork has environment setting of amazon creds (to avoid hardcode in app), configurable message for the select button, bugfix on submit-without-select, much improved feedback to the user about what is happening, ability to check the file they selected, before it gets actually uploaded.

RSS Subscribers or Twitter Followers: Which Are Worth More?

I would need to test first to find the optimal valuation, but I am guessing it would be between 5 and 10 Twitter followers for each RSS subscriber.

You Have to Choose Who To Read

The wonderful thing is that in A.D. 2009, the option of reading primary sources is open to anybody who’s willing to take a little trouble.

Anatomy of a feature

“Oh, it’s easy, just a quick http call. I could write a script to do it in like 20 seconds.” But of course it’s not as simple as just writing a quick script. It’s tempting to think that adding a feature like this is just about adding the functionality — but there’s a bunch more to it than that.

up and running with cassandra

I think that Cassandra is the most promising current implementation of a runtime distributed database, but much work remains to be done. We’re beginning to use Cassandra at Twitter

Embrace technical debt

As in many scalability decisions, we’d have been much better off investing in agility, so that we could change the architecture in response to actual customer demand, rather than trying to predict the future. That’s what Just-in-time Scalability is all about. Sometimes quick and dirty actually incurs less debt.

CSS Prism

Enter the URL of any CSS file to view and modify its color spectrum.

Ramen Profitable

Now that the term “ramen profitable” has become widespread, I ought to explain precisely what the idea entails.

Basecamp, now with more vroom

To make a long story a little less long, we saw some pretty extreme performance improvements from moving Basecamp out of a virtualized environment and back onto dedicated hardware.

Pro Git Book

This is the website for the Pro Git book, written by Scott Chacon and published by Apress. Here you can find the full content of the book, a blog with tips and updates about Git and the book and open source projects related to Git or referenced in the book.

Drag & Drop Sortable Lists

Time has come for us to make a sortable list, and let’s face it, drag&drop are the prettiest ones. So, let me explain how to proceed.

Reputation – Yahoo! Design Pattern Library

A person participating in a social structure expects to develop a reputation and hopes for insight into the reputations of others, but each designed model of participation and reputation embodies its own set of biases and incentive structures. Balancing these forces determines in large measure the success or failure of a social system.


A simple, open, web-hook-based pubsub protocol & open source reference implementation.

Death spiral!

As Tom Peters says, “You can’t shrink your way to greatness,” and yet that’s what so many dying businesses try to do. They hunker down and wait for things to get better, but they don’t. This isn’t a dip, it’s a cul de sac. It’s over.

Pay Walls

Newsstand and subscription prices have never been the main source of revenue for newspapers anyway — advertising is. But they can’t make as much money from web advertising as from print for several reasons. Pre-Internet, newspapers had inordinate control over the supply of news, and therefore over the supply of advertising, and they grew fat on the profits.

Rails Rumble – This Bird’s Ready to Rumble

Of course, even applications that aren’t quite so Twitter-centric can benefit from some Twitter integration. Here’s a list of some resources that may inspire you to include them in your Rumble application in some way.

Uploadify and Rails 2.3

A few weeks back we (Steve and I) added multiple asset upload to Harmony using Uploadify. If you are thinking that sounds easy, you would be sorely mistaken.

madx’s rackable

Rackable is a tiny module that aims to make any Ruby object Rack-friendly and provide it with a REST-like interface. Basically, what it does is providing an object with a call() method that uses the Rack environement to dispatch to a method, giving helper objects such as headers, query parameters, …

grosser’s text_filter

ActiveRecord / Rails Filter Text Fields Before Assigning them

Railscasts Self-Referential Association

Creating a social networking site often requires a self-referential association on the User model to define friends/followers. In this episode I show how to do exactly that.

Developer Color Picker

A custom color picker designed specifically for developers. Makes getting colors out of Photoshop/Acorn mock-ups quick and easy.

Drupal Job Boards

If you’re just getting started in computer science or looking to specialize in a web technology, then you should definitely look into Drupal. Jobs in the marketplace are in high demand, especially compared to some of the other CMS platforms. The number of Drupal job opportunities continues to increase.

Maker’s Schedule, Manager’s Schedule

Those of us on the maker’s schedule are willing to compromise. We know we have to have some number of meetings. All we ask from those on the manager’s schedule is that they understand the cost.

Do it Later With Delayed Job

The killer feature that delayed_job has is send_later, this lets you transparently turn a method call on a class or object into a delayed_job. It also supports declaring certain methods to be handled asynchronously in an environment file…

DropBox Y Combinator Application

Y Combinator Funding Application, Summer 2007, DropBox

TrafficServerProposal Apache Proposal from Yahoo

Traffic Server fills a need for a fast, extensible and scalable HTTP proxy and caching. We have a production proven piece of software that can deliver HTTP traffic at high rates, and can scale well on modern SMP hardware. We have benchmarked Traffic Server to handle in excess of 35,000 RPS on a single box. Traffic Server has a rich feature set, implementing most of HTTP/1.1 to the RFC specifications.

Daring Fireball: Charging for Access to News Sites

…and it’s not really surprising that they’re failing to evolve. The decision-makers — the executives sitting atop large non-editorial management bureaucracies — are exactly the people who need to go if newspapers are going to remain profitable.

cldwalker’s alias

Creates, manages and saves aliases for class methods, instance methods, constants, delegated methods and more.

Why Does Time Go Faster As We Get Older?

If you travel to Australia, and the yield sign says “Give Way”,you notice it again. That’s why travel is so memorable… As we get older, unfamiliar things and new perceptions are fewer and fewer… Thus it seems that time is passing faster… My own philosophy, which I often forget to follow, is to optimize my perceived lifespan by doing as many unfamiliar things as possible.

Published by

Trevor Turk

A chess-playing machine of the late 18th century, promoted as an automaton but later proved a hoax.