ksuther.com

Chax 3.0

February 6th, 2010

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

Chax 3.0 Beta 2

January 22nd, 2010

Just a few more changes on the way to 3.0. Some localizations are back thanks to volunteers. The auto-hide options from previous versions have also returned. Barring any serious issues, a “real” 3.0 release should be ready soon!

Changes from Chax 3.0 Beta 1:

  • (New) Added options to auto-hide the contact list and chat windows when inactive
  • (New) Added a new Growl notification for status message changes
  • (New) French localization (thanks to Yann Ricquebourg)
  • (New) German localization (thanks to Christoph Schmitz)
  • (New) Russian localization (thanks to Denis Avdeev)
  • (Bug) Plain text ICQ now works properly on 32-bit machines
  • (Bug) Fixed the add contact menu not always working in the unified contact list

Download Chax 3.0 Beta 2

Chax 3.0 Beta 1

January 15th, 2010

Sending plain text to ICQ users is finally back thanks to mach_inject. Due to changes in how this feature works, you will now need to enable this feature explicitly in the Chax preferences. Enabling this option will require you to enter an administrator password the first time in order to load into iChatAgent.

Updating with Sparkle from alpha 7 to beta 1 should finally work. Unfortunately, if you’re running a version earlier than alpha 7 you’ll likely need to manually upgrade. The changes made in alpha 7 should put an end to that inconvenience and confusion.

Regarding localizations, the necessary strings to localize Chax and the installer can be found in a zip archive inside the installer’s application package (inside Contents/Resources/ChaxLocalizableStrings.zip). If anyone is interested in localizing Chax and would like instructions on how to test their localization, let me know. Thanks to the localization code made available by Wil Shipley.

Changes from Chax 3.0 Alpha 7:

  • (New) Reimplemented sending plain text to ICQ accounts as an option in the preferences
  • (New) Option to add a confirmation sheet when closing active AV chats
  • (New) Rearranged the preferences window
  • (Bug) File transfer auto-accept works properly again
  • (Bug) Minor fixes to log viewer

Update: The plain text ICQ option will not work for users running on 32-bit machines. The next update will resolve this problem.

Download Chax 3.0 Beta 1

Chax 3.0 Alpha 7

January 11th, 2010

The problem with all the contacts in the unified list disappearing should be resolved in this update. Updating through Sparkle has also been causing trouble for a number of people; this update should resolve future updates with Sparkle. If you have trouble updating to alpha 7 from an earlier release, manually downloading and reinstalling will resolve any problems.

As a number of you have commented, HTML-stripping for ICQ accounts is still disabled. This was necessary because of the new loading system. I’m still working on figuring out the best way to get that working well, without having to manually relaunch iChatAgent.

  • (Bug) Fixed contacts disappearing from the unified contact list shortly after launch
  • (Bug) Improved the installation and upgrade process. Future updates using Sparkle should be applied more consistently.

Download Chax 3.0 Alpha 7

Chax 3.0 Alpha 6

January 5th, 2010

Another alpha, hopefully the last one before I do a final 3.0 release. As with beta 5, you need to manually download and update if you’re running beta 4 or earlier. Using Sparkle to update from beta 5 should work smoothly.

The big new feature is a completely redesigned log viewer. The interface has been modernized and two new modes to browse logs have been added. In addition to just viewing the raw transcript, the log viewer will pull out the images and links that were in the conversation, making it easier to find a particular image or link you’re looking for.

Also back after a couple year hiatus is auto-reconnect. It works for me in simulated tests, but I’d like to hear how it works for people who have continual connection problems.

If you’re still having any problems, please keep reporting them and I’ll see what I can do. One issue that I am aware of that still hasn’t been resolved is the activity log and Growl notifications for status changes not appearing.

Changes from Chax 3.0 Alpha 5:

  • (New) Redesigned log viewer with an updated interface and the ability to browse images and links
  • (New) Option to attempt to automatically reconnect when the connection is lost
  • (New) Added “Show in Log Viewer” to the contact list contextual menu
  • (Bug) Fixed reordering statuses in the Edit Status Menu sheet
  • (Bug) Fixed crash when receiving an invitation to a group chat

Download Chax 3.0 Alpha 6