Pages

Why switching to Mac was the right move for me

I'm now at the four month mark in my move to Mac. It didn't start out as a switch; when I bought my MacBook in the beginning of February I was really looking for an excuse to play with some new technology. I was satisfied—not excited mind you but satisfied—to use Windows as my operating system. I had my development environment on Windows and was well versed in all the ins and outs of it. I custom built my PCs myself, mildly over-clocking them to get better performance and being very comfortable in trouble shooting virtually any class of problem. I was a pretty hardcore Windows guy.

What started as an addition to my little technology family evolved pretty rapidly though. Not only did I find the Mac intriguing and fun to use, I found myself enjoying my Windows machine that much less. The MacBook went from a curiosity to a cool toy to my preferred personal productivity tool in a very short period of time. After a couple of months I hadn't really switched though, my MacBook was really just my trusty sidekick and Windows continued to do the heavy lifting for me.

I would sit in front of my Windows machine and do my development work and then slide over to the MacBook for virtually everything else. Email, web browsing, news feeds, blogging – all of that became the domain of my MacBook. This worked great until I realized that I was simply not enjoying working on the Windows machine any longer. It's not that it suddenly became more difficult to use or my machine's performance was poor, I just didn't like using Windows. It became the older commuter car that I took to work every day while the Mac was an open top sports car that I couldn't wait to drive on weekends. 

I was fascinated by the Mac Pro and the power it had. OS X screamed on my little MacBook and I wondered what it would perform like on a Mac Pro. It met or exceeded my relatively high expectations.  Three days after I got the Mac Pro was the day I technically switched to Mac. Why? Because after transferring my files from my Windows machine to my Mac Pro I shut down the Windows XP machine. Turned it off. Stopped using it.

Yes, I do fire it up occasionally if I need to transfer something I didn't get the first time but I now use my two Macs throughout the day, occasionally use the Ubuntu machine and simply bang my knees into the powered down case that holds Windows. It is also much quieter in my office now.

I spent 17 years using Windows, a couple more if you count the experiments with the dreadful Windows/286 & Windows/386. Man real mode sucked. I was a heavy DOS user before that. On Windows I went through 3.0, 3.1, Workgroups, NT 4.0, 95, 98, ME, 2000, XP, 2003 Server and Vista. I had spent countless hours honing my skills with the platform, both as a power user and professional software developer. How would it be possible for someone with my background to switch to a completely new platform and walk away from all of that history?

I've been wondering about that lately and have come to a conclusion. I was just tired of Windows. There was nothing about it that really excited me. I waited 5 years for Vista to come around and when it did I was unimpressed. There was nothing that really stood out. The Aero interface had some cool visual effects but other than that Vista was more of a pain than anything else. It was really slow on a two year old machine I have (which had the Vista Capable logo), the security was oppressive and even though it had been building up for years the graphics driver situation was a mess for many months after its release.

When I started using computers back in the early 80s it was a passion of mine. I would immerse myself in the technology, staying up until the wee hours learning everything I could. I would lose track of time very easily, wondering why all of a sudden it was so dark (or light) outside. For many years now that passion has been gone. I could get a glimpse of it by purchasing a new machine and spending a few days optimizing it but within a week or so the excitement would wear off. 

It's now four months later and I'm still looking forward to the cool things I can do with my Macs. I have learned a lot in a relatively short period of time but I have so much that I'm looking forward to mastering. More than anything I'm glad I switched to Mac because it has rekindled that passion.

Computers are fun and exciting again to me.

Fixing a simple Time Machine error

This morning I nudged the mouse on my Mac Pro and was welcomed with the following window:
Time Machine Error. Unable to complete backup. An error occurred while copying files to the backup volume.
Funny thing is that the dialog has an OK button. It's really not OK. Why not? Because it didn't tell me where the problem was.

As I've said before, I love the simplicity of Time Machine, though presenting an error message like this is not very helpful. Something - anything - to indicate what went wrong would be a good idea. I accept that you don't want to scare off the non-techies with a detailed error message but having a little "more" link that described what the problem is would have helped.

Rather than investigate I decided to go with the flow. I clicked the OK button and then told Time Machine to back up now. It happily whirred away and looked like everything was fine, then at the very end up popped the failure notification again. Crap.

I did what I always do when something unexpected happens on my computer: I Google'd up the error message. There were a number of solutions offered up, many involving reformatting the TM drive. I felt that was a little drastic so I looked into the Backup drive in Finder and saw that the last folder was:

2008-05-30-064104.inProgress


I dragged that folder into the Trash can and was prompted for my login credentials. The file was whisked away and I asked Time Machine to do another backup and it proceeded fine.

Finding out what happened
Wanting to understand why this occurred I popped around looking for logs. In reviewing the current System Log (/var/log/system.log) I found entries that indicated one of my Growl plugins had a problem being written to the backup. Once that occurred the "in progress" backup file was corrupted and needed to be deleted in order for Time Machine to continue.

I'm not sure what caused the problem. The backup and main disks appear to be operating fine; I ran Disk Utility's Verify Disk on both and they came up clean. Perhaps a Growl notification opened the plugin in mid-read? Not too sure but it all seems fine now.

If you happen to get the error message above you may want to just check your backup volumes to see if you've got an open backup that's listed as In Progress, even though Time Machine is not running. Try deleting that to see if it allows your backups to continue. At least that's what worked for me!

Sync with Google Contacts in 10.5.3 - Not

I was scanning through the news feeds yesterday and came across an official Google Mac Blog post that says I can now synchronize my Google contact list with my local address book. There's even a nice little picture of it:

So after updating to 10.5.3 I fired up Address Book and looked at the preferences but the Google Sync option at the bottom was missing. I did a little research and apparently this is only an option if you have an iPhone or iPod Touch that's been hooked to your Mac. I'd love an iPhone but I don't have one so apparently the option is not available to me. I don't really understand the logic behind that one.

A note to the Google folks that run that blog: perhaps you should update your article to reflect that this only works if you have an iPhone or iPod Touch?

Lifehacker (an outstanding site) has a hack that is supposed to get it working on Macs that are not tethered to an iPhone or Touch.  Turns out there are some problems with using that method based on the comments under the article though so I held off on trying it myself.

Do I really want to sync with Google Contacts anyway?
While going through and trying to figure out if I wanted to make this work I started thinking through how my Google Contact list is used compared to my address book. Gmail automatically adds every person you send an e-mail to into your Contacts list - there is no option to turn that off.  I was once asked to send an e-mail out to the parents of my son's football team - a list that had over 90 people on it I don't communicate with often at all - yet all of them are now parked in my Contact list.

Until Google gives me the option in Gmail to not auto-add every single person into my address book I don't see the value in it. My address book will be populated with hundreds of people that I don't even have a name or phone number for, just a cryptic e-mail address.

For once I'm really glad I found a feature that didn't work.

Apple releases 10.5.3 - how the update went

I saw this afternoon that Apple has released the 10.5.3 update and decided that I would update my MacBook. The update itself is 420MB in size and took me about 20 minutes to download using my Verizon FIOS connection. I simply did the Apple / Software Update... route and let it download and install it.

Before I did that I forced Time Machine to do a "back up now" to make sure I had a current picture of my Mac. Once the download was complete it spent some more time doing installs (about 5 minutes or so), then prompted me that it needed to reboot the machine.

The reboot process ran about 5 minutes (spinning gear) before it prompted me to log in. Once that was done I was up and running, though not everything was available immediately. The Dashboard was not available initially and a quick look at iStat menu showed some pretty heavily sustained CPU and disk activity. Dashboard came back after a little while but Spotlight was still out until 12 minutes in because it was "indexing the backup".

I have a 1TB MyBook drive attached via USB that I run TimeMachine against. Since I have a 320GB HD in the MacBook that means a fair amount of data to reindex.

Once Spotlight became available the CPU went on another work bender with MDS and MDWORKER cranking pretty hard. These are used by Spotlight for reindexing and made the machine a bit sluggish while they were working. It was still useable mind you, just really busy.

A full 25 minutes after my reboot the machine was still cranking away with indexing tasks; both MDS and MDWORKER using a sustained 20% CPU. I'm watching my MacBook as I write this on my MacPro and at 38 minutes in the machine is still going through peaks and valleys of CPU usage.

While it's probably safe to shut down the machine or put it to sleep while the MDS and MDWORKER process is happily working away I wouldn't recommend it. Best bet is to perform this upgrade when you can let the machine sit and bake for a while - plan on an hour - then letting it complete everything.

If you have any feedback on the 10.5.3 release that would be of help to others please add it in the comments below!

Update: Over an hour later it's still busy indexing away. Note the iStat results:

Final Update: It took a little over 2 hours for the machine to finally settle down and complete the reindexing process.

Really Final Update: It appears that this was related to having an attached USB based WD MyBook drive (1TB), which I use for Time Machine backups. When I upgraded my Mac Pro the indexing after the final reboot lasted a couple of minutes with very low CPU impact.

Taking Quicksilver for a spin

I've now been blogging about my Mac experience for nearly four months. In that time I've had one product consistently recommended to me by the readers of this blog: Quicksilver. Initially I was getting so many recommendations for different products to try that I couldn't keep track of all of them and Quicksilver was one I would get to "some day".

As the weeks went by I continued to get Quicksilver recommendations. Finally I decided to look into it a bit more. I went to the web site and started to poke around. I scanned through a couple of tutorials and was basically a bit overwhelmed - while Quicksilver could be used as a simple Spotlight replacement it also had a huge number of plugins that would provide enhanced functionality. I like my Mac because it's simple, not complicated, and Quicksilver looked like it would take a fair amount of work to just get configured properly. I watched a screen cast from a now defunct web site that contained 10 minutes of a fast talking walk through just to get Quicksilver installed and configured and that reinforced it for me.

Back to the shelf for Quicksilver.

Well, not long after I wrote my last post about Spotlight I started to have second thoughts about using it. I've now seen my Spotlight index get corrupted 3 times. If you are using Spotlight for searches - which is what it's designed to do - and it can't find what you are looking for then you can assume one of two things: either the item doesn't exist or your Spotlight index is corrupt. Since both of those situations give the same results it's hard to trust Spotlight. As Pecos Bill noted in some recent comments, hopefully this will be addressed in 10.5.3.

Instead of waiting around for that possible event I decided to give Quicksilver one more try. My initial goals are not very ambitious; allow me to quickly launch applications without touching the mouse, find documents that I have on my local hard drive and search through recent browser history. I know Quicksilver can do a lot more than that but for my purposes all I really wanted to do was replace Spotlight for now. Once mastered I'll look into using more functionality.

Launching Applications
This was about as easy as it gets. Quicksilver is FAST; it loads quickly and has this uncanny ability to present the application I want to run after 2-3 letters. The text model is a little different than Spotlight since the letters you type will disappear after a second - there is not a text entry field. Make a mistake? Hit backspace just once and everything you type up until that point is gone. In practice this is not an issue for application launching - at least not for me - because it always seems to find the right app.

Searching for Documents and Browser History
Again, the results I received were nearly identical to the way Spotlight worked for me. It quickly found the documents I was searching for provided they were in my list of "watched" folders. Searching for documents is a bit odd without a dedicated search box though. Any fat fingering of the search string and it's time for a do-over. I'm also finding that if I hit a period while in the middle of a query the searching stops and the only way to get back into search mode is to hit the Quicksilver activation keys twice (close and reopen). 

There are clearly some quirks to work through here but I can see the value in this.

Bonus feature - the clipboard history
There was one plugin that I did try out and start to use - the Clipboard History manager. This little gem will keep track of the last X items (I have mine set to 9) you copied to your clipboard and allow you to select and paste them easily. I simply activate Quicksilver and then hit Command-L. Up popped my list of recently copied items; all I need to do is double click on an item from that list and it's pasted into the focused window below or press the number next to the item on the list. Very handy.

In summary Quicksilver looks to be a blessing to people that simply love to use the keyboard. If you are keyboard inclined at all and would like an alternative to touching the mouse when doing all but simple transitions between applications then Quicksilver looks like it can be quite powerful.

Make Spotlight find your kind of files

Spotlight is a great feature in Leopard, one that I use every day. My primary use up until lately has been to launch applications with it; if I don't see the application I want in the Dock bar I simply hit Command-Space and type in the first few letters of the application. Since applications are pushed to the top I can often just hit Return and my application is loading up. Even if the application is in the Dock bar sometimes I'll use Spotlight because it's so quick.

I was working through a fantastic article from Kirk McElhearn in Macworld about finding files fast. He has a bunch of tips on how to make the most of both Spotlight and Finder. It's an excellent read and I highly recommend it.

With a plethora of tips available I realized that I really would not incorporate all of them into my daily usage. There was one tip however that jumped out at me as very helpful.

Using kind: in the search to find that pesky PDF file
Spotlight searches for a great many things; applications, documents, bookmarks, etc. This is both good and bad. Good in that it can find anything, bad in that it shows nearly everything. If you know that you want to find a specific class of file you can specify it using the "kind:" keyword.

As an example I have a PDF file that I've been referencing on and off lately. I don't want to throw it on my desktop and see it every day though, nor do I want to hunt for it in the Finder. Now I simply type "kind:pdf bgc" and the PDF file for the Boys and Girls Club that I need is right there. 

Finding that web site I visited a couple days ago
Another example is when I try to look for a site that I visited recently. I want to scan through my bookmarks history but given the volume of bookmarks that can take time. I was reading a great tutorial on building Ruby on Rails applications but could not remember the title or author's name and I didn't bother to bookmark it at the time. When did I visit that site? Two, three, four days ago? Scanning through my history just took too long.

By firing up Spotlight and entering "kind:history tutorial rails" the page I was looking for was in position 5 on the list. Without the "kind:history" filter I would never have seen it just typing "tutorial rails" into Spotlight. That alone is a huge time saver for me.

There are lots of different kind keywords that you can use. The ones I find valuable are bookmark, history, pdf, email and todo. You can get a complete list from Kirk's article.

Keeping Spotlight current
I mentioned before that Spotlight's index can become corrupt and gave a tip on how to fix it. If I had to pick out a single thing that will drive me away from using Spotlight it's that occasionally files cannot be found in the index and it needs to be rebuilt. Apple really needs to understand why this happens and fix it. I've thought about putting the reindex command into my nightly script but that likely won't help the problem since I don't know what action is corrupting the index in the first place.

On second thought, one thing I have noticed is that my index has become corrupt on my MacBook several times, yet my Mac Pro has not had that issue yet. I wonder if there's a correlation between putting the MacBook to sleep (closing the lid) and reopening it just a few seconds later while it's still writing the disk image? Hell, I'm not sure what could be causing it but something needs to be done by Apple about it.

Maybe it's time I give Quicksilver a second look.

Why my disk and CPU are busy without me

I'm off at the beach this weekend with the family so I brought the trusty MacBook along. Overnight I closed the lid, putting the MacBook to sleep, and not long after I opened it this morning iStat menu was showing a lot of CPU activity and I could hear the disk thrashing a bit. I wasn't running anything other than Safari at the time so I became curious; what was causing the machine to work all of a sudden?

When I looked at iStat it was showing that the find process was using 75% of my CPU activity. But what was find and why was it working now?

After a little research I found that according to Apple's site find is a file system maintenance utility and that it is run as part of a daily, weekly and monthly schedule. Since I had put the MacBook into sleep mode overnight and the daily and weekly scheduled tasks had not run OS X decided to run it not long after I took it out of sleep mode. Normally these maintenance tasks are scheduled to run at 03:15 everyday, 04:30 on Saturdays, and 05:30 on the first day of each month.

All told it ran for about 15 minutes or so with varying periods of activity. I also found that I could see what was inside these tasks by examining the results of the daily, weekly and monthly logs. If you want to see what your Mac has been up to while you were sleeping just pop open one of the following files:

/var/log/daily.out
/var/log/weekly.out
/var/log/monthly.out

Inside of these files are the details of what the scheduled maintenance tasks were up to.

Making the most of QuickLook

It was only a month ago that I really discovered the QuickLook feature - arguably one of the most popular features in Leopard, especially if yesterday's informal poll was any indication.  It's hard for Windows users like me that have switched to adopt all of the newer features and QuickLook was one that took me a while.

I decided to follow the advice of several folks here and look around at the various plugins that are available for QuickLook to see if they would help my experience even more. There appears to be two web sites dedicated to cataloging QuickLook Plugins:


Both sites contain mostly the same content but provide slightly different value - both have RSS feeds which makes it easy to stay on top of new plugins as they are discovered. I scanned through the lists and found 3 plugins that I'm already enjoying:

BetterZip QuickLook Generator
I'm rather surprised that Apple didn't include this one in OS X, especially given the way ZIP files are natively handled (auto-expanded when opening). This version is free and allows you to navigate down into folders within a ZIP file without having to open it or use a utility like Zipeg to get inside. It handles all the usual file types: ZIP, TAR, GZip, BZip2, ARJ, LZH, ISO, CHM, CAB, CPIO, RAR, 7-Zip, DEB, RPM, StuffIt's SIT, DiskDoubler, BinHex, and MacBinary.

You can download BetterZip from their web site.

Suspicious Package
Coming from the Windows world, where viruses and Malware are a possibility in any download I have a heightened sense of suspicion about anything I find on the Interwebs. I was drawn to this plugin on name alone.

It's a free tool that will inspect the contents of any package, displaying not only the contents but a quick view of the installation script as well.

This package is made by Mother's Ruin Software and can be downloaded directly from their web site.

XDD Folder
Though not a highly useful plugin because you can't navigate into folders, XDD's Folder plugin is nice when you are in that "QuickLook Zone" and want to see what's inside a folder without popping it open.

The Folder plugin is available for download from XDD's Mac page. Version .03 appears to be the latest as of right now.

Installation Notes
Place the *.qlgenerator file you get in your /Library/QuickLook folder. Once it's there open a terminal window and enter the following command:

qlmanage -r

This will reload all of the plugins.

So there you have it - some handy little Quicklook plugins and a couple of plugin resources to help keep an eye on them. Thanks to Welles for the link that got me started down this path!

What I'm missing is a QuickLook Plugin for DMG files - I'd love to see the contents without having to mount that DMG file on to the desktop. If anyone has a lead on that please shout it out!

My favorite feature in OS X is...

Mac OS X 10.5 has some amazing features and as a recent switcher from Windows to Mac I've spent a lot of time using as many of them as I could so that I could really become proficient with my Mac. This morning I got to thinking: if I had to choose one single feature in OS X that I would have a difficult time without, what would it be?

For me that feature is Spaces.

My use of Spaces has become highly tuned now. On my dual screen Mac Pro I have 6 Spaces and keep certain types of application targeted in each of them. Here's how I use them:

 1) NetNewsWire  2) iTunes 
 3) Safari / Adium  4) Open work area 
 5) Rails development area  6) VMware Fusion / Windows XP 

Which means that when activated it looks like this:
I have mouse button 6 on my Logitech mouse dedicated to Spaces so I can quickly navigate when I'm in "mouse mode", I have F5 dedicated to Spaces on the keyboard when I'm in touch type mode and I use either Control-Option-Arrow to move between spaces quickly or hit Control-Number to pop directly to a window. If I'm alternating between two applications quickly I'm hitting Command-Tab.

On my MacBook with its limited screen real estate Spaces is even more important.

What's your favorite?
So there you have it - my most used and valued feature of OS X - the one I would have a really hard time without. Apple says there are over 300 new features in OS X - if you had to choose one single feature on your Mac (Finder doesn't count!) that you couldn't live without, what would it be?

Making TextMate really dance with PeepCode

Since I've been learning Ruby on Rails I decided to take a step back and become as proficient as possible with TextMate. For those that don't know about it, TextMate is a fantastic editor available exclusively on the Mac platform. What makes it such a great editor is not that it has a wonderful editing surface or is able to save files faster than some other tool - from that standpoint it's not really all that different than TextEdit.

What make TextMate so cool is that it provides some great extensions - called Bundles - that can help you use it much as you might an Interactive Development Environment (IDE) in a complete development package. You can either create your own Bundles with language templates and helpers or you can choose from a large array of different Bundles that are freely available for TextMate.

There is a very good Ruby on Rails bundle that actually ships with TextMate. It has a number of features that can not only make quick work of class and definition tasks but can also run many of the scripts that help you build Rails applications. It really does turn TextMate into a powerful IDE for Ruby on Rails.

The challenge is learning all of these little shortcuts. You could literally spend days doing nothing but walking through all of the menus that are provided, trying to learn how it all works. It can be a bit overwhelming and lead you to just use TextMate as a simple text editor - but that's such a waste.

PeepCode Screencasts to the rescue
Travis Jeffrey commented in one of my earlier RoR posts that I should take a look at PeepCode's screencasts to help me learn Ruby a little more quickly. What they sell at the PeepCode site is a series of screencasts that not only can help you learn Ruby on Rails but also all of the TextMate extensions. At $9 a pop I figured I would give it a try.

The TextMate screencast is nicely produced and runs through virtually all of the features of the RoR Bundle. The pace is very fast and at times it can be a challenge to keep up - when I ran through it I kept one finger near the Pause (F8) button because I was either taking quick notes or trying out the keystrokes in a TextMate window.

While this sounds like a complaint it's actually a compliment. With the pace being that quick you can learn a lot in a very short period of time. I didn't find myself losing interest in this, even though the run time on it is just over an hour long. I already feel that I'm going to be much more productive after just running through it once.

Some times you can't appreciate the power of a tool until you've seen it in action under the hands of a professional and TextMate with the RoR Bundle is one of those.

Update Your Bundle Before You Watch
I learned the hard way that the RoR Bundle that ships with TextMate is a bit dated and does not leverage all of the Rails 2.0 enhancements and as a result does not match up with the Peepcode screencast. Before you try following along with this video you will need to run through a couple of steps:
  1. If TextMate is running, close it.
  2. Visit RailsBundle.com and download the latest RoR TMBundle file.
  3. The file is compressed - opening it will result in the creation of a Ruby on Rails.tmbundle file.
  4. Open that file - you will be asked by TextMate if you want to update the bundle. Click Update.
That's it - you will now have the latest Ruby on Rails bundle and it will match up with the examples in the screencast. You will also want to make sure that the scope for TextMate - which is at the bottom status bar just to the right of the column counter - reads Ruby on Rails.

One Last Little TextMate Tip - The To Do List Bundle
Most programmers love to document things that need to be optimized or repaired by placing small comments in their code. TextMate has a Bundle called TODO that will open a small window and display an organized list of items marked with comments containing TODO, FIXME and CHANGED. You can add more of these with standard regular expressions and they will be presented in your list. You can then click on the link provided in the list and jump to that point in the code.
If you are using TextMate as a glorified text editor do yourself a huge favor and take the time to learn the extensions for your language or file type. This is one of those things that will give you a huge return on your investment.

Out with the Logitech driver, in with USB Overdrive

I've had a little problem with my Logitech Control Center driver for a while now. I would get this little LCC Update icon appearing in my Dock every once in a while. It seemed as though the updater was trying to tell me something. I would click on the icon but nothing would appear. Going to the Logitech site would result in seeing the same version available for download that I already had on my machines. This was occurring on both my MacBook and Mac Pro so I was pretty sure it wasn't hardware specific.

I also had a problem with TextMate, my favorite programmer's editor. Every time I would try to use the "mate" terminal command it would generate an exception and not load TextMate. I could start TextMate from the Dock bar or through Spotlight or by clicking on the Textmate.app icon, but the symbolic link that TextMate created for me was not working. Since I've been playing with Ruby on Rails I'm spending a lot of time in a terminal window and access to this is very important.

I did a little research and found Steve Jamesson's blog - he was experiencing the same problem I was. It turns out the Logitech Control Center was at fault! That was all I needed to hear - I ran the uninstall program for it, did a reboot and now the "mate" terminal command was working. Happy, happy, joy, joy.

Now my mouse is button "light"
Well, not quite happy, happy, joy, joy. Now my advanced Logitech Mx510 gaming mouse was turned into a simple device and OS X would not recognize my extra buttons. I love those buttons - I use them for browser navigation and to access Spaces. I needed something to make this work again.

From what I could see there are three aftermarket drivers that will allow you to map external devices - some not just mice but joysticks and other components as well. They are:


Each of these is sold as shareware. I decided to give USB Overdrive a try since that's what Steve Jamesson got to work. It was quick and easy to set up and sure enough I regained the function of my extra mouse buttons. If it continues to look like a winner over the next couple of days I'll be paying the $20 to get it - I think it's really important to support these guys that produce shareware.

Some Advice for Logitech
Apparently a company as large as Logitech doesn't have the resources to create proper drivers for their own devices - just read some of the comments over at Version Tracker - yet these little independent shops seem to be able to pull it off. If you are going to list that your driver supports the OS you should at least update the driver when you know it's defective.

In the unlikely event that anyone at Logitech reads this here's some advice: get someone in your business development group to talk to one of the three folks that make these little utilities. Work out a little license arrangement and make it available as your Mac OS X driver. The cost of the license to you would be minimal and the goodwill you would generate among the Mac community would be priceless.

UPDATE: I just noticed that many of my Growl notifications that were not working suddenly are working again.

Knowing where you are in Leopard's Finder

It's happened to me many times; I'm deep into the folder structure of one of my hard drives and I lose track of where I am. Sometimes I will double click on a folder name to make it the primary view but then I lose context.

While the Show Path Bar option in the Finder is helpful it's a little too verbose for me. It displays each of the folder icons as well as the folder names. I just want a quick path to the folder I'm looking at.

It turns out there is a Finder setting that you can use to display the full path of your current view in the title bar of the Finder window.

Open a terminal session and enter the following:

defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES

Once that command has been executed you will need to relaunch the Finder for the change to take effect. You can do this by holding down the Option key and then right-clicking the Finder in the Dock bar then selecting the Relaunch option.

Coming from the Windows world I always liked to have my complete path accessible in the Explorer window - this gives me that same effect. I really wish that the path it displays in the title bar was "copyable" to the clipboard, though it is not. On to the second short tip:

Copying the Path to the Clipboard
The second thing I needed was the ability to get access to the path so that I could copy it to the clipboard easily - usually because I'm sending a reference to the path to someone else on my network or creating a script file to manage something in a specific location.

I know there are several ways of doing this but the one that seems to work best for me is to have the file or folder selected in the Finder and then choose the menu Finder / Services / TextEdit / New Window Containing Selection. This will pop up TextEdit with the entire path to whatever you have selected in the editing area.

If you know of a better way to get access to that file path quickly just drop it into the comments below. As Ross Perot would say, I'm all ears.

Roll your own Dashboard Radar Widget in 30 seconds

I spent the first 30 years of my life in sunny Southern California where the weather report primarily consisted of a recitation of the smog alert levels and information on what was happening in the rest of the country. Having lived on the East coast for the last 15 years weather has become a little more important to me - we actually have a lot of it.

I was playing around with the Dashboard yesterday, looking for a decent widget to help me get a good radar picture of my area. The weather widget that comes with Leopard is okay because it shows a forecast in a pleasing format however for those days when you have a serious thunderstorm in the area or a Nor'easter parks it's butt on your house you like to get a better idea of when it's going to vacate the area. For that, nothing beats a nice animated radar view of the weather:


The best weather radar I've found for the US is from the Wunderground weather site. So the technique I'm going to share with you will take less than a minute to do and will give you a current, high resolution animated radar picture of your region of the country instantly. It's really, really easy and all you need is a Mac running Leopard.

Step 1: Load up the Wunderground Radar Mosaic in the Safari web browser by clicking on this link:


Step 2: Click on the region of the country that you would like in your radar map.

Step 3: When your map appears, click on the little Animate button right below the map image.

Step 4: When your animated map appears, click the Scissors icon in the Safari toolbar, then select your animated map and click the Add button in the top-right corner of the browser.

Congratulations! You now have a nice, big (640x480) animated radar weather map of your area whenever you activate the Dashboard. The next time you hear of a storm approaching you can simply pop-up the dashboard and get an accurate picture of where the trouble is. I know this works in Leopard but since that's the only Mac OS I have I don't know if this will work in Tiger or earlier.

Don't live in the US? Want something with an international flavor? The reason the Wunderground map works is because their system generates an animated GIF file. I've tried some other sites that use different animation techniques and they don't work in the Dashboard. If you can find a site that generates radar maps outside the US that work using this technique please mention them in the comments below!

Yes, I know, if you live in Southern California you probably don't see a need for this. Just use this technique to keep an eye on those of us that actually have inclement weather.

Common Myths for the Macintosh

There are lots of reasons that people don't want to switch from Windows to Macintosh. I assume the most common reason is simply because Windows works for the people that are using it. The old adage "If it ain't broke don't fix it" tends to apply here. These people are not upgrading to Vista either, they're staying with Windows XP or even Windows 98 and are just fine.

There are however an increasing number of people that are moving to Macs now - many of them people like me that hated Macs at one time. I believe there are lots of reasons for this, not the least of which is that people that are running Windows XP are faced with an upgrade to Vista as their next logical step and feel that maybe it's okay to consider a Mac since they have to go through a full operating system refresh anyway.

One of the reasons I was not interested in Macs for a very long time was that I clung to many facts about the Mac that I felt eliminated it from contention. Well, as with many things in life it turns out the facts that I knew about the Mac were either hopelessly outdated or simply myths. What I wanted to do was tell you the ones that I was aware of and often cited when I dismissed Macs in the past.

Mac's only use a single mouse button
I'm not a Mac historian, my history with the Mac being very recent but I've read that Mac multi-button mouse support has been around for some time. You may look at the MacBook keyboards and only see a single mouse button or a Mighty Mouse and think that it's not supported. The reality is the MacBook track pad has an ingenious way of supporting right mouse clicks that I find better than having the extra little stub that is a right mouse button.

You simply press two fingers to the surface and click the button and it emulates a right mouse click. While the Mighty Mouse (which I personally detest) only appears to have a single mouse button it does indeed support right clicking. I just plugged in my Logitech mice and happily right click whenever I need to.

There are not that many applications for Macs
Windows does indeed have far more applications written for it than are available for Mac. What you have to do is look at the quality of those applications though. Many of the hundreds of thousands that are cited for Windows were written back in the 90s and few have been updated. Sure, most still work but that doesn't mean they are still relevant. I have found no lack of software for my Macs -  virtually anything I have needed is available in native Mac format. 

Frankly, as a Mac n00bie I was shocked by the volume of quality Mac software available, especially on the consumer front. The number of Mac titles for business software, especially in the vertical markets for small businesses, is much smaller though.

Macs are closed machines that cannot be expanded
I have personally swapped out the memory in my MacBook inside of about 5 minutes. I upgraded my MacBook's hard drive in another 5 minutes. That's about all you can physically do with any laptop, whether it's a PC or a Mac. My Mac Pro upgrades were even easier. That machine is designed to make expanding common hardware about as easy as it gets. It took me less than a minute to install a 1TB hard drive - so little time I grabbed my video camera and filmed how easy it was:


Sure, I can't overclock my processor and the number of graphics card drivers that are supported by OS X is significantly smaller than Windows but to say I can't put non-Apple replacement parts into my Mac is just not the case. The Mac Mini and iMacs are limited in their upgrade options, but the same holds true of the Windows machines from Dell and HP that have the CPU and display all packaged together.

Macs don't work well with Windows machines on a network
I've got a GB switch at home and a variety of Windows XP, Windows Vista, Ubuntu and now Mac machines on it. Sharing files between the machines is very simple. My Macs can see my Windows shares and my Windows machines can see my Mac shared folders. I shared my printer attached to a Windows machine with my Mac and it was able to use it just fine.

Macs are more expensive
This is the one that I struggle with a bit. Yes, the Macs are slightly more expensive than PCs in general, but you have to look at what you are or more importantly not getting when you buy a Mac. Low cost PCs are often subsidized by bundled application software that is included with a new machine. When I recently bought a little HP that would eventually serve as my Ubuntu workstation it came so loaded with crap and Windows Vista that it barely even ran out of the box. The average consumer that isn't a techie would be hard pressed to clear up all of the stuff that bogs down the average new PC.

For techies it's a different story. You can go to places like Newegg and build a high performance system that has exactly what you want on it - nothing more, nothing less - and adjust expectations on price accordingly. But doing that means you are your own technical support clearing house. When the motherboard in my newly built gaming rig wouldn't post I had to call the manufacturer and work through a series of steps before we found that the board was shorting out. I needed to RMA it myself and undergo the same process when the replacement arrived days later. It took me the better part of two working days to build up that machine.

That said, I did that because I enjoyed doing it, however that time comes at a cost. Is your time worth anything to you? If it is and you don't find joy in doing this kind of technical troubleshooting then getting a fully tested and serviced machine that works out of the box is incredibly valuable. You get what you pay for in this case.

Macs can't run my Windows software
Well, that of course is not the case. I can take a legal copy of Windows XP or Vista and without spending any money use Bootcamp (which comes with OS X) and boot into Windows if I have to. It's standard PC hardware so it runs great. Better yet, grab a copy of VMware Fusion and run the Windows applications side by side with your Mac apps.

I haven't tried playing any high-end games on my Macs yet. This blog has burned up my remaining free time so they are out for now, though that's the most common complaint I've heard that I can't refute. Perhaps someone can jump in here and clarify that one. Can you play high end games like Crysis on Mac hardware and get decent performance?

Macs are mouse centered machines. You constantly have to grab the mouse.
Macs not only have excellent keyboard support, the use of shortcuts is profound. About the only thing I've found that doesn't work as well as Windows is the use of mnemonics in dialog windows that make it easy to jump to a field in a large form with lots of items in it. When a dialog pops up inside of a Mac I find that I generally grab the mouse.

On the other hand shortcuts on the Mac are consistent between applications and liberally sprinkled throughout. If you have ever seen someone that really knows the Mac well use a keyboard to do some work it's an exercise in humility. It's like productivity++.

So there you have it, the myths that I clung to that kept me from seriously considering a Mac for so long. I'm sure there are other reasons that people think switching from Windows to Mac is a bad idea - I've seen enough flame wars on the topic to know that it's a religious issue for many. 

Avoid the potholes when switching from Windows to Mac

Thinking about switching from Windows to Mac? Got a shiny new Mac and you want to learn the ropes quickly after spending years on Windows? Got a friend that just converted and they say the Mac doesn't work like Windows? This quick guide should help overcome the most common problems new switchers encounter.

Applications
Most Windows applications tend to comprise of an EXE file and a number of other peripheral files, such as DLLs, Help files, third party controls, etc that are often placed in different directories on your machine. Mac applications generally come in a package that appear to be a single file to you as a user. In reality there are multiple files to most applications, they are just packaged up to appear as a single file in OS X.

Installing Applications
In Windows you generally run a setup program to install an application. It is complete and self contained. On Mac there are a couple of different installation models out there. The most common for downloaded software is to simply drag the application's icon into your Application folder in the Finder. Some install programs will actually place the file in for you, though most require that you drag it in yourself.

DMG Files
A DMG file is a disk image file. Some times you will download an application or series of files that are packaged up as a DMG. Opening it will mount what appears to be a new virtual drive on your desktop. You do not want to run programs from there - drag any applications out of the DMG Finder window and into your Applications folder if you want to run them. You can eject a DMG virtual drive from your desktop (Right Click - Eject) and it will be removed.

Uninstalling Applications
The process for uninstalling applications from a Mac are really easy. The vast majority of the time it's merely a matter of dragging the application's icon out of your Application folder and dropping it in the trash. There are some files and settings that applications can leave behind and tools like AppDelete, Hazel and AppZapper help clean that up, though I have not used any of these personally.

Window Sizing is Different
While the Mac OS X windows have what appears to be Close, Minimize and Maximize button in most windows, one of them doesn't work the way it does in Windows. Pushing the Maximize button on OS X will usually make the window as tall as possible for the display area, but not affect the width unless your windows has a horizontal scroll bar.

You can also only size a Mac window by grabbing the lower right corner of the window. The clean, uncluttered UI on the Mac means there isn't a border to grab hold of to resize windows from any edge.

Keyboard Blues
The Alt key on Windows is in the same place as the Command key on a Mac. The Start key on Windows is where the Mac's Alt key sits. Those two keys, more than any other, will cause headaches for you. I've put together this quick guide that should help you at least learn the new common keystrokes.

There Is No Start menu
Most Windows users either toss their application icons on their desktop for easy access or use the Start menu to gain access to their applications. On Mac the Dock bar (by default at the bottom of your screen) is the best place to put the applications you will run most frequently. I highly recommend that you become proficient with the Spotlight feature though. It's an even better way to start applications. This is also the point where people recommend that you go out and get Quicksilver.

There Is Only One Menu Bar
Unlike Windows, which has a menu bar within each application, OS X has only one menu bar that changes options as you switch between applications. If you use a multiple monitor system like I do the get ready to put some serious mileage on your mouse. 

Closing An Application Window Doesn't Always Close The Application
In Windows if you close the main window to an application by clicking on the little X button it will shut the application down. On OS X that is not always the case. If the application supports multiple windows (like having multiple documents open at once), then clicking X even on the last open window will leave it open. The best way to quit an application in OS X is to select Quit from the application's main menu. I always just hit Command-Q now.

Killing Off A Non-Responsive Application
In Windows if you need to kill an application that stops responding you can activate the Task Manager, select that application from there and close it. In OS X you click on the Apple menu and select Force Quit, select the application and force it to quit.

The Tab Key Doesn't Work In Every Control
By default OS X does not allow you to tab through every single control. This is a major pain on things like Web Forms that contain check boxes and radio buttons. This is easily address in OS X Leopard by going into System Preferences / Keyboard & Mouse / Keyboard Shortcuts and changing the option on the bottom to make the Tab key work with all controls. Do that right away and save yourself some frustration.

The Missing Backspace Key
What is labeled Backspace on Windows is labeled Delete on Mac - they perform the same action though. The Delete key on Windows is the Delete Forward key on Mac, again performing the same function. If you happen to get a MacBook you will notice that several keys are missing, which is why the keyboard feels so roomy in such a small space. Here is a list of how you can gain access to those missing keys on a MacBook.

So there you have it - the most common problems for me when I first made the switch. There are tons of great features in OS X that you should plan on learning about and I've got numerous posts that cover the ones I've settled in with. The list of applications and features that I've adopted have changed from my first month to my second and into my third month of use.

The advice I would give to recent switchers from Windows to Mac is to try and embrace the way Macs work rather than try to make your Mac work like Windows. Much like moving to a new neighborhood, I can look around and complain that I don't know any of my neighbors and rip on the fact that there is no decent Thai food nearby OR I can make new friends and explore the new cuisine options. Attitude is everything.

Learn by blogging about it

To say the internet provides a revolutionary amount of information quickly and easily is a tremendous understatement. When I sit back and look at how I acquire information now compared to how I did it back in the pre-internet days the changes are profound. What is interesting for me is that fully half of the guidance I obtain these days comes from the tips, rants and raves of people that simply use products the way I do. They just happened to get there before me and were kind enough to write it all down.

When I started this blog a part of me was motivated by a need to add to that collective of information. Basically I wanted to give a little back to that giant interwebs resource. My thought was that I would share the experience from the very beginning of adopting a Macintosh as a new platform. I would write about it as my experience with the machine unfolded, giving people a play by play as I went.

A funny thing happened...
I have several friends that switched to Macs well before I did. What was interesting to me is that many of them would come to me and say "Wow, I didn't know that!" when I discover a feature, product or tip. In the past when I learned a new technology I had a tendency to get to a level where it accomplished just what I needed and then I would stop striving to learn more. All too often I have used only 50% of the capabilities of some powerful tool or device because I only learned enough on the surface level to get by for the task at hand.

I wasn't really advancing my use of technology - I was merely adapting a different technology to the way I always did things. I would look to something and simply say "I used to perform this action with the old stuff - how do I do that with my new stuff"? I learned on a need to know basis.

This blog changed that model for me. Suddenly the blog was all the motivation I needed to dig a little deeper, to find that little tidbit of information that would help me embrace the technology a little better. Once my blog started to become a little more popular I suddenly found lots of people that would read what I wrote and offer up some deeper information on the area I was exploring. Here I am only 3 1/2 months into owning Macs instead of Windows machines and I feel like I have an incredibly detailed understanding of how the machine works and how I can best leverage it. I still have a lot to learn but I'm significantly further along than I would be if I just approached it as a 1 for 1 replacement challenge.

Overcoming Fear
One of the concerns I had about writing this blog and sharing my n00bish learning experiences was how much of my life I really wanted to make public. I've always had an overdose of self-confidence (I am an entrepreneur after all) and writing about something I knew little about was going to be a challenge. Did I really want to expose how dumb I could be?

While I have taken a few hits from the usual people that populate the interwebs and spew crap at will, they have been few and far between. Instead I have been lucky enough to get some really nice people to participate and provide information that has helped me tremendously and add to that collective of data for others to leverage.

Blogging isn't for everyone
It does require a commitment to stay engaged to the people that read your blog. I try to respond to any comments people leave and always reply to e-mails sent to me. It's really not all that much work. You also have to be able to write clearly, though as you may have noticed with my blog, my writing is very informal and conversational. I find it easier for people to read that way and a lot easier for me to create.

If you do want to learn a new technology really, really well try blogging about it. Blogger accounts like the one I use for this blog are free and you can create one pretty quickly. Not only will you learn a lot about the topic you write about you will also be giving back to the great knowledge store that is the interwebs.

Scott Hanselman is one of my favorite bloggers. Though he writes primarily about developing using Microsoft .NET products his posts on blogging are pure gold for anyone that is interested in starting up a blog. If you develop using Microsoft tools he is a must read - add him to your RSS feed ASAP if he's not already there.

If someone told me six months ago that I would be blogging on nearly a daily basis and really enjoying it I would have laughed in their faces. Then again, I probably would have laughed even harder if they would have told me then that I would also soon be leaving Windows for Macintosh.

How to let Safari pretend it's IE

Have you ever tried to visit a site that does not support Safari? Sometimes it's because the site uses ancient ActiveX controls, other times it's because they produced a site that simply doesn't render well on anything but a few browsers. They see you come in and immediately show you the door with a message like:

"Sorry! This site requires Internet Explorer 5.5 or higher!"

First, a little background
When a web browser connects to a web site it passes in a "signature", referred to as the User Agent string. It normally contains information like the operating system your computer is using and the web browser type and version. Web servers and HTML pages can use that signature to conditionally present web pages to you based on the capabilities of your browser. 

If a web site developer has limited resources they may only ensure that their site works with the most popular browser on the web, which is Internet Explorer. If it is an older site that has not been updated in a long time they may have assumed that only IE can render the site properly and, not wanting to have to deal with other browsers, simply prevented them from coming in.

Whatever the reason, there is a way to work around this and get into the sites that require a specific browser while you are using Safari. The first step is to enable the Develop menu in the menu bar. Go into the Safari Preferences and select the Advanced tab:

Select the option at the bottom to show the Develop menu and you will see a new top level menu option named Develop right next to the Bookmarks menu. From here you have access to a couple of cool things, though what we need is the User Agent selection.

Just select Develop / User Agent from the menu and select a browser signature that matches up with what the web site indicates the browser is limited to. Reload the site and chances are you will be able to get in.


Beware! Using this technique is not wise for anything really critical - there is a possibility that data entry forms may not work properly or that controls on the forms may actually give incorrect data. There is even the possibility that the browser will have some serious problems on the site. I would only use this technique if you really want to see something that a site is telling you they don't want you to see and you don't have access to a browser that works.

This option does not make Safari emulate IE or any other browser. It simply tells the web server you visit that it is something other than Safari. You will also want to reset this to Default after you are done because many sites perform conditional rendering based on the type of browser you have.

Those warnings aside, if you've ever felt a little left out because someone decides that you should not be able to see a site because you are running a Macintosh, at least this way you can get in and see what all the fuss is about.

Switching to Mac isn't right for everyone

When I was in California recently to visit my family I talked to my brother about getting my parents an iMac. Daryl had switched to Mac about 6 months ago and loved it and as you can tell if you've been following my blog for any length of time I've been extremely happy with my switch too. 

Why not share that joy with my parents? It would be great for them to be able to see and speak with their grandkids 2,300 miles away more often and I figured an iMac would be a pretty good solution. iChat and the built in iSight camera are painfully easy to use and my Dad would finally have something other than the TV as a source for his news and information. We would set up a high speed connection with their local cable provider and they'd be good to go!

With that plan fully formed in my head I brought it up to my wife when I returned home from the trip. 

Me: "Daryl and I are thinking about getting Mom and Dad a Mac!"

Wife: "Not a good idea. Don't you remember how it went last time you got them a computer"?

I stopped and looked up at the ceiling thoughtfully. At this point those little swirly clouds that appear in sitcoms washed over me and it was 1999 again:
I just bought a nice little Compaq computer for my parents, loaded up with Windows 98 and MS Office 97.  I set up the entire machine before-hand, patching the OS and placing icons on the desktop to make it painfully simple for them to use the machine. I also bought a copy of Windows 98 for Dummies and Office 97 for Dummies. I even bought them a nice Epson inkjet printer and pre-configured it to work with the machine.

All this was nicely packaged up so that all my parents had to do was take it out of the box and set it on the desk, then plug it in. This was to be a stand-alone machine, no internet access. They really wanted to use it to write letters and my Dad had an interest in playing around with the technology.

The day after the computer arrived at my parent's house I got a call from my Dad. He had my cousin come by to help him set it all up because plugging things in was just too difficult. My Dad was getting nowhere with the machine and he needed some help. I got questions like 

Dad: "OK, the TV part has a bunch of little pictures on it. What do I do now?"

Me: "That's called a monitor and the little pictures are called icons. They represent the applications I loaded on the machine for you"

Dad: "Uhhhh"

Me: "OK, let's just fire up Microsoft Word so that you can type in some text. Double-click on the Microsoft Word icon on the desktop..."

At this point we had a little conversation about how to double-click. It wasn't long before my Dad was frustrated by the pace of all this and sensed that I was getting frustrated too.

Dad: "Is there a book that we should get before Windows for Dummies"?
The swirly memory clouds disappeared and I was still standing in front of my wife, my plans to get my parents a Mac starting to sound a little crazy even to me. Providing basic support to my parents was something I had glossed over in my zeal to get them a Mac.

I then remembered that my parents still had that $1,200 Compaq I bought them and they do actually use it. The Epson printer - which has never actually printed anything - serves as a bill and magazine holder for my Mom. If you fire up the machine it's got an entire screen full of shortcuts for Solitaire on it. My Mom has a tendency to click Start and accidentally drag the Solitaire icon to the Windows desktop every once in a while. After 9 years there are a lot of icons. Turns out that's the only application that's actually been run on the machine.


So I paid $1,200 for a machine that has effectively become the equivalent of a plastic inbox tray and a deck of Bicycle Playing Cards. I shudder to think what would happen to a shiny new iMac if it was put in the same situation.

My Mom is quite happy with it just the way it is. Maybe I don't want to mess with that after all.

Finding a new way to learn Ruby on Rails

I'm about a week into my learning experience with Ruby on Rails and have encountered a few challenges and also found a couple of resources I'd like to share with you. As with most "as you go" experiences, these blog entries are a point in time picture of where I am so I haven't gotten all of this figured out just yet.

My model for learning
In recent years when I adopted a new language or development environment I would simply breeze through the documentation and especially the tutorials. I figured, what the hell, I'm a developer with over 25 years of programming experience. I'm well versed in object oriented principles, design and coding practices, etc. This won't be hard!

The reality is by simply scanning over the tutorial information I was doing myself a disservice, learning a surface level knowledge of the development model. I would pay the price when I would start to do my actual application development work, making my mistakes in my real code. I also had a bad habit of only learning the areas of the language and development model that were appropriate for me. I nearly always had an idea for a product or application I wanted to build when I started my learning experience with new development tools and I focused all my energy on the areas where I thought I could use the tool set.

In this day and age of instant information and the easy accessibility of things like FAQs and solutions for technical problems, I want to take a more disciplined approach to learning both Ruby the language and Rails the framework. I think this should work really well for learning Ruby on Rails because the framework is so targeted. I don't have to weed through information that is specific to building client side applications or learning models that were designed to service both web and Windows based applications.

Applying this to Ruby on Rails
Learning from the Agile Web Development with Rails book has actually been coming along quite well so far. I decided to stay with Rails version 2.0.2 and just suck it up. At page 67 of the current version of the book the examples start to break down. What I did was break from the book at this point and started using Sean Lynch's excellent 2.0 tutorial, which uses the same application as the book except it's updated to work with 2.0. Once I finished Sean's tutorial I had the basics of the Depot application that is used in the book and have been able to follow along much more easily.

This has actually worked out really well for me because it has kept me fully engaged in the learning process.  I'm still not completely comfortable with where code should fall in the Model-View-Controller system that Rails uses having come from the event driven code model in .Net; what's in the model and what's in the controller requires a little more thought on my part than I would like. My personal goal is to make that determination a no-brainer.

Learning Ruby vs. Learning Rails
One thing that threw me at first when coming into this technology fresh was what the difference was between Ruby and Rails. Well, Ruby is an object oriented language and Rails is a rapid application development framework that uses Ruby as the language. So do you have to learn Ruby to be truly proficient with Rails? You have to know the basics for Ruby in order to really absorb what's going on with Rails as you learn it, otherwise seeing :name, @name, @@name and just name are going to confuse the hell out of you. Class design in Rails is very easy and intuitive for me coming from a C++ / Object Pascal / C# background, though there are some very clear differences. It's the syntax that trips me up and at this point in the learning experience I'm doing a lot of "Oh, that's like... in C#".

When I bought my copy of Agile Development with Rails I bought the book everyone recommended to learn Ruby called Programming Ruby. Also referred to as the Pickaxe Book because of the picture of a Pickaxe on the cover, Dave Thomas does a nice job of walking the reader through the Ruby language. I decided that rather than go through the entire Ruby book first, I wanted to play with Rails at the same time to get excited about the environment. What I did was scan through the Ruby Tutorial in Appendix A of the Agile Development with Rails book to pick up the basics and then worked through the first 8 chapters of that book.

At this point I have a pretty good basic understanding of the Ruby language and syntax and more importantly a fairly functional application that gives me some hope that Ruby on Rails will be a good platform to build on. Now properly motivated I'm switching over to the Programming Ruby book to learn more about the Ruby language.

My goal at this point is to become proficient enough with Ruby that I start thinking inherently in that language, not translating mentally from a different language (in my case C#) and transferring that knowledge. Once I feel like I'm at that point - hopefully very soon - I'm picking the Agile book back up.

Playing with Ruby on Rails

I've had this on-again, off-again experience with Ruby on Rails. For those of you that don't know Ruby on Rails is a really simple framework and model for building Web applications very quickly and easily. This is not new news and in fact Ruby on Rails has gotten some very significant attention. As a Microsoft guy for many years I simply glanced in the direction of Rails and said "meh". I was immersed in the Microsoft development tools for so many years I wasn't willing to look very hard at things outside my .Net / Visual Studio / C# comfort zone.

My positive experience with my Mac switch led me to rethink that strategy, or at least give it a much better try than the quick glances I gave it before. I did a lot of research, found a lot of information and have found lots of controversy as to whether there is a future in Ruby on Rails. I've also found lots of evidence that some pretty large sites are using Ruby on Rails for their projects. In spite of all that I am in the early stages of really pushing it and so far I like what I see.

The initial challenge was setting up the right build environment which included a MySQL instance and several other components. I struggled with it at first because it was so difficult to deal with, hence the off-again part of the experience.  Part of the challenge was that Ruby on Rails (RoR) was in a transition from 1.2 to 2.0 and there were some significant changes to the framework. I started playing with Rails before most of the help and assistance information was updated to reflect the new 2.0 version.

A few weeks ago I came across a post on the Apple Developers site that walks through what's required to actually get Ruby on Rails 2.0 set up and running on Leopard. Turns out I was using 1.2 instructions for getting Rails up and running and the release of 2.0 switched to use SQLite3 as the default development database engine. If you have ever entertained the idea of playing with Rails and you are running Leopard, check out that two part post. It's really easy to follow along with.

One of the things that Apple did and documents in that post is allow you to use Xcode to manage your Rails project. While I found the environment to be pretty cool I liked the editing surface in TextMate, which also has pretty good support for Rails constructs and Ruby code.

In addition I went out and purchased a slew of books that I figured would help me in my education with Ruby the language and Rails the framework. I'll list some of these in later posts as I form more of an opinion on them. One word of caution though: If you just run to Amazon like I did and buy Agile Web Development with Rails you will be disappointed. Not because it's a bad book - I like the style - it's because the book's tutorial does not work with Rails 2.0. They are selling a PDF version of the new book that is supposed to come out in October that will have a tutorial that actually works. 

In the mean time if you want to give Ruby on Rails a quick spin on your Mac you should follow those Apple Developer instructions I linked to. Here are a couple more that may get you started and help get some perspective on Ruby on Rails:


Much as I have done with my Mac experience, I hope to share some of my learning process about Ruby on Rails as I go along, from the perspective of a .Net / C# / Visual Studio guy. I know I have a fair number of readers that are using Visual Studio now on their Macs so hopefully you'll get some value out of this.

Who knows though - it may be a very short series if it doesn't go well.