Friday, January 27, 2006

Cool AIM Stuff of the Week

A bunch of things going on, so I'm a bit light on the updates this week. I'll be doing a mailbag early next week. In the meantime, here's a few neat AIM-related things I found while poking around on the web:
  • AIM Buddy Icon Maker on the Web
    Not quite as cool as the JAMS IconMaker plugin, but this website allows you to take just about any image (there is a 300K size limit), upload it, and get it back as an AIM buddy icon that you can simply click to set as your own buddy icon. Works in AIM 5.9 and all other AIM versions that support the aim:BuddyIcon URL (AIM Triton users should use JAMS :)
  • Personal AIM server
    Written from scratch by a bored AIM user, this personal AIM server allows you to have your own private AIM network. It is provided as source code (VB 6.0), so you can look it over and/or extend it to do what you want. To make your AIM client use it, simply run it and change the AIM server address in the connection preferences to the IP address of the machine running this AIM server. It only supports a subset of the AIM protocol, and so AIM Triton can't use it, but it's quite interesting nonetheless. Some other interesting stuff on this site as well.
  • AIM Business Cards
    While looking for information about AIM SMS short codes, I found this page which allows you to create business cards with your AIM screenname, which you can then print out from your computer. Kind of short on the options, but maybe of interest to someone.

Monday, January 23, 2006

JAMS 2.51

JAMS 2.51 is out with a couple minor improvements:
* MobileControl will now return users' away messages when using the "info" command
* The issue with MobileControl and the """ entities has been resolved.
* The issue with IconMaker not showing up for many users due to an invalid key has been resolved.

Also, apologies for not better explaining the keying issue and what it means to API developers. The "You know what that means" good news in the prior API Update post was simply intended to mean that the official release of the API is in its final stages. With regards to the keying, all it means is that you will need to come to our developer web page to obtain a (free) key string, just like you do for the AIM Presence Web Service (or any of Google's Web APIs). This allows us to identify the customers of the API, and protect ourselves and our users from malware plugins. If you have further questions on this topic, please let me know... it will all become clear when the API is released.

The license plate here was seen while driving by the Apple campus while out in California. VV (W?), thanks for your support!

Friday, January 20, 2006

Orb Networks

Finished up our Bay Area swing with a visit to Orb Networks, who does some really neat stuff allowing you to access your home media (photos, TV shows) remotely either by PC or cell phone (and for free). They've done some integration with Skype where you can get your Skype voicemails remotely, but we think they can do a lot more than that with our AIM APIs. We got some great feedback from them, especially regarding how our API stacks up against Skype's. We're definitely looking forward to an AIM-enabled release of their product.

This photo is shot from the Orb conference room looking out across San Francisco bay, from the Oakland side. Quite a view...


Spent a long day Thursday at the Googleplex discussing various technical matters. We're jazzed to have Google extending the AIM network, and we expect our collaboration on engineering will result in great things for our users. It's quite fun to be able to share experiences with people who have had to solve the same technical problems, and exciting to think about what could be accomplished if we can work together.

We didn't get to meet Larry or Sergey, but we did get a cool mini-tour where we saw, among other things, the Google "globe" plotting where all the Google search queries on the Earth are coming from. It would be way cool to do the same thing for all of our AIM traffic...

Thursday, January 19, 2006

Apples and Running Men

Dropped by the Apple campus on Wednesday to talk about some of the new and upcoming AIM features. Apple's iChatAV uses the AIM libraries that my team develops, and they've done great stuff with them - a perfect example of an external developer using our APIs to build a super product and add value to the AIM platform.

The iChat guys were great to talk to and it was a truly memorable visit -
getting to see Steve Jobs, John Ives, people from various Mac OS X teams, and the new MacBook Pros running iChatAV at an amazing resolution and framerate.

We did discuss audio/video interop and there will be a new AIM Triton out soon that will properly interop for audio and video calls with iChatAV in Mac OS X 10.4.4 (iChatAV 3.1.1)

Looking forward to see what the team comes up with for the next major iChatAV release...

Tuesday, January 17, 2006

AIM API Update

Greg and I are out in Silicon Valley this week talking with some select customers about our APIs (and getting a chance to grab some great fish tacos). Here's a shot of the AOL building here in Mountain View, where we gave a presentation today - love the palm trees.

Anyway, about the APIs - we have some good news and some bad news.
First the bad news: if you have been developing 'unofficial' plugins by looking at acccore.dll/reverse-engineering JAMS, your plugins probably stopped working today. This is because our API key management system went into production today.
The good news: you know what that means.
Also: head on over to I Am Alpha and see the web widget APIs that our AIM web guys have whipped up. These are not the AIM Plugin APIs, sorry for the confusion.

Off to another exciting location tomorrow! (If you're a native of the area and have any recommendations for hip restaurants, we'd love to hear from you.)

Update 1/18/06:
The IconMaker plugin in JAMS 2.5 had an incorrect key and was therefore disabled by the key-management system. Look for a JAMS 2.51 this week with a fix.

Monday, January 16, 2006

IM Etiquette

I came across an interesting page today entitled "IM Etiquette". Some of these tips are more important than others, but people who use good etiquette when IMing me (and probably many others) are much more likely to get a good response.

Most important tip:
"Unless it's some sort of joke or prank, don't leave more than two consecutive messages for someone who you know is away. The same goes for if you're talking to someone and they don't respond right away. They may be otherwise occupied. There is no reason for "Hi!", then five seconds later "Hello?", then "Anybody home?!". This elevates into ridiculousness and you'll only lose the other person's respect. And they will want to ninja-kick you."

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.