Full time Apple Mac OS X 11
Now the MBP hasn't been without problems. I ran into the (now admitted) battery problem during Rails Conf. Couldn't use my MBP unless I had a plug to give it some juice. Also, when it's hooked to the 30" cinema, occasionally, the output gets corrupted and I see little aquagreen dots all over my desktop, a reboot usually clears it up thankfully. Back to my story, I haven't totally swapped to the Mac because I still have a (rather new) desktop PC at home. AMD 64-bit X2 3800+ with a couple terabytes of disk space, 4 gigs of ram and 3 21" CRT's hooked to it. I really enjoy this setup with three monitors and didn't really want to give it up just to use the MBP at home.
Out with the new, in with the newer. I figure I wouldn't ever move to Mac all the way if I wasn't forced to use it both at home and at work, so I bit the bullet and ordered a shiny new MacPro for home. I had a limited budget so I had to scale back for now but I got the essentials. I went with the 2.66 duos, left memory at 1G, cut the hard drive to 160GB (I'll pull the 4 Hitachis out of my current desktop), added the extra SuperDrive and Bluetooth (got my free 2GB iPod Nano after rebate) and best of all, 3 20" cinemas. I'll post some pics when I get it all setup. It's gonna be sweet!! I hope they don't wait too long to get PC drivers out for the new hardware just in case I need the occasional native PC app. (I use Parrallels at work already and it's OK, but not for gaming.)
The trade off? Gotta sell my '90 GMC 3/4 ton pickup to pay for it. That's the only way I could get the wife to reluctantly agree to it. That and a few dinners followed up by **censored** should smooth things over pretty well. A new Mac *and* more sex? I think you know who's getting the better deal here! Update
The monitors arrived today, MacPro still hasn't shipped so I can only drool over this picture.

Choosing a Rails Deployment Platform - So Many Choices 4
The Plan
I just ordered a new webserver to replace my aging Dual 850mhz box and I thought I had a plan worked out. Since I still have legacy PHP applications, I chose to use LiteSpeed to power them. LiteSpeed outperforms Apache/mod_php by quite a bit of margin when serving PHP generated content. LiteSpeeds UI for administration also makes it much simpler to manage all the VIrtual Host setups as well.
All the cool kids are using mongrel nowadays for Rails Deployment. Always wanting to hang with the cool kids, I decided that Apache2 would proxy balance to a mongrel cluster for my applications. I planned on running Apache2 on a separate interface anyways to host my projects with SVN.
Testing It
Ok, we have LiteSpeed and Apache2 running on different interfaces on the server. I run ab2 against the LiteSpeed/PHP first using a static html file, then using a Hello World PHP page. The static page registered in at 20K+ rps. Wow, looking good so far. The PHP clocked in at 5K+ rps. Pretty good numbers so far. +1 for choosing LiteSpeed to run the PHP applications.
Moving on to Apache2. I created a Hello World Rails application, lit up a 6-pack of mongrels (using a concurrency of 10 in ab2), ran ab2 and WTH????. 60rps. What a let down. I rerun the test just hitting the index.html of the Rails app, and the numbers come back up to 15K+. Doesn't sound right to me so I tweaked Apache for awhile but to no avail.
Just for SAG, I decided to setup a Hello World Rails application in LiteSpeed. For this configuration, I chose the LSAPI and used a 404 Redirect. Since I didn't want my hopes dashed right away, I decided to just hit the index.html of the Rails app. 10K rps. Hmmmm. That's lower than the Apache2 marks. Maybe this wasn't a good idea. So I'm thinking the Hello World will cash in around 45-50 rps. Let's run it. WTH????. Averaging 400 rps in this configuration. I tinkered around with Apache2 some more to try to get the numbers up, but it just didn't happen.
The Result
With the simple benchmarks I did, they gave me enough information to make a better choice for a deployment platform for Rails. I didn't test lighttpd at all and don't plan to. I don't really care that LiteSpeed is a commercial offering, the developers listen to their customers (even the freeloaders like me) and incorporate changes or fixes quickly. They've been extremely supportive of the Rails community and continue to make changes tailored to running Rails applications.Rails Documentation Fund 2
Rails Documentation Fund
ActiveRecord UML Diagrams 3
Boredom set in this weekend so while playing with my UML modeling software, I decided to model some pieces of ActiveRecord. I found that UML doesn't lend itself too well to the Ruby language. Since UML doesn't provide for mixins and modules, I modeled them as stereotyped dependencies and classes. Don't know if they are useful for anyone but they are nice to have for a quick reference to figure out how ActiveRecord is structured with all the mixins and modules.
YAML Cookbook 3
Installing Raspell on Intel Mac 8
Most of the work for a Rails based Spell Checker has been done already by Dee Zsombor in his How to build an AJAX-ed spellchecker with Ruby On Rails article. In his article he shows how to use Raspell (the Ruby ASpell bindings) to implement an AJAX based spell checker in Rails. While his tutorial worked great on Linux, Raspell failed to compile (manually or using the gem) on Intel Mac. The compiler was complaining of multiple symbol errors defined in raspell.h. Even though it had pre-processor IFNDEF statements, it still acted like it was including the header multiple times. While there may be another way to fix this, the quick and simple way was to take all the code from dictinfo.c and aspell.c and inject it into raspell.c. Problem solved.
Hopefully, in a few weeks, I'll be able to release a Rails SpellChecker Plugin which will enable spell checking on any text field/area with a simple Rails helper method.
Macbook Battery Dead 7
RailsConf Update 3
Mike Clarks Introduction to Capistrano was pretty good. Although I don't personally plan to use it until it works in parallel, it's still a pretty nice piece of software, although I still prefer my multicast notification and ftp-diff pull solution better. Maybe I should make Castripano???
The next session doesn't even deserve any mention, if you were stuck in it then you know what I'm talking about.
Dr. Stefan Kaes' session on Optimizing Rails had a lot of excellent material presented, although his presentation style was pretty dry. Much better talking to him in person.
I'm sure Martin Fowlers keynote was filled with insight, unfortunately, most of the caboosers were busy negotiating how many and what type of pizzas to get for dinner.
Afterwards, we acquired a room in the hotel and had some famous Chicago Deep Dish pizza from Giordanos. Think this is the first time in my life 2 pieces of pizza has filled me up, gotta love Chicago pizza!
Paul Graham's poetic speech was excellent and dealt with some items that I struggle with, mainly about taking risk. I have a lot of good ideas for applications, but my inner self talks me out of them before I even start coding.
To cap off the night, Why the lucky stiff did his thing. While I can certainly appreciate Why's artistic creativity, it was beyond the scope of my understanding. The only thing that I understood was Robert Scoble killing David Heinemeier Hansson. Others really seemed to enjoy it though. I imagine better acoustics would have improved the act.
Let's hope tomorrow continues to improve on the quality of the sessions and keynotes.
Hello Chicago!
I haven't flown anywhere for quite awhile and I guess lighters are on the "banned" list of items for carry on (ironically, matches are ok????). So after my lighters got confiscated, I had to pay $6 for a pack of matches. The good news is, they came with a free pack of cigarettes.
More later as the conference progresses....



