Weekly Digest, 11-6-09

How to Gemify your Rails Plugins

Ever since Rails added support for declaring gem dependencies, there is really no (good) reason to use plain ol’ plugins.

Plugging Rack into Rails

Rails 2.3 has Rack baked in. It uses Rack for things like sessions and parameter parsing. But what if you want to add your own middleware to a Rails app?

The Meaning of Information Technology

The first commercial computer was the Lyons Electronic Office I and was used in 1951 to perform vast calculations pertaining to the making and consumption of biscuits. You see, after the war, J. Lyons & Co., a popular chain of British tea shops, was confronted with an appetite for pastries so astronomical (which is understandable given years of tedious disputes with Germany), that the human mind was incapable of solving unaided the problem of distributing tea cakes to their customers.


Librelist.com is a free as in freedom mailing list site for open source projects. It is a place for FOSS communities to discuss all the things they want without ads, censorship, signup requirements, bundled apps, or requirements that you use any particular email client or service.

Introducing Resque – GitHub

Resque is our Redis-backed library for creating background jobs, placing those jobs on multiple queues, and processing them later.


PersistentFS is a fast and efficient POSIX-compliant file system that provides unlimited online storage in the Amazon Web Services (AWS) storage cloud. A PersistentFS file system can be mounted on any Linux computer connected to the internet and accessed like local storage. All data written to the file system is uploaded to Amazon S3 for reliable and cost effective off-site storage, while remaining instantly accessible. This allows you to take advantage of Amazon S3 using your existing software, without writing a single line of code.

CodeRack: Canonical Host

There are often times when you’ll need to redirect requests for some domains or subdomains to a single canonical host. This middleware lets you specify the canonical host for your application, and will perform a 301 redirect for all non-canonical requests.

Rails Best Practices

[Nice overview.]

Why do we have an IMG element?

But none of this answers the original question: why do we have an element? Why not an element? Or an element? Why not a hyperlink with an include attribute, or some combination of rel values? Why an element? Quite simply, because Marc Andreessen shipped one, and shipping code wins.

gabriel’s shrub

S3 Proxy for Google App Engine [Awesome.]

S3Hub: S3 Client (for Mac OS X)

View your S3 online storage, upload, download, set permissions, share with friends and more.

Official Google Blog: This week in search 10/30/09

On Wednesday, we rolled out our new music search feature, fully integrated into Google’s web search. Now, when you search for a band, singer, song name, or album title, Google will recognize it and return a special music result on the top of the page. These new special music results do exactly what you want – they let you listen to the full song.

Traffic Server Podling Status Page – Apache Incubator

Traffic Server fills the need for a fast, extensible and scalable HTTP 1.1 proxy and cache. 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.

Start-up studies: A pop quiz

There’s a classroom exercise that’s a part of the Stanford technology venture program hits its students with each year: If you had five dollars and two hours, what would you do to make as much money as possible?

One-handed computing with the iPhone

The easy single-handed operation of the iPhone1 is not one of its obvious selling points but is one of those little features that grows on you and becomes nearly indispensable. A portable networked computing and gaming device that can be easily operated with one hand can be used in a surprising variety of situations.

Netflix Everywhere: Sorry Cable, You’re History

There are a million different ways for Netflix to fail. But that has always been the case. Netflix should have failed already, taken down by Blockbuster or Wal-Mart, kneecapped by Hollywood, made irrelevant by BitTorrent or iTunes. Yet time and again, the company has not only survived but quietly thrived—on the strength of its unique algorithms and its relentless focus on getting customers content they didn’t even know they wanted.

Speaker’s Tip: Don’t tell the audience you aren’t prepared

People take days off of work, spend hundreds on a conference ticket, travel for thousands of miles, and pay hefty rates for flights and hotels to come hear you speak, and you tell them you didn’t have time to prepare a talk? What’s cool about that?


Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects.

The Y Combinator Startup School 2009 Summary

Y Combinator’s Startup School 2009 was an incredible learning experience for new and experienced entrepreneurs alike. There are ten talks. Here are their key points.

Module: Rack::Utils

Rack::Utils contains a grab-bag of useful methods for writing web applications adopted from all kinds of Ruby libraries.

Thoughts on the Whitehouse.gov switch to Drupal

Yesterday, the new media team at the White House announced via the Associated Press that whitehouse.gov is now running on Drupal, the open source content management system. That Drupal implementation is in turn running on a Red Hat Linux system with Apache, MySQL and the rest of the LAMP stack. Apache Solr is the new White House search engine. This move is obviously a big win for open source.

Things Caches Do

There are different kinds of HTTP caches that are useful for different kinds of things. I want to talk about gateway caches — or, “reverse proxy caches” — and consider their effects on modern, dynamic web application design.

WebSequenceDiagrams.com – Create sequence diagrams in seconds

Don’t waste your afternoon drawing UML Sequence Diagrams. Just enter the description here, and click “draw”. The SD/MSC Generator is an easy alternative to using mouse-centric tools like Microsoft Visio.

stefankroes’s ancestry

Ancestry allows the records of a Ruby on Rails ActiveRecord model to be organised as a tree structure (or hierarchy). It uses a single, intuitively formatted database column, using a variation on the materialised path pattern. It exposes all the standard tree structure relations (ancestors, parent, root, children, siblings, descendants) and all of them can be fetched in a single sql query.

Treating User Myopia

When I said users don’t read anything you put on the screen, I was lying. Users do read. But users will only read the absolute minimum amount of text on the screen necessary to complete their task. I can’t quite explain it, but this kind of user myopia is epidemic. It’s the same problem, everywhere I turn.

The Amazon Relational Database Service (RDS)

Today marks the launch of Amazon RDS – the Amazon Relational Database Service. Amazon RDS is a web service that makes it easy to set up, operate, and scale a relational database in the cloud. Amazon RDS handles all the “muck” of relational database management freeing up its users to focus on their applications and business.

Flickr! It’s made of people

We’ve launched People in Photos, a new feature that will help put a face to the Flickrverse and enable you to highlight members that you’ve photographed in a whole new way. People in Photos lets you add a member to a photo, find photos of people you know, and manage which photos you’re in.

How We Made GitHub Fast

Now that things have settled down from the move to Rackspace, I wanted to take some time to go over the architectural changes that we’ve made in order to bring you a speedier, more scalable GitHub.

Ruby Enterprise Edition Features Guide

With REE, one can tune the garbage collector’s behavior for better server performance. It is possible to specify the initial heap size to start with. The heap size will never drop below the initial size. By carefully selecting the initial heap size one can decrease startup time and increase throughput of server applications.

Passing environment variables to Ruby from Phusion Passenger

Some environment variables must be set before Ruby is started because the Ruby interpreter itself uses them. The RailsBench GC settings environment variables, which are now supported by Ruby Enterprise Edition, are examples of such environment variables.

Using the Nginx Memcached module with Passenger

Nginx, everyone’s favorite speedy web server has a module to hook in directly to memcached. For those of us running Ruby servers behind nginx we can avoid hitting our running Ruby processes completely on a cache hit.


Now, when coding, I try to think: “how can I write this such that if people saw my code, they’d be amazed at how little there is and how little it does”.

Railssummit Slides

Here are the slides of [Pratik Naik’s] presentation at Railssummit 2009… about Rails focused tips/tricks.

Mint CEO Aaron Patzer on Startups

Mint CEO Aaron Patzer talks with entrepreneurs at a JuicePitcher event about the history of his startup, Mint.

Connecting to Multiple Databases Using ActiveRecord

You can call establish_connection with the key that points to another database config in your config/database.yml file


…is an extensible quick-search and shortcut bookmark. [Awesome.]

What problems does Google Wave solve?

It will probably take years before Wave fully penetrates large corporations and replaces the email systems everyone is used to. But it solves so many thorny problems with email that it might well manage to do so, where so many other tentative “email fixes” have failed.

21 Rack Middlewares To Turbocharge Your Ruby Webapps

In this post, we’re going to highlight various Rack middlewares from CodeRack, an on-going Rack middleware competition…

hiddenloop’s paging_keys_js

Keyboard short cuts for paging through listings one item at at time (and across entire pages). Inspired by the navigation at FFFFOUND!

Published by

Trevor Turk

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

One thought on “Weekly Digest, 11-6-09”

Comments are closed.