austin entrepreneur

clientperf v0.1.6 Released

Posted in Uncategorized by efalcao on June 29th, 2008

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!

Tagged with: , ,

Slides From My Austin on Rails Talk

Posted in Uncategorized by efalcao on June 25th, 2008

Here are the slides from my talk last night:

Announcing Clientperf: Simple Client-Side Rails Performance

Posted in Uncategorized by efalcao on June 21st, 2008

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

Posted in Uncategorized by efalcao on June 10th, 2008

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

FiveRuns 2.0 is Now in Beta

Posted in Uncategorized by efalcao on May 13th, 2008

Written Elsewhere: One Year With Ruby and Sometimes Still a Newbie

Posted in Uncategorized by efalcao on May 7th, 2008

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.

Tagged with:

Portfolio: UberHour Online

Posted in Uncategorized by efalcao on April 3rd, 2008

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!

Written Elsewhere: How to be a Smart Early Adopter

Posted in Uncategorized by efalcao on February 27th, 2008

I wrote a blog post for the FiveRuns corporate blog. Here’s the link: http://blog.fiveruns.com/2008/2/26/how-to-be-a-smart-early-adopter.

Austin on Rails and FiveRuns Featured in the Statesman

Posted in Uncategorized by efalcao on January 31st, 2008

Last time I went to Austin on Rails (April ‘06), it was about 20 people with only about 3 or 4 in the room getting paid to do rails development full time. At January’s meeting, there were 50+ people with more seeking rails developers than those seeking employment.

It’s an exciting time to be a rails developer in Austin, the city has a very vibrant rails community.

Anyhow, the Statesman was there and FiveRuns is mentioned a few times in the article. Check it out.

Life Changes

Posted in Uncategorized by efalcao on January 11th, 2008

After it became clear that Evenlevel was down in the dumps, it became time to regroup. I think that my wife and I genuinely mourned that fact that so much time and sacrifice had been poured into Evenlevel and it ended up not working out. One day I woke up and had to figure out what to do next. Do I keep consulting and work on a startup on the side? Do I get a boring job and work on a startup on the side? Or do I go back to a startup and beef up on my skills and contribute?

EJ also had to hit the job market post-Evenlevel. He found a great job at a startup very quickly and had multiple offers thanks to the story of Evenlevel as an interview tool. This steered me towards option #3: Contribute at least a few years to a startup, regroup and build my skills.

I had several interviews and had three offers on the table within a few weeks. I felt very fortunate to have three very different offers on the table:

  1. A 9-month consulting gig that paid very well. This afforded me more time to figure out what my next step would be and the work was going to be fairly easy. They used ASP.NET.
  2. A full-time position at a startup where I would be a more senior developer. They were doing ASP.NET and were looking to focus in areas in which I have a lot of experience (on-page search engine optimization, client side performance optimization, etc). They used ASP.NET.
  3. A full-time position at a startup where I would be the lowly developer on the team. They built their product on rails.

I think that given these three choices, there really wasn’t a choice at all. I chose a developer position at option #3. The company is called Fiveruns and the product is enterprise server management for rails. This has been my golden opportunity to do rails development full time, to really master an emerging framework and language, and to belong to an elite team of individuals.

I couldn’t be happier. There is something special about being surrounded by elite developers. I think it’s so important at this point in my career to not be on top. I could have been on top at option #2, but the amount of learning that I could accomplish in a day would be low. I would simply be taking plays out of a playbook. At my current employer, my skills are going to keep growing at a strong pace for a long time.

In terms of development philosophy, Fiveruns is also a very important fit. I have been doing .NET development as my paying job for many years now, but I have always been using open-source software for my personal projects. This is my chance to emphasize my passion for FOSS and to really hone my skills. I have also been given the opportunity to work full time with a MacBook Pro, a real treat ;-)

In my heart of hearts I’ll always been an entrepreneur, and I’ll almost certainly start a new company years down the road. But for the time being, and for the foreseeable future, I’m ecstatic to hone my skills and be a part of a great team whose products I really believe in. I’ve always read that venture capital is an investment in people and I am really seeing that in the team at Fiveruns.

Given my post rate, I’ll see you in March ;-)

Tagged with: , ,