Thursday, January 12, 2006

Using AIM Triton with Google Desktop Search

Google Desktop Search is a nice utility, and its support for indexing AIM conversations has saved me many times when I have had to remember some obscure detail that someone metioned to me in an IM several weeks before. Unfortunately, it doesn't  support AIM Triton yet, but getting it working is not too difficult. If you're handy with a hex editor, you can follow the steps below. Otherwise, you can skip to the end and just download the file you need.

1. Shut down GDS, from the tray icon.
2. Find GoogleDesktopNetwork2.dll; for me, this file was in the "C:\Program Files\Google\Google Desktop Search" folder.
3. Make a backup of this file, in case you make a mistake.
4. Open GoogleDesktopNetwork2.dll in your favorite hex editor.
5. Scroll down to approximately offset 0x1A000, or search for "aim.exe"
6. You will see a list of EXEs such as waol.exe, opera.exe, netscape.exe, msn6.exe. Each name will be in Unicode format, meaning each character is 2 bytes, with the first character being a NUL (00).
7. Pick one of the EXEs that you do not use; "msn6.exe" is a good choice because it is the same size as "aim6.exe". (To be fair, I will note that "waol.exe" is also a good choice.)
8. Replace the EXE name that you have chosen with aim6.exe. If you chose a name that was longer than 4 characters, you will need to replace the remaining characters with NUL bytes.
9. Save your changes.
10. Restart GDS.
11. Restart AIM Triton.

If you don't want to go through all this trouble yourself, and you are using the version "Google Desktop 20050818-en", you can use the GoogleDesktopNetwork2.dll that I modified and skip steps 4-8.

Tuesday, January 10, 2006

JAMS 2.5

JAMS 2.5 has been released and can be downloaded here. It is compatible with AIM Triton 1.0 and later, please "Exit AIM" from the Triton menu before installing. Descriptions of all the JAMS plugins are available on the JAMS home page (now with screenshots!)

What's new:
* IconMaker - set your custom buddy icon from any image file. You can crop the image to get just what you want in your buddy icon. (by Justin)
* MobileControl - set your away message, or get buddy info by sending a SMS message from your mobile phone. (by Alan, the director for our group!)

Bug fixes:
* The bug where Colorizer did not work if you had customized your font has been fixed.
* EZLogger now displays an error message if you try to read a log that does not exist.

Got an idea for a neat plugin? Post it on the blog, or send it directly to us.

Update 4:17 PM 1/10/2006:
* The initial version of JAMS 2.5 had an issue where the displayed version numbers said 2.2. This has been resolved with the latest jams25.exe.
* To use MobileControl, you must first set the mobile phone number you will be using. Currently, you must do this from the Actions menu, "Set Mobile Phone Number". This will pop up a dialog where you can set your number, and also display the commands you can send. The currently supported commands are "@away msg" and "@info username".
* The Settings buttons do not work in JAMS 2.5, because it requires a new AIM Triton (version 1.2) that has not yet been released. Look for it soon.

Friday, January 6, 2006

Mailbag 1/6/2006

Happy New Year!

Got a number of questions over the past week:

Q: I want to build an AIM bot, but I am having trouble with rate limits and other uptime issues. How can I ensure my bot stays online?
A: We have a bot program where you can be added to our "bot whitelist" for a certain price (I don't know the pricing offhand). If you are interested, send me an email with "bot" in the subject line and I will send it on to our bot business folks. In the future, we hope to have an AIM bot (naturally) where you can submit these requests.
Q: What happened to Direct Connect/Instant Images in Triton?

A: We ran out of time and it missed the cut for Triton 1.0. However I have seen some demos from the team working on the UI for it and I can say that it will be worth waiting for.
Q: Why doesn't Triton's audio or video work with Apple's iChatAV?
A: We switched to a new SIP stack with Triton, and both Triton and iChatAV had some incompatibilities that did not fully get sorted out in time for launch. Look for these incompatibilities to be resolved with the next Triton (1.2 hopefully) and iChatAV builds.
Q: I don't like the green color used for the messages I send. Can I change the IM window text colors?
A: The colors are set in Triton's strings.xml file. You can find strings.xml at
C:\Program Files\Common Files\AOL\....\imapp\verXYZ\resources\en-US\. In this file, <string name="imForm.userColor">#4a9e00</string> sets everyone's favorite green. "imForm.buddyColor" sets the sender's color. You can change these values to something more pleasing to you; the changs will take effect the next time you start Triton.
Q: Is the plugin API ready yet?
A: We are still expecting a release in the very near future. In the meantime...
Q: I looked at the acccore.dll type library you mentioned before but I don't know where to start. What interface should I be looking at?
A: IAccPlugin is the base interface that all plugins need to implement. Methods on that interface will be called when your plugin is loaded and unloaded.
Q: Can I test the new Mac AIM client?
A: You will read about it here as soon as it is available.

Friday, December 30, 2005

2005 Retrospective

So it's time to look back and see how we did in 2005.

Things we did right:

AIM Triton 1.0.  Back in 2004, we had gotten to a point with the AIM 5.x codebase where we knew we could not innovate significantly any longer. The UI was hard to update, our Unicode (non-English characters) support was awful, the HTML renderer was a conglomeration of patches... we needed to rewrite almost everything... and so we did, resulting in AIM Triton. Yes, AIM Triton does not yet have all the features of AIM 5.9, including several important ones, and I will be the first to admit that we need to continue to fix bugs and improve performance. Nevertheless, the new platform that we have established is much better in terms of overall correctness and flexibility than what we had before, and getting there has been a substantial achievement.. The new UI is great and the plugin support will open the door to lots of neat stuff - plus we're working hard on getting your most-requested features back in for the next Triton releases.

AIM Developer APIs. From the humble beginnings in AIM URLs and big.oscar.aol.com, we have been working to open up AIM to the outside. And now with the AIM Presence API and the upcoming release of the AIM Triton Plugin API we are have an opportunity for people to build real applications on our platform. This new opennness may be suprising to some, but we've wanted to do this for a long time - we know we don't have all the ideas!

AIMFight. Two guys did this as a quick fun feature that they thought people would enjoy. So it was pretty awesome to see it make the front page of the Washington Post. The profligation of widgets that display the AIM fight scores are also great - another example of people using our AIM APIs.

And things we didn't:

The AIM Terms of Service. A couple of unclear sentences in the TOS and we find ourselves looking like we're trying to claim ownership of everyone's AIM conversations. Of course this was untrue, but getting that cleared up resulted in a very unfun week.

The AIM Profile hyperlink: I thought everyone would love the new all-in-one AIM Profile/Away page. And, we thought, what better way to let people know about it than putting a link in users' profiles? Well, as it turns out, people don't like having a profile they carefully created altered in any way. This was a case where we thought we were doing a good thing, but the way we did it made it a mess.

Megabots. I think the Moviefone bot is pretty neat, but I knew forcing it into the buddylist, especially at the top, was going to cause an outcry. Having just been through the AIM Profile hyperlink issue, we tried our best to argue against this same sort of unwanted change to personal data...

So, there it is. There are many other wins that I don't have the space to talk about now (500 buddies, JAMS, VoIP), and there are many other bad ideas that we prevented as a result of our constant fight to "do no evil". We (AIM teams) worked really hard to do cool stuff in 2005, and you can expect the same of us in 2006. Happy New Year!


Thursday, December 29, 2005

Mailbag 12/29/2005

With all the great questions I've received, I've decided to copy an idea of Greg's and start a weekly mailbag post. You can post your questions in blog comments or send them to me directly. Here's the first set of questions...

Q: When will the next version of JAMS be released?
A: The new tenative release date for the next JAMS is 1/6/06.

Q: What will be in the next JAMS?
A: Greg and I are working on two great new plugins that add much-requested functionality to Triton. The bug with Colorizer not working if you have customized your font will be fixed. We will also be looking into the reported iTunes issues.

Q: When can I develop my own plugin?
A: I cannot comment on dates, other than to say that we will be releasing the SDK "really soon".

Q: What if I don't want to wait?
A: You can get a head start by looking at the type library for acccore.dll, which is installed in the AIM Triton folder under "services/im". You can use the "oleview.exe" tool to view the type library.

Q: Anything more you can say about the plugin SDK?
A: As previously mentioned, the JAMS source code will be released with the SDK. There will also be a number of other goodies and surprises.
.
Q: Can you make JAMS work with my favorite music player?
A: If you send us a code snippet or URL showing how to get the track info for said player, we will try to add it.

Q: Can you make a plugin that adds the alert icon to the buddy list?
A: AIM plugins cannot currently change the buddy list UI. However, a future version of Triton should have this feature.

Q: Can you make the settings button work for JAMS?
A: Unfortunately this is a bug in AIM Triton 1.0 and 1.1. It can't be fixed in JAMS, but it will be fixed in Triton 1.2.

Q: Can you make a version of JAMS for the Triton betas and one for Triton 1.0?
A: JAMS 2.2 and all future releases will work with Triton 1.0 and all subsequent Triton releases, so there is no need for separate versions of JAMS.

Q: Can we have timestamps for every message in the logs?

A: Personally I think this clutters things up, but there has been enough interest that I will try to add it as an option in a future JAMS.

Q: Can EzLogger use the default browser instead of IE to display logs?

A: I tried to make that work, but I could not figure out how to make ShellExecute navigate to a URL with an anchor, so that the log is scrolled to the end (e.g. file:///juberti.html#end). If you know of a way, please let me know.

Q: Can you get working on a new Mac AIM?

A: We have been.

Sunday, December 11, 2005

Disneyworld!

Just got back from 8 days at Disney World and SeaWorld with the family. Some of my favorite pictures from the trip...