VIM Screenshot
Lots of changes in the past few months. My wife is expecting (twins on the way). Recently switched to a new company in Austin that is definitely a case of bringing Rails to the Enterprise (HR SaaS for big institutions. Page views and visitors in the millions per month). To throw another thing on the stack, I switched back to VIM thanks to some great posts and plugins from jamis and techpickles. Take a look:
Features:
- FuzzyFinderTextmate
- Ack with results in bottom window
- Tim Pope’s rails.vim
- An assortment of other plugins (NERDtree, surround.vim, allml.vim)
- …and an atypical white theme (kudos to Adam Keys for piquing my interest in the white theme)

Speaking at Innotech Austin Tomorrow
I’ll be presenting on “Commercial Advantages of Ruby and Rails” tomorrow (10/16) 2:30pm at the Innotech Austin conference.
See you there!
FiveRuns releases Rails App Health Dashboard
FiveRuns just announced a great feature added to Manage 2.0 that allows users to have a one-page look at the health of their Rail’s app.
clientperf v0.1.6 Released
Spent a few minutes getting some bugfixes into clientperf today.
How to upgrade:
gem install clientperf
clientperf /path/to/rails/app
rake db:migrate
What is fixed:
- Don’t choke on SafeERB
- Added indexes (indices? can you say indexes when you’re talking about databases?)
- Graphs don’t choke when there is no data.
Enjoy!
Announcing Clientperf: Simple Client-Side Rails Performance
I’m giving a talk at Austin on Rails next Tuesday on applying the 14 rules of high-performance websites in the typical rails mongrel/nginx stack, the main idea being to focus on some of the important implementation details when it comes to client-side performance optimization.
As I was planning, I realized that there was no simple as in the we’re-all-spoiled-with-rails simple way to measure client download times in production. Now, there is clientperf. It’s just a start, but decent enough to benchmark the actual client performance impact of any optimizations you make:
How it works
It injects javascript into the page that takes a timestamp at the top of the page and at the bottom of the page. Once the browser is done downloading, evaluating and rendering all assets, clientperf makes one last image request to your server with the start time, end time and the URL. Piece of cake.
How to install
gem install clientperf
clientperf /path/to/rails/app
rake db:migrate
and that’s it!
Source
http://github.com/efalcao/clientperf
Thanks
Thanks to Howard Rauscher for the javascript. Thanks to FiveRuns dev team for helping me learn neat things.
Enjoy and please let me know about bugs.
Turning off RJS debugging on a per controller/action basis
FiveRuns TuneUp is a neat profiling tool for developers. Developing this tool also has brought up some interesting challenges. Here is one that I encountered today:
TuneUp injects into the head of the page and does an AJAX call to fill up the actual run data. We noticed that it was running slow and one of the reasons is that in development mode rails wraps RJS in a javascript try/catch block that produces an alert message with the RJS if there is an exception. On a random run, AJAX response size without RJS debug: 82k, with debug: 386k. That’s quite a bit of overhead.
We can’t tell all TuneUp users to manually turn off RJS debugging, so here is how we disable it solely for our one heavy AJAX action in rails version 2 or greater:
def action_name debug_rjs = response.template.debug_rjs response.template.debug_rjs = false ... response.template.debug_rjs = debug_rjs end
It’s trivial, but it took a little bit of digging through the rails source to find out how to get to this from inside the controller, so I hope it’ll save others some time
Written Elsewhere: One Year With Ruby and Sometimes Still a Newbie
I just wrote another blog post for the FiveRuns blog. I made a total newbie mistake the other day but I think when you read the comments it boils down to a .NET to Ruby transition issue. Enjoy.
Portfolio: UberHour Online
UberHour is a little project started by Howard Rauscher. Along the way I joined him in helping to develop the idea. Recently we put up UberHour Online, which is a really neat online implementation of very popular power hour game. It uses the recently released YouTube API with the website and backend riding on rails. Check it out!
