Continuous Integration for Rails Just Got A Whole Lot Easier March 16
If you already have a continuous integration (ie build) server (such as Pulse, Bamboo, Hudson, or even the venerable old CruiseControl) and you've been trying to include some of your Rails applications then your life just got a whole lot easier.
Enter CI::Reporter. To quote the documentation:
...an add-on to Test::Unit and RSpec that allows you to generate XML reports of your test and/or spec runs. The resulting files can be read by a continuous integration system that understands Ant‘s JUnit report XML format, thus allowing your CI system to track test/spec successes and failures.
So, I simply installed the gem on the build-server and the plugin into my plugins project, configured the build to slurp up the generated XML files and voila! I now get build notifications letting me know how many tests passed and which ones failed.
Thanks Nick!
Installing RedHill on Rails Plugins via HTTP March 15
After much installation pain and anguish experienced by some users of our plugins (due mostly to outages with RubyForge SVN servers and the inability of some users to access SVN from behind firewalls), I've finally managed to spend some time getting a plugin installer-friendly HTTP mirror up and running.
The root of the mirror can be found at http://www.redhillonrails.org/svn/ from which you can browse the entire repository.
If all you're after are the Rails 1.2 compatible plugins, you'll find them at http://www.redhillonrails.org/svn/trunk/vendor/plugins.
If you're after the older Rails 1.1.6 versions, they're available at http://www.redhillonrails.org/svn/tags/release-1.1.6/vendor/plugins.
The mirror is presently refreshed once a day which should be enough for most people.
As always, let me know if I've right royally screwed something up. I've manually tested all of the above but "it works on my machine" definitely applies in the case I'm sure.
Thoughts on Cruisecontrol.rb 1.0 March 13
I just downloaded and installed the Cruisecontrol.rb 1.0 release that was just put out by some of my old co-workers at Thoughtworks earlier today. It literally took about 2 minutes to get builds up and running with our project.
As far as I can tell, it seems to be exactly what you would want out of a CI tool, it's easy to install and it gets out of your way until a build fails. Good stuff.
Hpricot is great March 13
Testing out Twitter March 12
I think that I actually had one of the first batch of Twitt(e)r accounts months and months ago, but I've never really used it. It looks like Twitterrific might change that, at least for a few days, or until I get bored with it again.
Check me out at http://twitter.com/kurt.
Competitious on Rails Tech Talk March 12
United’s Terrible Customer Service March 8
I'm not sure what to make of my experience with United today. I've given them a good review on this blog before, but today made me remember why I hate dealing with them.
The story starts last night when I sleepily booked two tickets to Chicago from San Francisco for later this month. This morning when I woke up I realized that I used my girlfriend's nickname on the ticket instead of her proper legal name. No problem, I thought, I'll just call up and have them change the first name on the ticket.
That's when the fun began. After I spent fifteen minutes navigating the robot phone system to get to a (hard to understand, off-shored) person, I was told that I couldn't change the name on a ticket without a $100 change fee.
A $100 change fee.
To change a first name.
I wasn't aware that this is what the change fee was for. I can understand charging me if I want to change to a different flight, but why would they try to charge me $100 to change the first name of the person on the flight. The only explanation I could come up with is that they were intentionally trying to irritate me.
So i did the only sensible thing. I hung up and called back under the assumption that the first person was crazy. (But not before checking on gethuman.com before calling back to figure out how to avoid the robot phone system.)
This rep informed of the same thing that the last rep did, but luckily, I had another out. The customer service rep on the phone informed me that since I had purchased the ticket within the last 24 hours, the ticket could be canceled with a full refund and rebooked. That made sense, so I told her to go ahead and do that.
Unfortunately, due to the magical airline ticket pricing system that we all know and love, the price of the exact same flight had increased by $96 since 12 hours before. And there was a $15 fee for booking over the phone.
Wonderful.
So I had two choices, change the name and pay a $100 change fee, or cancel the ticket and pay the $96 + $15 difference.
Obviously, neither of these options appealed to me to change a first name.
So the first tact I took was to try to get them to waive the change fee. This has worked for me before on a number of airlines (Continental, Frontier, etc) and I figured it wouldn't be a big deal, since this wasn't really a big change to the ticket.
After being put on hold for 5 minutes, I was informed that that couldn't be done.
I would love to personally thank the supervisor who made that decision.
Eventually what I ended up doing was to have the original ticket refunded and book in a different time that was only $15 more expensive then the original flight that I booked.
So far this cost me $15 and an hour of my time.
To change a first name.
And I ended up with a less convenient flight.
Absurd.
The final slap in the face came just now, when I checked back on United's site. It seems that the pricing fairies have set the price of the flight that I wanted back down to the price of the flight that I booked today.
Thanks, United. I'm done flying your friendly skies.
Silly Micro-Benchmarks Part 2 March 2
Enough folks have emailed me asking for the details on the totally-unscientific and Silly Micro-Benchmarks I did that I decided to paste the last response:
> Could you share your microbenchmark test suite?
ab from httpd-2.2.4
> How did you test?
Spent about 10 minutes per server configuring it to the best of my knowledge (which is actually reasonably good for most of them) and wrote the most efficient hello world application I could for each.
> Which hardware,
An Apple PowerMac 2x dual core 2.66ghz xeon thingie with 6 gigs of ram for the server, an powerbook 2x2ghz CoreDuo with 2 gigs of ram for the client.
> networking stuff
An airport 8 port 10/100 switch
> , and so on. How your test result can be reproducible?
Pretty much cannot be reproduced in a meaningful way, which is the point :-)
-Brian
Anyway, that is that. I have been having fun with commons-math tonight while debugging some stuff, so might have to do some more, but with stats to make them look more valid!