Locos X Rails 2009 – Buenos Aires – April 3 & 4

Posted by chad on March 10, 2009

http://locosxrails.com

I’m going… Anyone from Brazil other than Akita On Rails?

released my first gem – wordpress on rails (wp_on_rails)

Posted by chad on December 20, 2008

A skeleton (but functional) ruby gem that allows manipulation of a WordPress database from rails, using activerecord. WordPress on Rails

poolparty.rb and the immaturity of cloud computing 2

Posted by chad on December 05, 2008

Poolparty.rb is a very promising ec2 management tool. But it’s down right now. (see below) Based on the documentation, poolparty is self-hosting, which is not an advertisement for relying on ec2 as the primary tool to host a site. As reserve capacity it makes sense, but when it’s the only server, it seems expensive and not necessarily reliable. We use ec2 instances for a number of tasks, mostly for data processing, but the unreliability of using a cloud in this way is related to the immaturity of the toolset to manage the cloud. While the instances are an incredible time savings over provisioning and maintaining the physical hardware, I’m finding that I underestimate the time needed to build and manage the tools to manage the cloud. As tools like poolparty improve, i’m sure this will go down, but it’s significant at this point.

Note: downforeveryoneorjustme.com says it’s not even a site on the internet. This is probably related to the way DNS is managed for the site, which is exactly my point. Odds are the instances are running just fine.

post rails summit 1

Posted by chad on December 01, 2008

You never know when you’ll get photographed with 10 beer cans in front of you.

Ruby one-liners

Posted by chad on October 20, 2008

Dave Thomas has a great list of one-liners that are handy for command line jobs in ruby. Today I needed to setup a cron job to find all backup files that match a specific regular expression and delete them when they are 15 days old. Here’s the way I did it (yes some versions of find can do pretty much the same thing but the version that is on the RedHat server i’m using doesn’t seem to do what I want).

find | sort | ruby -pe 'next unless $_ =~ /MYFILTER/; f=$_.gsub(/n/,"");next unless File.mtime(f) < Time.now - 24*60*60*10;File.delete(f) '

Splitting a BaseCamp account into two separate accounts

Posted by chad on October 20, 2008

I have a number of projects in my BaseCamp account and my main client wants to have a different URL for those projects. Additionally, I was paying for the BaseCamp fees but now I’m going to switch to having him pay directly. So, I want to split the account into two accounts and take some projects into the new account and keep some projects in the old account. I emailed 37signals support and Sara responded promptly with this:

Hi Chad,Unfortunately it’s not possible to transfer data between projects or accounts in Basecamp.

- Sarah

Which leads me to wonder if someone wrote a script using the BaseCamp API to do this?

Obie Fernandez Reveals All the Secrets That Make HashRocket Successful

Posted by chad on October 16, 2008

I talked with Obie’s girlfriend and co-worker at HashRocket, Desi McAdam, and she said he would reveal all their secrets during his closing keynote. He has a lot of good information on running a consulting business on his blog that seems to cover a lot of his material here. A good talk.

  • TAFT- Test All the *** Time
  • Rspec – even show this to your clients to prove that their software works
  • Build the Minimum Viable Product
  • Small Releases
  • Write ‘stories’
    • Turn requirements into stories, called ‘storycarding’
    • It takes 3-5 days to do this
  • Schedule using ‘relative’ units of work
    • Estimate each story
  • Have standup meetings

Open Source Brunettes or GitHub as a repository for non-code resources

Posted by chad on October 16, 2008

Seeing as I have been reporting on other Rails events during the conference, I can’t leave this part out. Rails Summit Latin America has been a test tube mix of skinny geeks and beautiful latin women paid to keep them in line. After 48 hours, one SurgeWorks developer, who asked me not to name him, created an open source project to further study the data. In English the name of the project translates to ‘open source brunettes’, and the git tree has been forked already.

Cucumber – scenario based high level test framework by David Chelimsky

Posted by chad on October 16, 2008

You can’t write taste tests for cucumber flavored pepsi, which incidentally is available only in Japan (of course), but you can write tests with Cucumber, which is a framework created by the maintainer of RSpec, David Chelimsky.

Jay Fields discusses the immaturity of testing

Posted by chad on October 16, 2008

Jay gave a talk on testing in the Ruby/Rails world.

Common test mistakes

  • forgetting tests
  • testing everything
  • custom test cases
  • slow test suites
  • 100% test coverage – that is not the goal

I asked Jay what he thought of autotest, and he said unequivocally that he hates it. “If your tests take less than a second, why do you need it? Just click the button.” I think I disagree, because I don’t remember to click the button, and because i don’t always remember that i just changed something that could have broken something else. I’m often surprised when growl pops up a notification that something is broken.

Jay covered problems and benefits of current testing tools:

Selenium

  • 15 different ways to drive it
  • soo slow
  • large test suites become unmaintainable
  • selenium – best tool for cross browser testing
  • runs against the full stack
  • focus on the five most important selenium tests

Test::Unit

  • no mocking infrastructure built in
  • syntax is ugly. argument with chad fowler on this.
  • extremely developer friendly
  • However, granular defect localization
  • Easy to write

Rspec

  • too much magic
  • false positives/negatives
  • too based on english
  • consistent to mancrest, not ‘principle of least surprise’
  • encourages behavorial testing
  • built in mocking
  • no testing facility is complete without a mocking framework

Two Bleeding Edge Ideas

Synthesis written by George Malamedis
Expectations Gem – gives you a recorder

Solutions for slow tests

  • nulldb
  • unitrecord
  • arbs