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...

Tuesday, November 22, 2005

JAMS 2.2

JAMS 2.2 is available for download and works with AIM Triton 1.0, as well as the most recent AIM Triton Betas.

What's new in JAMS 2.2:
* EZLogger now will bring up a specific buddy's IM history if you select that buddy and invoke "Show IM Logs" from the AIM Triton Actions menu.
* A number of bugs reported have been fixed, including issues with the %song argument not working properly in MyTunes, and incomplete cleanup of the registry during uninstallation. If you encounter problems with JAMS 2.2, please comment here on the blog; as this is how I find out about most issues.

Due to popular demand, I have also posted a page that details all the JAMS plugins and what they do.

Update 11/23 10:31 PM EST: We goofed. I discovered the "Settings" buttons are not working for any plugins in Triton 1.0.2. It will be fixed in the next Triton release. I also verified the issue with Colorizer where IMs are not colorized if you have customized your font preference. I will release a version of JAMS next week that will resolve this issue (unless you have customized the color in your font preference).  I was not able to reproduce the reported issues with MyTunes.

Friday, October 28, 2005

JAMS 2.1

JAMS 2.1 is out, and works with AIM Triton Beta 8. For best results, before installing, "Exit AIM" from the AIM Triton File menu or tray icon first.

The main new stuff in 2.1 is:
* Broadcaster - new plugin from Greg that sends an IM to every buddy in a group
* Better integration with AIM Triton - no more silly tray icon, now the plugin commands will come up when you click the "Actions" button on the AIM Triton main window.
* A number of usability fixes to EZLogger and MyTunes based on user feedback.

Update 10/28 4:32 PM EDT:
I goofed and accidentally uploaded the wrong file when I published this the first time. If you downloaded JAMS 2.1 prior to this update, please redownload and reinstall. Sorry... had lunch on the mind...

Update 11/11 4:37 PM EST:
Haven't had time to update recently... crunch time. Couple things I wanted to mention:
* There is a known problem with MyTunes not replacing %song properly... will fix as soon as I have time
* The JAMS tray icon will not be returning... please use the Triton Plugin Settings tab to configure plugins and the Triton "Actions" button to activate them
* I am working on a web page that lists all the JAMS features... hopefully will be done in time for JAMS 3.0...
* Regarding uninstallation, JAMS only installs 1 file, jams.dll, which is cleaned up by the uninstaller as long as JAMS is not loaded into memory at the time. If you are seeing JAMS leave other stuff behind... please describe and I will look into it.

Monday, October 10, 2005

Yalta 2005?

Greg has a post on his blog with a picture that was taken of AIM (Greg), Yahoo, and MSN developers together at PDC 2005. Always interesting to know your competition...

Thursday, October 6, 2005

AIM Developer Site Live

The new AIM Developer Site has been launched to support the AIM Presence API that we are unveiling today. I'll be covering the AIM Presence API in a future post; right now I wanted to encourage developers to register and learn about license keys. Registration and license keys are important parts of all the AIM Developer stuff we will be releasing in the coming weeks, including other AIM web services and AIM Triton Plugins.

Also, I wanted to menion the AIM Developer Message Boards where we will be answering questions about the AIM Developer Program and AIM Presence API. Note that these forums are for technical questions only; for help with using AIM please refer to our support center.

Tuesday, October 4, 2005

500 Buddies

The max buddy limit has now been raised to 500  Now you can have room for just about anyone you know on your buddylist. (An interesting article here indicates that the average person knows 290 people. So we're giving you close to double that!) Because of some database constraints, the maximum number of buddies in a single group is still 200. We'll see what we can do in the future.

Update 10/08/2005:
It is reported at this site that Yahoo's max buddy limit is 300 and MSN's is only 150. :-D

Update 10/10/2005:
Dare from MSN reports that MSN's limit is actually 300. Nice to meet you Dare!

New Logo and AIM Triton Demo


"yt?" is history. Now the Running Man's got a new favorite word.
Also, there's a new Flash demo of some of the new features in AIM Triton up on aim.com. Check it out at http://www.aim.com/triton/demo.html

Tuesday, September 27, 2005

JAMS 2.0!

Finally... JAMS 2.0 is out!

It requires Triton Beta 6. Use in Triton Beta 5 will probably cause "undesirable operation". Our plugin API is now locked down, so JAMS 2.0 should work with all future Triton builds.

Here's what's new:
* Easier to use - plugins are automatically enabled when you install. You can disable ones you don't want to use using the plugin tab in Triton's settings.
* Blops - Import and export your buddylist using BLT files (Greg)
* EZFormat - Add *bold*, /italic/, or _underline_ in your IMs easily (me)
* PhoneNumToLink - Incoming phone numbers in IMs are converted to hyperlinks, when you click them they trigger an AIM VOIP call (Steven)

Also, updates to:
* MyTunes - doesn't overwrite your Profiler profile. If a profile is set, it will replace "%song" with your currently playing song. So you can do "Hi, I'm currently listening to %song."
* FightClub - server changed, it now works again.
* And some miscellaneous bug fixes.

Some other plugins that just missed the cutoff for JAMS 2.0 are a cool buddy icon picker, and the ability to go away when your Bluetooth phone goes out of range. Also, future builds will integrate better with the AIM Triton UI, instead of the (admittedly clumsy) tray icon.

Friday, September 23, 2005

More AIMFighting

Previously I wrote about the http://aimfight.com/getFight.php URL for getting AIM Fight data programatically. However, this is not the official interface for getting this data.

http://big.oscar.aol.com/PopularQuery?screenname=<screenname> will return more detailed AIM Fight information, in XML format. A query for "juberti" returns the following XML blob:

<BuddyInfo>
  <CurrentBuddyScore3>431306</CurrentBuddyScore3>
  <MaxBuddyScore3>552127</MaxBuddyScore3>
  <OverallRankScore3>9429</OverallRankScore3>
</BuddyInfo>

Here, "CurrentBuddyScore3" is your current AIM Fight score, "MaxBuddyScore3" is the highest score you have had recently, and "OverallRankScore3", if nonzero, is your ranking in the list of top AIM Fight scores.

Web services like this are an important part of our AIM roadmap. Look for more stuff like this in the near future...

Thursday, September 22, 2005

Humor for Geeks

I was talking to some folks who just got back from the Microsoft developer conference, one of the things they mentioned from the conference was a Microsoft Battlebot whose operating code was all written in .NET. Appropriately, it is called "The Finalizer". Even better is its tagline: "IDispatch the Fury". (If you didn't get it, you can read about .NET's garbage collector or IDispatch.) 

http://www.finalizer.net/ has details, including the source code for download.

My sources tell me various things about this guy, but he has flow. ytcracker, the "heavily disputed king of nerd rap" has released an album for free download of several raps set to soundtracks from old Nintendo games. One of my favorite lyrics (from "meganerd"):

 "Basically BASIC was the first language I spoke, I was telling Apple deuces just where they could PEEK and POKE".

Legit old school. If raps about "pushing and popping, XOR and NOPing" sound interesting to you, give it a listen.

Wednesday, September 7, 2005

Celebrity Buddies

I get several IMs every week that start with the message "who is this?". This puzzled me for a while - what would lead people to ask such a question? Do these people really forget who they added to their buddy list? Do they go around calling people on the phone and asking them "who is this?" Where did they learn their manners? I was really wondering until I read an article the other day about celebrity buddy lists. Apparently there are lists of celebrity screennames being sent around on the internet, which people add into their buddy list, and then try to strike up a conversation with these celebrities. Amazingly, I am on some of those lists. I can only imagine what it must be like for a real celebrity to sign on - getting bombarded by dozens of "who is this?", "waz^", or "prove you're really such-and-such" must make using IM a real joy for these people. To those affected, I apologize...

Here's one of the lists (note: I am not on this list).

Tuesday, September 6, 2005

Long Overdue Update

Wow, it's been a while since I last had an update. We've been cranking hard on stuff for AIM Triton, finally got a chance to come for air. Hope to have some more updates in the next couple days, with a JAMS release for Triton Beta 5, the latest on TOC, comments on GTalk, and some other stuff I've been meaning to post.

Also wanted to mention my trip to Europe last month - had a great time with the folks from AOL Germany - thanks to Markus, Alex, and Volker. Some pictures below...


At a German sausage stand in Hamburg with Volker and Günter.
(Update 9/7: for those unsure, I am the one in the black shirt.)


Driving through the French countryside towards Reims.


In Paris for IETF 63.

Thursday, August 18, 2005

JAMS 1.5 Released (And Logging for All...)

JAMS 1.5, the newest set of plugins for AIM Triton, is now available. JAMS 1.5 works under AIM Triton Beta 3 and 4. For more information on JAMS, click here.

Lots of goodies in JAMS 1.5 (which is why it took so long):
EZLogger - automatically logs your IM and chat room conversations (finally!) [screenshot]
* FightClub - AIM Fight against everyone on your buddylist at once! See who's regulating in your hood. [screenshot]
Profiler (by Greg Cypes)- Set and edit your AIM profile.
AVProps (by Steven)- Tweak the control knobs for voice and video sessions.
* MyTunes - iTunes is now supported in addition to WinAmp.

Update 09/06/2005: JAMS 2.0 for Triton Beta 5 will be out soon. If you are having problems with IMs not showing up in EZLogger, if possible email me a copy of the IM that was lost. We do a conversion from the funky AOLRTF format used by older AIM clients to XHTML 1.0, and the kinks in this converter are still being worked out.

Thursday, July 28, 2005

And Blogging For All... For Real Now

The green light has officially been given... from Employee Central [AOL employees only]...

"As AOL employees, are we allowed to blog? Yes. However all of the policies and guidelines that pertain to how you conduct yourself as an employee also apply to blogging."

If you are blogging or thinking about blogging, be sure to read the full statement. It boils down to 3 simple concepts - don't disclose private information, don't bash co-workers, and don't try to speak for AOL to the media.

Have fun!

Wednesday, July 27, 2005

AIM Fight Hacks

It didn't take long for people to start doing neat stuff with AIMFight. "DosBubba" on Slashdot was the first one I saw to uncover the (unofficial) web API used by the aimfight.com page:

http://aimfight.com/getFight.php?name1=SCREENNAME1&name2=SCREENNAME2

The returned data is of the form

&success=1&score1=132451&score2=6004&oscore1=27241&oscore2=0&height1=99&height2=4

where:
"success=1" -> both names were valid
"score1=132451" -> score of name1
"score2=6004" -> score of name2
"oscore1=27241" -> name1 was ranked with a rank of #27241
"oscore2=0" -> name2 not ranked
"height1=99" -> relative height of name1's vertical bar
"height2=4" -> relative height of name2's vertical bar

"jcuervo" quickly came up with a Perl wrapper, and "DBergere" wrote a shell script wrapper. "timdorr" even wrote a Mac OS X Dashboard widget.

Dashboard users may also want to check out this widget, which displays selected buddies on your desktop. Pretty neat, but would be even better if it could display the buddy icon as well... which seems like it should be easy to do if you have read this post. Anyone feeling brave?

Friday, July 22, 2005

AIM Triton Beta 4

Version 0.4.7 of Triton is out. You can download from http://beta.aol.com/projects/tritonbeta/index.html. I've moved up to it and it has a number of nice tweaks from the previous beta.

JAMS 1.0 continues to work with Beta 4. However, I have noticed two issues:
* When using Colorizer, the second IM sent out in a session does not get colorized. This is because AIM Triton generates bad FONT tags (before the BODY element) in the second (and apparently only the second) outgoing IM. I will need to talk to the UI guys about that one.
* LWAway can cause Triton's UI to crash. I haven't figured it out exactly, but receiving an IM when LWAway has put the client into "away" mode seems to cause the Triton UI to tube. I suggest disabling LWAway for now until we can get this sorted out.

I'm heading off to AOL Germany next week, and will be at IETF-63 in Paris the week after that, but will be releasing JAMS 1.1 shortly (hopefully). Been pretty busy, so the only real new feature is that MyTunes now will support iTunes.

One last note - been playing around with the ATOM protocol exposed by AOL Journals. Pretty powerful stuff! I made a simple javascript that allows you to enter a screenname and dumps out all journals for that name, along with their last modified date. You can get the source here - run it from the command line like "cscript atomtest.js juberti".

Tuesday, July 19, 2005

AIM Fight!

AIM Fight is now officially live! Find out how popular you are in the AIM universe, and compare to a friend! (Sorry Greg, I had to go up against someone).

For the developers out there, this is an example of some of our new AIM server APIs that we expect to make public in the near future.

Update: As a bonus of our shared backend, AimFight also works for ICQ numbers.


Tuesday, July 12, 2005

Blog from the Beach

Out on vacation this week... couple quick things I heard about that you should check out...

Watch the space shuttle launch on aol.com

Wednesday, July 6, 2005

More AIM Presence Indicator Stuff

scottp00010 wrote in with some PHP code he wrote to generate different output from a webserver based on whether the target user is online or offline. Less hacky than the javascript solution I posted a couple months ago. He has code for the AIM version and an ICQ version - these could also be condensed into a single version by checking the first character of the screenname and going to big.oscar.aol.com if a letter, or status.icq.com if a number.

Update:
Scott has posted a new version that supports both AIM and ICQ as described above.

Friday, July 1, 2005

AIM Plugins

A while back I blogged about how AIM Triton would support plugins. And we've made several statements to that effect in the press. Well, we've been working on our plugin support for many months, and so I can report that every version of Triton released so far has supported plugins... but unfortunately, there is so much stuff that we are working on for Triton, that we haven't had time to get a nice UI for plugins done.

OK... so where is this all going? I'm pleased to announce version 1.0 of Juberti's AIM ModificationS (JAMS), the first set of plugins for AIM Triton. As an example of the flexibility of Triton's plugin API, the user interface for managing plugins is implemented as... a JAMS plugin.

Note: JAMS 1.0 requires AIM Triton Beta 3. If you install JAMS under AIM Triton Beta 2, you will probably find that AIM Triton no longer works. If you have any problems using JAMS 1.0, an uninstaller is included.

Once you install JAMS, the next time you sign on with AIM Triton, you will see this icon -> in your system tray. If you double-click it, it will bring up the plugin management UI. From there you can enable, disable, or configure any of the installed AIM Triton plugins.

Besides the plugin management plugin, JAMS 1.0 includes the following plugins (note that plugins are disabled by default, and need to be manually enabled through the plugin UI)
* Colorizer - automatically applies a color to your outgoing IMs and chat messages that changes over time.
* LWAway - automatically sets AIM as away when you lock your workstation (for Win XP users, Windows Key + L), and comes back when you unlock.
* MyTunes - automatically adds the current track you are listening to in WinAmp to your AIM profile and status text. (Will support AOL Media Player and iTunes in the future)

None of these plugins are particularly awe-inspiring, but they are a bunch of useful toys that we were able to write in less than a day, and they show just some of the things you can do in just a handful of lines of code with the AIM Triton plugin API. We'll be adding to and enhancing JAMS throughout the AIM Triton beta cycle to show off other neat things that you can do. Note that JAMS is written using C++ and ATL, but the plugin API is COM/IDispatch and so supports any COM-compatible language.

So... many of you are probably wondering... "when can we write plugins for Triton?"
We're working on a developer site right now, where we will be publishing the AIM Triton plugin API, a tutorial for writing a "Hello World" plugin, and the source code for JAMS. Look for it in the coming weeks...

If you've read this far... we are looking to hire a contractor to write AIM Triton plugins for the next several months. If this sounds like fun to you, you live in the Washington DC area, and you have ~5 years of C++ experience and 2 years of COM/ATL experience (plugin experience would be great too), send me a resume and sample code if possible.

Thursday, June 30, 2005

Triton Beta 3

Triton beta 3 was released today at http://beta.aol.com/projects/tritonbeta.
Highlights of the new build:
* Performance has improved substantially (we will continue to focus on this)
* AOL Radio integration (really well done)
* Save screenname and password (finally!)
* Plugins! (will post about this very soon)

As always, please continue to send me your comments, positive or negative (keeping in mind this is still a beta). Outside perspectives are really interesting to us.

Tuesday, June 28, 2005

More on IMAP/SMTP settings

I was having trouble sending mail with my aim.com account, but fortunately I was able to walk down the hall and talk with the head of mail development, who informed me of the error of my ways...

You must use smtp.aim.com:587 for sending mail, NOT smtp.aol.com. On the IMAP side, you should use imap.aim.com:143, although imap.aol.com will still work. When I made this change, things worked fine for me.

He also mentioned that SSL/TLS is a work in progress, so you might be able to use SSL/TLS for your aim.com SMTP and IMAP - but you might not.

Thursday, June 23, 2005

And Blogging for All...

AOL management has given the official OK for employee blogging... hope I helped influence that decision. Now you can read several other employee blogs, including Greg, an engineer on my team (AIM architecture), and a different Justin, an engineer on the Boxely team (UI toolkit). Greg's blog has had a lot of updates already, so it obviously means he is less busy than I am. I will have to talk to him about that :)

We also recently opened up blogging for AIM users... you can get your AIM blog, or read other AIM users' blogs, here.

Friday, June 17, 2005

350 Buddies...

We've now raised the limit to 350 buddies on your buddy list... and we're not done yet.

Responding to those who asked about SMTP settings for AIM Mail: supposedly you can use smtp.aol.com, port 587, with your AIM user name and password - but I had problems with this. I've asked some folks on our mail team to look into it.

Sunday, June 5, 2005

AIM Mail IMAP settings

IMAP access is now turned on for all aim.com accounts. Set your IMAP client to use imap.aol.com, port 143, and use your AIM name as the username.

Wednesday, May 25, 2005

AIM Triton Beta 2 is out!

Quite a busy day. Download at http://beta.aol.com./projects/tritonbeta.

AIM profile size increased

One of the most-requested AIM improvements has finally occurred - the AIM "profile" size has been increased from 1K to 2K. Away message size is increased to 2K as well, although you will have to use AIM Triton to set a > 1K away message.

Tuesday, May 24, 2005

Detecting AIM from a web page

One of the engineers on my team, Greg Cypes, gave me some HTML that can be used on a web page to detect whether AIM is installed. Really simple stuff that can be easily integrated into almost any webpage. You can check it out at this link, do "View Source" to see the few lines of Javascript that do the actual detection. Unfortunately, it doesn't yet work with AIM Triton, although I am sure we will solve that before it is done.

Update: May 25, 2005 3:58 PM EDT
OK, I was wrong. The AIM detect script I posted works with IE and Netscape 4.7, but with Mozilla/Firefox, it doesn't detect AIM 5.9. Somehow the setup of the application/x-aim MIME type got busted in AIM 5.9 (maybe also in 5.5). Hopefully we can get this fixed for the AIM 5.9 refresh.

Thursday, May 12, 2005

AIM Mail is out!

More good stuff today! AIM Mail, free email for AIM users, launched today at http://mail.aol.com! Simply log in with your existing AIM screenname to get a free 2 GB aim.com mailbox with:
• AOL's excellent spam and anti-virus protection
• An awesome web front end with search
• Or, if you want to use a mail client, IMAP access
• Single Log-on - logging into AIM allows lets you seamlessly login to AIM Mail
• AIM presence integrated into email so you can see if the sender or recipients are online
• AOL's "Unsend" and "Message Status" features
• And more!

It's a great product! Check it out at http://mail.aol.com.

Monday, May 9, 2005

250 Buddies!

I've said it before - there's going to be a lot of great stuff coming out of AOL this summer. Today's improvement is a new buddylist limit of 250 buddies per list (up from 200).

Also some folks have been asking about AIM Triton: is it AIM 6, or is it part of a software suite? The answer is: both. It's the successor to AIM 5.9; the latest AIM 5.9 version with AOL Browser will be the last version from the AIM 5.9 codebase. AIM 6 is also one of the first of a suite of applications (AOL Browser is another) built on top of our core platform and with our Boxely UI toolkit. I don't know whether AIM 6 will actually be called "AIM 6" when it has its final release - that's something the marketing people will decide.

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

Friday, March 25, 2005

AIM URLs

You may be familiar with the aim: URL scheme, which allows web pages to interact with the AIM client software when the user clicks on a hyperlink..While it's not the most powerful programming model, it's very easy to learn and use. Four of the most common aim: URLs are "AddBuddy", "GoIM", "GoChat", and "BuddyIcon", which I will discuss in more detail below.

AddBuddy is fairly self-explanatory; it typically looks like this:
aim:AddBuddy?screenname=juberti
Clicking this will bring up the AIM user interface to add the specified screenname to your buddylist. It is also possible to add multiple screennames at once, using the "ListOfScreenNames" parameter, and to specify what group they should be added to, using the "GroupName" parameter:
aim:AddBuddy?GroupName=Bots&ListOfScreenNames=aoljournals,zolaonaol,millionaireIM

GoIM allows one to prepopulate an IM window, here's an example:
aim:GoIM?screenname=juberti&message=This+Is+A+Test.
Note the use of the '+' character for spaces; if you want to use the actual '+' character in the URL, you'll need to use '%2B' instead. This ends up being important if you want to send an IM to an SMS number, such as +18005551212.
Also, GoIM will only compose the IM, not send it; this is by design.

GoChat causes the client to automatically enter the specified chat room. The example below creates a new private room called "My Room".
aim:GoChat?roomname=My+Room

BuddyIcon allows you to set the specified screenname's buddy icon to an image that you specify (the user will be prompted first). The example below sets the buddy icon for a user named "test" to be a cool Rubik's Cube.
aim:BuddyIcon?screenname=test&src=http://www.originalicons.com/images/icons/Toys/Classics/1100779782_171306471.gif

Those are the basics. However, there are several other aim: URLs that are also fairly interesting. I'll be writing about those in a future post.

Wednesday, March 16, 2005

AIM Remote

Some people have written in asking how they can get the AIM Web Presence Indicator on their webpage without having to code up a bunch of HTML. Fortunately, we have a tool to help with this called AIM Remote. You enter your screenname and a couple other pieces of information, and it spits out a block of HTML that you can paste right into your web page. Here's an example that I generated:

                  I am OnlineAdd me to your Buddy ListJoin my Chat Room         
           
Note that AIM Remote makes use of several aim: URLs, including AddBuddy, GoIM, and GoChat. I'll be talking about these and some less-known aim: URLs in a future post.

Tuesday, March 15, 2005

AIM Web Presence Indicator - with Buddy Icons!

Some of you have noticed that I display my current buddy icon in the "All About Me" section. This is accomplished through a new feature of the big.oscar.aol.com server, where you can supply a URL of the form "http://big.oscar.aol.com/BartSNQuery?screenname=ZolaOnAOL&type=1" and get a response like
 .

You can also specify "type=0" to get the mini buddy icon.

With some trickery, you can even combine the buddy icon with the AIM Web Presence Indicator to show your buddy icon when you are online, and an offline icon when you are offline. Here's an example: "http://big.oscar.aol.com/juberti?on_url=http://tinyurl.com/4z8aj&off_url=http://www.aim.com/remote/gr/MNB_offline.gif"


Note that I had to use TinyUrl to condense the original BartSNQuery URL, since big.oscar doesn't like multiple "&"s and "="s in the URL. I'll have to see if I can figure out a better workaround.

Give it a shot on your own webpage!

Monday, March 14, 2005

AIM Privacy and Slashdot

OK, I am getting tired of hearing about how "The new AIM TOS allows AOL to have all rights to anything you say on IM, AOL reads/stores all your IMs, etc."

I take this kind of personally, because that is not something I would want to be associated with.

First off, that blurb in the TOS only refers to AIM forum posts, not IMs. I agree that it is vague and should be reworded to be clear.
Second, the amount of IM traffic is on the order of hundreds of gigabytes a day. It would be very costly, and we have no desire to record all IM traffic. We don't do it.
Thirdly, if you still don't trust us, we have Direct IM (aka Send IM Image) and Secure IM in all recent versions of the AIM software. In other words, you can send your IMs in such a way that they never go through our servers, and/or are encrypted with industry-standard SSL and S/MIME technology. I know this since I designed these features. There are no backdoors; I would not have permitted any.

I am saying this as a concerned individual, and not as a corporate spokesperson..

Friday, March 11, 2005

Icons for AIM Web Presence Indicator

One thing about the AIM Web Presence Indicator is that it requires you to supply your own image URLs for online and offline. For those who don't want to go poking around looking for little running man graphics, I found these URLs:

http://www.aim.com/remote/gr/MNB_online.gif
http://www.aim.com/remote/gr/MNB_offline.gif

I also found Frank's Icons, a great AIM buddy icon site that not only has a lot of great icons, but allows you to customize the colors and wording on the icon as well. Here's an icon that I made:

Tuesday, March 8, 2005

AIM Web Presence Indicator, Extended

I got some responses to the last post asking if it was possible to do more than just change the image if the user was online or offline. Well, big.oscar.aol.com doesn't know to supply anything other than an image, but it is possible to use Javascript to get the desired result.

I was hoping that the image's "location" property would be set appropriately based on the redirect from big.oscar, but unfortunately that's not the case. So the only thing I could think of was to have a tiny offline image, and use the image's "height" property to tell in the onload handler whether it was the online or offline image that loaded. Fortunately, this worked pretty well. Here's a simple example page that demonstrates this behavior:

<html>
<script language="javascript">
function imgload(e)
{
    if (document.getElementById("i").height <= 2)
        document.getElementById("s").style.fontStyle = "italic";
}
</script>
<body>
<img id="i" onload="imgload()" border="0" src="http://big.oscar.aol.com/nosuchuser?on_url=http://www.aol.com/aim/gr/online.gif&off_url=http://www.aol.com/aim/gr/offline.gif">
<span id="s">nosuchuser</span>
</body>
</html>

and the output:

nosuchuser

This italicizes the text if the user "nosuchuser" is offline. This is just a simple example, from here you can do lots of things, such as add/change a hyperlink, etc.

Monday, March 7, 2005

AIM Web Presence Indicator

In my next couple posts, I'm going to cover some of the interfaces to the AIM system that exist currently. One such example is the AIM web presence server, AKA big.oscar.aol.com. You can construct an image URL that displays one image if you are online, and another image if you are offline. Here's an example:

<IMG SRC="http://big.oscar.aol.com/juberti?on_url=http://members.aol.com/juberti/images/online.gif&off_url=http://members.aol.com/juberti/images/offline.gif">

Note that if you are not using the "Allow everyone to see me" privacy mode, you will always show up as "offline" in this indicator.

You can also get clever and link the image to an aim GoIM URL, so that anyone who clicks on your icon will be able to easily send you an IM.

<A HREF="aim:goim?screenname=juberti"><IMG SRC="http://big.oscar.aol.com/juberti?on_url=http://members.aol.com/juberti/images/online.gif&off_url=http://members.aol.com/juberti/images/offline.gif"></A>

And here's it in action:

Sunday, March 6, 2005

DoorManBot

Matthew Goldstein wrote in about DoorManBot, a bot that allows users to submit IMs for offline users that will be delivered the next time that user signs on. Looks pretty useful. http://doorman.info/?page=info

Monday, February 28, 2005

AIM Plug-Ins

Well, now that it's been made public, I can start to talk about it... the next version of the AIM client (which will be a BIG step forward from the 5.x series) will have support for 3rd party plugins.

The mechanism will be COM/IDispatch, so any standard development tool can be used to author these plugins.

The API will be very rich and support presence, IMing, file transfer, audio/video, and more, including the ability to set up peer-to-peer sessions with another user who has your plugin.

We've been thinking of some cool plug-in ideas, but I'm sure that the AIM community is where the best ideas will come from.

AOL Opening Up Community

Some press on  some of the stuff we are working on... http://www.betanews.com/article/AOL_Opens_Up_its_AIM_Community/1109603183