Monthly Archives: February 2010

Chax 3.0

Here it is, finally!

What’s new in Chax 3?
Due to the nature of a near-complete rewrite, most of the effort for Chax 3.0 was just in making sure the most important existing features in Chax made a smooth transition over to Snow Leopard. Apple makes significant changes under the hood with every major system update, which means each feature in Chax has to be manually reviewed and tested to make sure everything works. This took significantly longer than I had expected, in part because of the limited amount of time I’ve spent working on Chax.

The primary new addition to Chax 3 is a completely rewritten log viewer that takes advantage of Grand Central Dispatch and blocks in order to run faster and more smoothly. In addition to a revamped UI (thanks to Michael Simmons for his help with the UI), the new log viewer allows you to quickly browse images and links in past conversations without having to manually look through individual logs. I’ve found the new browsing modes to be very helpful when looking for something in a previous conversation, so I’d encourage everyone who installs Chax 3 to at least check out the new log viewer.

What’s not in Chax 3 that was in Chax 2?

  • Automatic message history (iChat on 10.6 now has this feature built-in)
  • Automatically go away when the screensaver starts
  • Undimming the screen on incoming messages and AV chats
  • Moving contacts from one group to another in the unified list does not work

How does Chax 3 load into iChat, and how does this differ from Chax 2?
The short answer is that Chax 2 used an Input Manager and Chax uses a Scripting Addition.

Before 10.6 came out, Input Managers were generally the most popular method of hacking and extending the functionality of applications such as iChat and Safari. However, Input Managers have been slowly phased out by Apple; first heavily restricted in 10.5, and completely inoperable under 64-bit in 10.6.

The removal of Input Managers meant another way of getting into iChat was necessary. Initially the method I used was a separate loader application. This cleanly separated Chax from iChat, but it also proved to have some deficiencies that could not be worked around. The loading mechanism that Chax 3 uses now is a Scripting Addition. The technical details on exactly how Scripting Additions can be used to load into another application was described by Kevin Ballard a few months ago.

What’s coming next?
My main priority is ironing out any remaining bugs that are still lurking in this release. Past that, I’d also like to reimplement the remaining features that were in Chax 2 that didn’t make it into this release. Past that, the future is hazier. The feature set of Chax has been mostly stagnant over the past few years, as Apple has slowly added more functionality to iChat. This is great for all of us who use iChat every day, but the utility that Chax adds is becoming more and more marginal. It could be in the next major release Chax will be obviated completely, but that time is not here yet.

There is also the fact that Chax is now over four years old, and my ability to continue to devote as much time as I have in the past to support and development will likely not be able to continue indefinitely. At the moment, I plan to continue to make minor improvements to Chax time allowing, as well as ensure that it is as bug free as possible.

Changes from Chax 3.0b2:

  • (New) Dutch localization (thanks to Martijn K├Ârvers)
  • (New) Polish localization (thanks to Pawel Labunko)
  • (Bug) Can now delete contacts from the unified list when groups are enabled
  • (Bug) Fixed Growl notifications not appearing for some people in rare circumstances
  • (Misc) Localization updates

Download Chax 3.0