My Top Mac Applications

Om Malik has posted a list of his top 10 Mac applications. I use most of what he posted, but it started me thinking about my top apps. For anyone who cares, here they are:

  • Camino - I agree with Om on this one. Firefox was my favourite but I was becoming increasingly annoyed by its slow performance even in a 2GHz MacBook and Safari was not extensible. With the inclusion of some fantastic plugins from Pimp My Camino, I have all I need.
  • iChat - I have used the Jabber (XMPP) protocol to integrate my Google Talk, MSN, AIM, and Yahoo instant messenger accounts.
  • NetNewsWire - I fire this one for a daily dose of Google Reader, Web Worker Daily, and MacWorld.
  • Qumana - Simple, capable blogging application.
  • QuickSilver - I would not be as productive without this application launcher.
  • Parallels Desktop for Mac - This one makes my MacBook more valuable. I can run Windows XP, Vista and Ubuntu Linux all one machine (although not all at the same time).
  • CrossOver - For when I need to run Quicken for Windows (because Quicken for Mac SUCKS!!!)

Powered by Qumana

Get Google Talk, iChat, MSN, Yahoo Messenger and AOL Messenger all talking

Update 2009: This setup no longer works. Microsoft, Google, et al. have abandoned these platforms. You can read about the deprecated APIs on the Adium help page. Unfortunately, most people have moved to Twitter and other social media platforms.

Like most technology people I know, I have multiple Instant Messenger (IM) accounts because not everyone I chat with uses the same provider. My personal favourite is Google Talk because I like simple interfaces and open platforms, and Larry Page is a University of Michigan alumnus (Go Blue!).

But most of my family and friends have settled on either one of MSN, AOL, or Yahoo. At first, I downloaded each client application but was tired of installing and launching multiple IM clients, each with a unique interface. I wanted one protocol to bind them and one client to rule them all. I discovered the wonderful world of multi-protocol instant messaging clients like GAIM.

A free chat client used by millions. Connect easily to MSN, Google Talk, Yahoo, AIM and other chat networks all at once.

Wow, I thought. That sounds awesome! Yes. It is. I downloaded GAIM and several plug-ins, and I was quite happy for a while. Users can log in to multiple accounts on multiple IM networks simultaneously and chat with their friends on AOL, MSN and Yahoo. This worked well for a while. GAIM even supports Lotus Sametime, which my employer uses. Now, I had one client to rule them all. However, I soon discovered that Yahoo support started failing. Then, it was fixed. Then MSN support started failing. And it was fixed. Then, AOL support started failing. And it was fixed. And on and on.

Of course, the problem is that the major IM providers all use different proprietary systems and protocols. They kept making changes to their systems, which would break the functionality of GAIM. The GAIM developers would update the software, and then the IM vendors would change the protocol and .......on and on.

The search for a solution

I bought an Apple Mac mini and a MacBook, and I had to start the process again. I discovered that OS-X's iChat messaging client supported on iChat, AOL and Jabber. I never got GAIM to work on OS-X, but I did find IM clients based on GAIM, such as Adium. Adium was similar to GAIM and crashed very often. I searched for a better way, and that way was Cavemonkey.

While Googling for a solution, I came across an article on the Cavemonkey blog. The blog's author, Ronald Heft, Jr., is a freshman at Penn State in Lehigh Valley, PA. He details using the Jabber protocol to add Google Talk, MSN, Yahoo and AOL connectivity to iChat. I followed his directions and was soon using iChat to ping my friends. It was when I returned to work the following day and logged into Google Talk that I discovered the brilliance of this solution.

All of the IM protocols were bound to my Google Talk account. I could IM my friend on MSN from Google Talk. The magic is that Google Talk is built on the Extensible Messaging and Presence Protocol (XMPP) protocol that was developed by the Open-source Jabber community.

"[Jabber is] an open, secure, ad-free alternative to consumer IM services like AIM, ICQ, MSN, and Yahoo (see the IM quickstart). Under the hood, Jabber is a set of streaming XML protocols and technologies that enable any two entities on the Internet to exchange messages, presence, and other structured information in close to real time." -- jabber.org

Jabber supports the concepts of transports. A "transport" is a small computer program that runs on a Jabber server and “translates” messages from other networks into the Jabber format.

Jibber Jabber

So enough already! How do we do this? My buddy Chris P. was excited when I mentioned that he could use Google Talk to communicate with the other IMs. So these instructions are written for Chris P.

The Google Talk servers do not provide transports so we will use another jabber server and client to bind the transports back to our Google Talk server accounts. A list of public Jabber servers can be found here but for this example I will use the jam. At server. NOTE: I did this on Windows Vista beta two, but it will work on Windows XP.

  1. Download and install Google Talk.
  2. Download and install Psi.
  3. Setup Psi to use your Google Talk account. The instructions are here.
  4. Account setupNow add the public Jabber server to Psi and create an account on that server. Click the Psi symbol in the lower left corner of the Psi application window and select "Account Setup" to launch the Account Manager. In the account manager, click on the add button. On this screen, enter in anything you want to call the account and be sure to check the register new account check box.
  5. Add account wizard
  6. Now, enter in a user name in the Jabber ID box, and add @[your main Jabber server] to the end of it. Choose a password, and click register. We’re done setting up the account!
  7. Register the account
  8. Going onlineNow we want to attach transports to the Google Talk account. Make sure you are logged into the jabber and the Google Talk account. Right-click the account and select "Online."
  9. Service Discovery
  10. To add transports right-click the Google Talk server icon again and click "Service Discovery." This will bring up a window with a list of service transports. Since Google Talk servers do not provide transports, we need to first connect to a server with the transports we require. Just enter in the server with the transports in the address field and click browse. Now both Google Talk and regular Jabber users are in sync.
    We will add the MSN transport first, but each of the others can be added just as quickly.
  11. Transport list
  12. Registering a transportRight-click the MSN transport and click "Register." Enter your MSN password and click "Register." Do the same for all the other transports. Once you’ve registered all your transports, click close, and close Psi. You no longer need it.
  13. Launch and log-in to Google Talk and your contacts should appear instantly.
  14. Google Talk

That's all there is to it. Now you can use Google Talk to communicate with your buddies on other IM services. There is one caveat regarding adding contacts. When adding contact you will have to use the following format: [contact name]@[protocol].[server]. So if you wanted add a Yahoo account ( shane@yahoo.com) on the jabber server you would use shane@yahoo.jaim.at. MSN contacts ( bhavana@msn.com ) are a little different: bhavana%msn@msn.jaim.at.