Links for 09-26-11

How Batman can Help you Build Apps – Shopify

I’d like to give a quick tour of what makes Batman different and why you might want to use it instead of the other amazing frameworks available today.

Bare-bone, stripped-down Devise | Plataforma Tecnologia Blog

It is important to keep in mind that Devise was built by us to be flexible and capable of handling different requirements from different clients, so it is PlataformaTec’s priority to have it as flexible as possible!

wjessop/Scamp – GitHub

A framework for writing Campfire bots

Pogodan | per-app environment variables with pow and rbenv

However with RVM we’d been taking advantage of the per-directory .rvmrc files to set per-application environment variables for configuration (e.g. DB URIs, API keys, etc.) on our dev machines.

summarized the changes over 1.9.2 (Ruby 1.9.3 Release Candidate 1 Released (What’s new?))

A First Look at BankSimple | BankSimple Blog

Gem Versioning and Bundler: Doing it Right « Katz Got Your Tongue?

dwilkie/carrierwave_direct – GitHub

Process your uploads in the background by uploading directly to S3

gzigzigzeo/carrierwave-meta – GitHub

File’s metadata saving plugin for carrierwave

rtomayko/replicate – GitHub

Dump and load relational objects between Ruby environments

ryanb/letter_opener – GitHub

Preview mail in the browser instead of sending

What Self can teach us about the future of JavaScript /by @assaf

[FYI: historic] The desicive moment of the language name Ruby. (Re: [ANN] ruby 1.8.1)

Sane RSS usage

GoRuCo 2011 – Jeremy Ashkenas – CoffeeScript for the Well-Rounded Rubyist on Vimeo

Animated GIFs Capture Stanley Kubrick’s Most Immortal Scenes | Co. Design

GitX (L)

Open Source Mac OS X Git client

How to use iPhone 4 as a Pay-Go iPhone

How to setup an iPhone 4 as a Pay-Go phone

jejacks0n/mercury – GitHub

A fully featured HTML5 WYSIWYG editor written in CoffeeScript on top of the Rails 3.1 asset stack

So, what is GitHub Flow?

Anything in the master branch is deployable
To work on something new, create a descriptively named branch off of master (ie: new-oauth2-scopes)
Commit to that branch locally and regularly push your work to the same named branch on the server
When you need feedback or help, or you think the branch is ready for merging, open a pull request
After someone else has reviewed and signed off on the feature, you can merge it into master
Once it is merged and pushed to ‘master’, you can and should deploy immediately

Ruby on Rails Guides: Ruby on Rails 3.1 Release Notes

Highlights in Rails 3.1: Streaming, Reversible Migrations, Assets Pipeline, jQuery as the default JavaScript library

Mobile development with HTML5 | Engine Yard Ruby on Rails Blog

This post will go over some key concepts and features of HTML5, setting the stage for more advanced subjects.

Heroku Postgres

the largest and most reliable Postgres service in the world

sstephenson/sprockets at v2.0.0 – GitHub

Rack-based asset packaging system

10.6: Terminal and ‘focus follows mouse’ modification – Mac OS X Hints

defaults write FocusFollowsMouse -string NO

Active Record batch processing in parallel processes

My semi-educated guess on the Amazon tablet

balupton/history.js – GitHub

History.js gracefully supports the HTML5 History/State APIs (pushState, replaceState, onPopState) in all browsers. Including continued support for data, titles, replaceState. Supports jQuery, MooTools and Prototype. For HTML5 browsers this means that you can modify the URL directly, without needing to use hashes anymore. For HTML4 browsers it will revert back to using the old onhashchange functionality.

paperplanes. Web Operations 101 For Developers

cloudHQ for Dropbox – Basecamp, Dropbox and Google Docs

Integrate Dropbox, Basecamp, and Google Docs

What came before WebSockets?

ernie/valium – GitHub

Access attribute values directly, without instantiating ActiveRecord objects


No images, no external CSS
No dependencies
Highly configurable
Resolution independent
Works in all major browsers, including IE6
Smaller than an animated GIF (3K minified, 1.7K gzipped)
MIT License

pry/pry – GitHub

an IRB alternative and runtime developer console

Amazon ElastiCache

Amazon ElastiCache is a web service that makes it easy to deploy, operate, and scale an in-memory cache in the cloud.

Skeleton: Beautiful Boilerplate for Responsive, Mobile-Friendly Development

A Beautiful Boilerplate for Responsive, Mobile-Friendly Development

Twitter Bootstrap

Bootstrap is a toolkit from Twitter designed to kickstart development of webapps and sites.
It includes base CSS and HTML for typography, forms, buttons, tables, grids, navigation, and more.

What they’re “protecting” us from – Anil Dash

It’s a choice whether you, or anyone else, wants to accept the falsehood that liberal values are somehow in contradiction with business success at a global scale.

mattmatt/riaktivity – GitHub

Store user timelines in Riak

A Gentle Introduction to CarrierWave | Engine Yard Ruby on Rails Blog

CarrierWave is self-described as a “classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks.” Although I’ve head it referred to as “a new kid on the block” it’s actually quite an old gem. The initial checkin is from August 2008 and the first release was in March 2009. The original name was Merb::Upload and it started without support for Rails.

Share links instantly between computers – SendTab

SendTab is a browser extension that lets you share links instantly between computers.

sj26/rbenv-install – GitHub

A really thin wrapper around ruby-build for rbenv.

Rendering Rails 3.1 assets to string – Phusion Corporate Blog

Understanding “Prototypes” in JavaScript « Katz Got Your Tongue?

ignore the code: More on Software Patents

it is simply not possible to create any non-trivial piece of software that doesn’t violate hundreds of patents. As a result, you can’t release software without putting yourself into a position where you might suddenly lose all of your money.

Why software patents are not fixable –

On Being A Journeyman Software Developer: Being honest vs Making excuses

Often times, we choose to be in certain situations and then, rather than admitting that the situation is bad and dysfunctional, then convince ourselves — and justify to others — that this is the only way it can be. While we are free to choose trade-offs for whatever situation we place ourselves in, it is important to be honest with ourselves about the causes of the situation.

kennethreitz/osx-gcc-installer – GitHub

GCC Installer for OSX! Without Xcode!


At a time when our future affluence depends so heavily on innovation, we have drifted toward a patent regime that not only fails to fulfil its justifying function, to incentivise innovation, but actively impedes innovation.

Nodeload2: Downloads Reloaded – GitHub

sstephenson/rbenv – GitHub

Simple Ruby version management

Bulkr: Backup, download flickr photos & sets (Mac, Windows & Linux)

Bulkr is the complete solution to backup, browse & download photos on Flickr. Install it free.

Ava’s 5 girls and 3 boys !! – a set on Flickr

Ava’s 5 girls and 3 boys !!

has_many :bugs, :through => :rails

After moving to Sam Stephenson’s awesome Pow, not being able to use ruby-debug was the primary obstacle I had adjusting to my new development environment. But as it turns out, it’s very simple to use ruby-debug with Pow. A Word About Unsolicited Redesigns

If you have good ideas and the talent to execute them and argue for them, the world will still sit up and pay attention even if you take care in your language and show respect to those who don’t see things quite the way you do.

LevelDB: A Fast Persistent Key-Value Store – Google Open Source Blog

LevelDB is a fast key-value storage engine written at Google that provides an ordered mapping from string keys to string values. We are pleased to announce that we are open sourcing LevelDB under a BSD-style license.

Gerd Arntz Web Archive

The debt ceiling backlash within the GOP – War Room –

Obama’s and Bush’s effects on the deficit in one graph – Ezra Klein – The Washington Post

Free Time – Marc-André Cournoyer’s blog

Yeah, life is hard, I agree with that.

Intellectual Ventures And The War Over Software Patents : Planet Money : NPR

Pivotal Labs: Talks

If you don’t measure it, you can’t optimize it. Coda Hale of Yammer talks about service-level performance metrics, how they use them to guide their development strategy, and how you can improve the transparency of your own software.

codegram/rack-webconsole – GitHub

Rack-based interactive console (à la Rails console) for your web application’s front-end

rs/SafariOmnibar – GitHub

Safari plugin to add Chrome like omnibar in Safari


Terminus is an experimental Capybara driver implemented in client-side JavaScript. It lets you script your application in any browser on any device, without needing browser plugins.

Blog II – The Sequel Blog – Dangerous Reflection

Bottom line: don’t call ruby’s reflection methods with user-defined strings or you open yourself up to denial of service.

The Slicehost Story

Slicehost—a scrappy web company bootstrapped with $20,000—cashed out for big bucks in 2008. How did they do it? More importantly, was it worth it?

iOS Integration Testing

Today we’re happy to announce KIF, the “Keep It Functional” framework. KIF allows for realistic iOS integration testing through simulated user interaction.

nginx news

Rails migrations with no downtime

Faraday: advanced HTTP requests made easy

Faraday is a library for making HTTP requests and to serve as a backbone for writing API wrapper libraries such as twitter. It has an interesting philosophy, but to really appreciate it you must first understand what problem it solves.

Heroku | Matz joins Heroku

Today marks a very special occasion in the history of Heroku, as we are honored to announce that Yukihiro “Matz” Matsumoto, the creator of Ruby, has joined the Heroku team as Chief Architect, Ruby.

Tuffcode – Home

HTTP Scoop 1.4. The HTTP sniffer for Mac OS X.

Throw, Catch, Raise, Rescue… I’m so confused!

Ruby is a language that tries to anticipate your needs as a programmer. One common need is a way to terminate execution early when we find there is no further work to be done. Unlike in some languages, where we would have to either abuse the exception mechanism or use multiple loop breaks and method returns to achieve the same effect, Ruby provides us with the catch and throw mechanism to quickly and cleanly make an early escape. This leaves begin/raise/rescue free to be used for errors, and nothing else.

jeremyw/stamp – GitHub

Format dates and times based on human-friendly examples, not arcane strftime directives.

brotherbard/gitx – GitHub

Experimental fork of Pieter’s nice git GUI for OS X. Includes: sidebar, fetch, pull, push, add remote, merge, cherry-pick, rebase, clone, clone to. Mac OS X 10.5+ (see wiki for screenshot)

Scaling a web site using HTTP caching and JS async calls | Merbist

The challenge is that a lot of people using the Rails framework are used to doing page caching instead of relying on HTTP caching, even though this feature was added a long time ago. The major problem with page caching is that it doesn’t scale that well as soon as you run more than one server. Indeed you would need to store the page content to a shared drive between your servers or use memcached and do some work to avoid hitting your app every single time. On the other hand, HTTP caching is extremely easy to handle at the application level and it will dramatically reduce the amount of requests hitting your app. Let me explain a little more about HTTP caching.

jyoungblood/smoke.js – GitHub

framework-agnostic styled alert system for javascript

Courtesy Suicide » Matt Legend Gemmell

Excessive verbiage isn’t courtesy; it’s just waffling. Get to the bloody point.

Wildbit » Responsive design for email – the largest mobile audience – Thoughts on building web apps, businesses, and virtual teams

nathanvda/cocoon – GitHub

Dynamic nested forms using jQuery made easy; works with formtastic, simple_form or default forms