Tuesday, April 26, 2005

Responses to AIM 6 Comments

A number of people wrote in with comments, I appreciate the feedback. I'll try to address some of them here briefly...
* Features - I can't stress enough that this is AN EARLY BETA (some of us would have called it alpha). Lots of things are missing. They'll appear in future betas.
* Memory footprint. Yes, it's big. Way too big for a final product. But it's not a final product, it's an early beta, we haven't done any tuning. The footprint will come down.
* Number of processes. We currently run different components as different processes to improve stability for this beta. This will change in future releases (and will help memory footprint as well).
* IE as renderer - we do very strict client-side filtering and run the incoming text through an XHTML converter to ensure a valid DOM, so I think we will be considerably more robust than AIM 5.9's creaky ATE control. In the event that we made a mistake, we have the ability to do server-side filtering as well.
* AIM for Linux... can't say too much now, but most of the Triton code is very portable, and may show up in another form in the future.

Monday, April 25, 2005

AIM 6 Beta 1 Released!

OK, we've decided to release the first beta of AIM 6 (AKA "Triton") to the public!
http://beta.aol.com/projects/tritonbeta/

Note that this is a very early beta, of a product that is a complete rewrite... it's not very polished in a lot of places. The standard disclaimers about beta software definitely apply here.

That said, you can see it's going to be a really good product. A whole new UI engine, called "Boxely", IE as the IM renderer, a new IM library called AIMcc with plugin support - we've got a solid foundation to develop on.

For those interested in the plugin API - take a look at the type library in acccore.dll. Plugins aren't exposed in this beta, and the API isn't final, but you can get an idea of what is going to be supported by this API.

Monday, April 11, 2005

AIM URLs part 2

OK, so it's been a while since my last update. We've been cranking bigtime on AIM 6 and there hasn't been a lot of spare time. But AIM 6 is going to ROCK. Seriously. It's practically all new, and so many things are so much better. I can't say too much right now, but when it's out, I'll be posting a lot about it.

Anyway, back to AIM URLs. "dualenforcers" wrote in to remind me of the "Exchange" argument in aim:GoChat URLs, which allows you to specify which grouping the room is in. By default, the exchange is "4", which is for private rooms. If you want to specify a public room, you must specify "5" for the exchange number. Here's an example: aim:GoChat?RoomName=Washington+DC&Exchange=5
Unfortunately, the public rooms are often full of spammers, which has proven to be a tough problem to solve.

Another URL that is useful is GoAway. It's not that useful from a web page, like the other URLs are, but it is a simple way to programatically set your client as away. A simple example is aim:GoAway, which sets your client as away using the default message. You can also specify the "Message" argument, which allows you to specify exactly what message you want to use, and the "Hide" and "Quiet" arguments, which allow you to control the various checkboxes on the Away dialog box. Here's a more complex example: aim:GoAway?message=I+am+sleeping+right+now&Quiet=true
Note that there's no easy way to do "I'm Back" from a URL at this time; fortunately, the new plugin API will support this functionality.

That pretty much does it for the commonly used aim: URLs. Here's a list of some of the rest:

SendChatInvite (send a chat room invitation):
aim:SendChatInvite?roomname=My+Room&ListOfScreenNames=juberti2,zolaonaol
GoTalk (start an audio conversation):
aim:GoTalk?screenname=juberti2
SendFile (send a file to a buddy):
aim:SendFile?screenname=juberti2&filename=c:\short.wav
SendBuddyList (send your buddy list to a buddy):
aim:SendBuddyList?screenname=juberti2
GetFile (start a file sharing session):
aim:GetFile?screenname=juberti2
StartAIMGame (start a game):
aim:StartAIMGame?screenname=juberti2
FindABuddy (search the AIM member directory):
aim:FindABuddy?Type=Email&Message=zolaonaol@aol.com
SignOnAFriend (invite a user to join AIM):
aim:SignOnAFriend?BuddyEmail=user@example.com&Message=Try+AIM
BuddyComment (set a comment for a buddy):
aim:BuddyComment?screenname=juberti2&Comment=Test+Comment
AIMToday (bring up AIM Today):
aim:AIMToday
ExpBrowser (bring up the expressions chooser):
aim:ExpBrowser