iChat with MSN

OK, this is a convoluted way to do multi-IM. But it seems to work well. Hopefully, it is a glimpse into a future where all IM systems talk to each other.

Windows has one app that is superior to anything else on OS X – Trillian. I’ve tried to use Adium but just can’t give it any love. It’s lack of support for audio and video makes it always feel like GAIM on Linux. Not good. iChat has problems as well (but will be getting better in Leopard) but it supports iSight. It is also integrated into the system better (like in Mail). I would rather use iChat.

After searching around the internet, I’ve come up with the following recipe. Here is how you can get iChat to host AIM, MSN, Yahoo, Google, and just about anything else (explanation is below to understand what is going on):

  • Sign up for Google Talk.
  • Download Psi jabber client.
  • Launch Psi
  • Enter Google Talk for the name and click Add
  • Enter your Google Talk id for Jabber ID and your password (ex. myname@gmail.com)
  • Click Connection
  • Enable SSL, Ignore SSL Warnings, Plaintext passwords, and Keep-alive
  • Set server host to talk.google.com and port 5223
  • Click save
  • Login to Google Talk’s jabber server by selecting Google Talk and selecting Status -> Online
  • Select Psi -> Preferences and select Events
  • Check Ignore Events from contacts not in roster and Auto-authorize contacts
  • Deselect Notify when auth received and then click OK
  • Select General -> Service Discovery
  • Enter jabber.anywise.com in address and click browse
  • Select MSN or Yahoo gateway
  • Right click and select Register
  • Enter your MSN or Yahoo credentials
  • You will see all your other contacts get added to your buddy list
  • Quit Psi
  • Launch iChat
  • Choose iChat -> Preferences and select Accounts pane
  • Click (+) to add a new account
  • Select Account Type of Jabber
  • Enter your Google Talk ID and password (ex. yourname@gmail.com)
  • Enter talk.google.com for server and Add
  • Click Server Settings for Google Talk account
  • Enable SSL and allow self-signed certificates. Also verify port 5223 is used
  • Close preferences
  • Choose Window -> Jabber
  • Set status to Online and you will see your full buddy list
  • IM your friends

What did you just do? A lot went into this but it is actually not that complicated. Jabber is an open-source IM protocol. There are many Jabber servers around the world that you can use to talk to other Jabber users. Jabber has a lightweight registration concept. It supports federation of other Jabber servers. So you can get an ID on a federated Jabber server and use that to login to another. Google Talk uses Jabber and they are part of the federated network.

The second part is that many Jabber servers run gateways to other IM systems including AIM, MSN, and Yahoo. Logging into the server, you can register the gateway service and use it to bridge to other systems transparently. Gateways are not hosted by every Jabber server. You need to find one that does to use it.

iChat can talk to Jabber servers. Since it can, you can use gateways. Google Talk doesn’t run a gateway. So you need to use another Jabber server.

There are many other ways to do this. I picked Google Talk because it is a nice way of getting an ID and many people already have one. I picked jabber.anywise.com because it has the gateways I wanted. The jabber.anywise.com server will auth Google Talk ID’s and you can then register to use the gateway. Replace your Jabber account with any other you like and use any other gateway server you like

There are a few other pieces of information that are useful as well:

  • Your contacts are wrapped in a different form for the gateway. The format is user%service.com@gateway.jabber.anywise.com. For example, billgates%microsoft.com@msn.jabber.anywise.com.
  • You can hide the messy Jabber IM address in OS X. For any user in iChat, get info on the user and associate an Address Book card to them. Their name will appear in iChat instead of the gateway address.
  • The contacts will show up anywhere you use your Google Talk id.
  • Deleting the contacts from Google Talk does not delete them from the actual service just the gateway

WWDC Wrap Up

After what feels like a really long week, I’m waiting in the SF airport to get home. It turned into a very weird week given all the turmoil going on with air travel. I always feel so disconnected when I travel. It’s hard to digest current events or follow my usual sources of information. At least the airport turned out much better than I expected. It’s been normal for the most part.

WWDC was a good experience. I do have to say I’m a little disappointed by the event. I think they had a much larger showing than they have before. The logistics of the event were very poor. I’m active in a developer group in Seattle called Xcoders. We had at least ten members at the conference. I think we may have recruited a few new members as well.

Here are some random thoughts on the week:

  • Apple looks incredibly foolish with the amount of secrecy they put around the Mac OSX release. A friend of mine laughed at me when I told him that the sessions were under NDA. His comment – don’t they want people to develop on their platform?
  • Jobs was not as impressive in person as I would have thought.
  • Apple isn’t uniform in their knowledge or support for the open source community. They are good for a major commercial company but there is room for improvement. I was happy to see them create macosforge to replace OpenDarwin.
  • WebKit is very cool.
  • Apple doesn’t care about the enterprise at all. That’s almost an exact quote from one of the CoreData developers. That’s too bad because the server team has a great product on their hands and I bet they do care. And more than a few developers in the CoreData talks want an enterprise version of CoreData.
  • There is a very vibrant independent developer community. I met several developers who were one or two man shows. It’s a nice change of pace from the usual crowd I interact with.
  • Downtown SF isn’t nearly as nice as it used to be. It makes Pioneer Square seem clean
  • The Apple campus felt very similar to Microsoft’s. Change the logos and you could be in either place.
  • I have about 10 new apps I want to go write. Gotta pick one and do it.
  • Many of the Apple presenters seemed arrogant and wouldn’t talk honestly about their products (good or bad). Perhaps not suprisingly, the guys in the core OS and in WebKit were more open.

Overall, it was worth going. There was an immense amount of information. It will be weeks before I process it all. I expected to come back more energized than ever about Mac OS X. Instead, I think I have a more balanced and realistic view. It would be a better event if Apple involved the community more. It would be useful to have talks and presentations from non-Apple engineers. I also would like to see a strong emphasis on the Unix side. Many of us came back to Mac OS X for that feature more than anything else.

Ruby on Rails + Leopard

The Ruby on Rails team announced that Apple is going to distribute Ruby on Rails. Not only are they distributing rails, but they are distributing ruby gems with Rails installed as gem. This is great news. Mac’s already were a great RoR platform but I think this makes it even better.

WWDC ‘06

I’m in San Francisco this week for Apple’s Worldwide Developer Conference (WWDC). Since Apple is paranoid to the max, I won’t bother blogging about much. Suffice it to say, there are some very cool things on the way. I believe the keynote content from yesterday is publicly available.

OSCON Day 2

I didn’t find the quality as good today. The keynote was bad and I picked a couple sessions that didn’t hit the spot. Note to O’Reilly: if we are going to come in at 8:30 AM, we need to hear things we haven’t already heard and they need to be from people we will listen to. Gary Lang from AutoDesk was a joke. He was a suit that didn’t have any understanding of open source and he made AutoDesk look bad.

Sessions I Liked

  • Subversion Best Practices – Ben Collins-Sussman and Brian Fitzpatrick (both now at Google) gave a great talk on Subversion. These two literally wrote the book on subversion. The did the right thing and didn’t give a talk on what subversion is. Instead, they answered many questions on how to use it properly. They covered structuring the repository (one is better than many), which server to use (apache is most flexible, others have their place), permission models (less is better), and many other smaller tips. I recommend finding the slides at the OSCON presentations page and reading them.
  • Google Code Hosting – The big news was Google has released a new code hosting service. It is aimed at the heart of SourceForge. And I think it will have a big impact on it. Google’s code hosting has a subversion repository with 100MB of storage, an issue tracker reminiscent of GMail, and a small home page. One other nice thing is that they have you pick 1 license from seven different options. Greg Stein of Google said that they are taking a stand and pushing projects to pick one and only one license. It’s built from subversion running on something called BigTable which is a Google proprietary storage back end. Disappointing that they didn’t open source BigTable or the hosting code. Now I know why Ben and Brian are at Google. I’ll post more on Google code sharing later. I have a project in mind that I may put in there. I think it has great potential.
  • Google Web Kit – This was new to me. Basically, you write your Ajax code in Java and use a Java to JavaScript compiler to generator your JavaScript. You can tie it into the Eclipse debugger (if you aren’t on a Mac – lame). There is a good community of widget developers forming already. I’m not a UI guy but I thought it looked useful. My co-worker Scott Haug has been tracking it since it was originally released. He said it doesn’t fit what we are doing. I’ll have to have him give me some more info on it when I get back.
  • Ubuntu and Community Building – Jeff Waugh did a nice presentation on why Ubuntu’s community has taken off so rapidly. They made it a very clear goal early on and it shows. Like anything that becomes a big success, they aimed big and worked hard to reach it. One interesting question asked of him during the Q&A regarded the distribution of non-free drivers from NVidia and ATI. Personally, I don’t have a big problem with this. I care more about getting my hardware running. Some care more about the origin of the code. Jeff had a nice answer. They did distribute the non-free drivers to create an acceptable out of the box experience for Ubuntu. But they also put in a hardware report option that people can send their hardware config to Ubuntu. Jeff has been able to use this to validate things like how many people are able to successfully run the Intel graphics chips (which have free drivers). Those numbers give him the leverage to shame ATI/nVidia into doing the right thing. It’s a good approach – the hardware works and pressure is put on the hardware manufacturers to open up the API’s to their hardware.

Sessions I Didn’t LIke

  • Python 3000 – Guido van Rossum gave an overview of the next version of Python. Unfortunately, Guido wasn’t feeling too good. And I was more than a little underwhelmed by what is going in. In fairness, I don’t have any major issues with Python (although I’m not a heavy user). It does seem a little weird that moving the strings to UTF-8 is a big deal in 2006. Good this is happening but seems like a given these days.
  • MySQL Replication – First off, it’s pretty boring to hear about yet another catch-up feature in MySQL. A big feature for 5.0/5.1 is that they are doing row level transaction log replication. About time. We did it ages ago in SQL Server and Oracle has as well. I get that MySQL is “good enough” most of the time and is relatively cheap. But I really wish the darling of the open source db world was Postgres and not MySQL. At least it feels like the Postgres guys come up with new ideas.

One more half day and then back home. My wife has been down here for the past two days as well so we’ve been able to enjoy Portland in the evenings and catch up with some friends. I’ve enjoyed the conference. It’s been more fun to be here and just learn than working like I did last year.

OSCON Day 1

The first day of sessions is over. The keynote was a mixed bag. Tim O’Reilly sometimes seems a little out of his depth but he is good at putting a label on things. His theme this year is evolving the definition of open source beyond the software distributed on to your machine and encompassing services. In fact, the emphasis on services throughout the keynote was very clear.

I had an idea of which talks I wanted to hear but made some last minute adjustments. I went to more Ruby talks than I originally planned. I’m starting to get the Ruby on Rails religion a little bit. I’m impressed with how it is evolving past the initial hype stage. There are some growing pains like disagreement on what to add to Rails (well covered elsewhere). But it does seem like people are looking to justify and use it as a tool to dramatically cut time and costs.

I picked up three things I want to explore in more depth:

  • Capistrano – This looks like a compelling toolkit. It is skewed towards Rails but there is potential to use it in other contexts. We are looking to improve our deployment strategy for a mix of Java and Ruby on Rails. This could be a nice tool to add.
  • Design by Contract – This is probably an old concept but Ruby is giving it a new life. Basically, it’s more a way of thinking of the problem differently. Replacing test/verification/assertion with specification/expectations. I like this line of thinking. It helps you filter out what you should write a test for and lets you not write tests you don’t need. The RSpec framework is an intriguing tool for doing this.
  • Ruby on Rails in the Back Office – Obie Fernandez of ThoughtWorks had a good case study of using Rails to solve a set of problems for banking giant Barclay’s. They did it for a fraction of the time and cost. More specifically, they put Rails in a place that isn’t what comes immediately to mind. And they also generated a DSL that allowed the account manager to directly input rules in Ruby. This was a non-programmer that was able to express the rules in some very readable Ruby metaprogramming. Powerful stuff.

The only talk I didn’t like was one by a product manager from Dell on virtualization. He showed some lame Windows media movies on running Xen and gave the marketing buzz speak. Dell may benefit from the move to virtualization but I wouldn’t look to them for any sort of thought leadership.

On To Portland

After work tonight, I took the train down to Portland to go to OSCON starting tomorrow. Although the train is kind of slow, it’s really a nice way to travel. Spent the time diving into Eclipse thanks to David Carlson’s Eclipse Distilled. What a difference a good guide makes. I’m beginning to like Eclipse and getting dangerously close to actually getting productive with it. Also spent time trying to organize what is quickly become a very long list of projects for work. There is so much to do at Jobster. Not in a bad way but in the sense that there are many possible next steps.

After getting to Portland, I met up with Joe Heck who’s been here since Monday. Sounds like there were was a good showing of people for the tutorial sessions. I’m looking forward to the sessions tomorrow. OSCON is a virtual playbook for the tools we are using to build Jobster.

Silverberg on IP and Open Source

Brad Silverberg has a nice editorial on intellectual property and open source. It’s a good one page sketch of how the economics of software are changing. I agree with most of his points. I think he nails it right on the head – open source forces innovation up the stack to where it matters. The things that have been solved don’t need to be solved again.

So Long Supersonics?

The Seattle Supersonics were sold today to an Oklahoma City investment group. Surely this signals the departure of the Sonics. The sports stations and the Sonics themselves will lay all the blame on the city of Seattle. But take a look at the deals the Sonics turned down. Are you kidding me? The city rebuilt the arena only a little more than 10 years ago. For them to get a cent is insane.

When I was in college at UW, the Sonics were pretty good (Kemp and Payton vs. Barkley). Tickets were also relatively cheap. My wife (then girlfriend) and I used to go to ten or more games a year with my roommate. It was in the old Coliseum which was a pit but it was a blast. No luxury suites, no corporate sponsors. Just slugging it out with the Suns and Warriors and Jazz. Then they got really good. And they built Key Arena. Gone were the cheap tickets and the fans that knew anything about basketball. By the time the strike rolled around, we were done with the NBA.

I’m sad this has happened but I honestly don’t think I will miss them. The NBA is second only to the NHL for worst run league. The NBA has chronic image issues and the brand of basketball played today is miserable. The ticket prices are outrageous. They are abandoning towns that have had teams for decades. I’m glad that the city held firm and didn’t cave in to more insane demands by sports teams. The Alaskan Way viaduct must be replaced. It will cost multiple billions of dollars. That’s a fact and there is no way around it. Spending another $150 million on a perfectly serviceable arena makes no sense.

Molyneux on Apple and games

Peter Molyneux calls out Apple to do a better job of supporting game developers. I have mixed feelings on this. I’m a gamer. I certainly would love to see more AAA titles on OS X. That said, I spend the majority of my gaming time on consoles (Xbox/Xbox 360/PSP). A few years ago, I think PC’s needed games. But with the current state of consoles, I don’t know about that anymore.

Apple is very good at keeping things simple and doing one thing at a time well. The iPod is the perfect example – it is a music player and nothing else. Games are radically different than many other software you want to run on your computer. Consoles offer a much better environment. Modern games need to take over the whole box. On a PC or Mac, that is not acceptable.

Microsoft does do an incredible job supporting game developers. I have a friend that is an architect in the DirectX group. I was talking to him the other day about the future of DirectX and PC’s. I submitted that Xbox 360 was all they should worry about anymore. He made a great point to me though – games sell hardware upgrades. He is absolutely right. How many people upgrade their PC in order to play a new game? How many people really need a new machine to surf the web or run Office? Apple innovates more in the hardware space and uses that as the upgrade motivator.

It is nice though that high profile developers like Molyneux pay attention to the Mac platform. Luckily, the Blizzard guys have always supported it so must have PC titles like World of Warcraft have been there. But given the more limited resources of Apple, I’d rather they keep doing what they are and leave games on the consoles.