The Not-So-New News

28 jul 1999: See plea for gtk patches above. gtkfaim no longer works, for a variety of reasons. If you know gtk, please update gtkfaim and send me patches. After that, I can update it to the new libfaim and get it all working again. Oh, and mailing lists are broken too.

3 dec 1998: Finally released gtkFAIM 0.0c. Does contain (minor) changes to the backend.

18 nov 1998, 20:13: Added gaim link below. I promise a new stable version of gtkFAIM to be out soon. There's just so much great work going on with it that I don't want to make them stop and wait for me to release! [Aside...I may skip a 0.0b version number and go right to 0.0c. There's been enough people using the pre0.0b snaps that it might be a tad confusing. Will spend a few hours pondering and get back to you.]

14 oct 1998, 21:37: gtkfaim 0.0a is out. Adds away features and send-on-enter IMs. Backend changes as well.

10 oct 1998, 23:36: gtkfaim 0.09 is out. Now includes parsing of basic HTML entities (<, etc). Also contains a couple bugfixes and a bit a code rearragement (in both gtkfaim and faim). Also did renovations to this site.

30 sep 1998, 23:17: a gtkfaim 0.08 slipped out yesterday and didn't get mentioned here. Read CHANGES for the changes.

22 sep 1998, 23:28: gtkfaim 0.07 released. Finally attempts to fix some of the buddy list aesthetic oddities. Looks much better IMHO. Also does a few other things different. Now we have a CHANGES document that actually documents these things...

21 sep 1998, 23:01: gtkfaim 0.06 released. Mostly minor fixes. Includes the NORESERVE patch for those of you who incessivly get false reservation errors on login. Also allows from recieving background colors from people using AIM95. Some other really minor things as well. Extended the INSTALL file to be a little more readable and understandable (hopefully).

15 sep 1998, 21:17: gtkfaim 0.05 released. Adds support for providing profile. Adds profile option to faimrc. Also removes SNAC error at login, and includes TheOrb's debugging patch to parts of the backend.

13 sep 1998, 01:43: gtkfaim 0.04 is out. You can now retrieve member information. Also features improved incoming IM command parsing (no visible difference, though).

11 sep 1998, 00:16: gtkfaim 0.03 final is now available. Read the INSTALL file for all the major info. Have fun.

22 aug 1998, 00:14: pre7 is up. Includes execution on events (James' (TheOrbTwo) onfoo patch plus additions and minor fixes). Also his other patch, and some other things of my own (more his than mine, though). Should also stabilize a small amount, as I fixed a really, really stupid typo in the IM-related things (both directions). Try it. Complain. Get ready! Go!(Get it from the primenet address, as I didn't make it out before midnight to catch the mirrors.) You'll also notice the extra sounds package, which is optional, as per the INSTALL file of pre7...

16 aug 1998, 23:20: pre6 is up.

14 aug 1998, 02:24: Ok, 0.03pre5 is out. Major speed and stability improvements. Also, the amount of debugging output is controllable at compile time. Read the INSTALL for more info. If it just appears to hang after you hit "Login", don't worry, unless it's a really, really long time. Since there's no debugging info by default, you can't know whats currently going on. This will be improved in later versions. This is the first time a new release has actually gotten smaller. Oh, and I've removed all traces of the password for the AFritzler account. Yes, that's me too. And it shouldn't be you... Oh, I've created a new mailing list for people who don't care about developement, but only about new FAIM releases. Send the message "subscribe [your email address]" to to be subscribed. You only need to be on one of aim-clone or faim-announce (all announcements will go to both).

13 aug 1998, 19:09: FAIM made it onto freshmeat this morning. Added the list of mirrors. It appears the problems of yesterday were limited to that one system. I've so far had no complaints of zero-functionality. delphid/ihpled has been getting pounded, although the machine is doing fine, the connection isn't. I must appologize for the slow http connections! Use the mirrors for FTP. EVERYONE: SUBSCRIBE TO THE MAILING LIST, especially if you're having problems. Also, if you haven't, please read the AOL AIM Terms of Service. It's available when you register and is distributed witht the AOL clients. There's some stuff you need to know before you use an AIM clone. That is all.

12 aug 1998, 21:11: Another new release day. Still working on minor releases, though. I put it up on primenet because I was getting complaints of the FTP speed across this 28.8kbsec (big suprise). Latest version will still always be on delphid, and eventually making it up to primenet. Still no full 0.03, just a mere 0.03pre4. Because of complaints of problems with RedHat 5.1, I've #if 0'ed out the gtkfaim_login_close() code because of segfaults (I've never seen this happen before, but others have). Because of this, the login box doesn't close like it used to. If you have RH5.1 and know what you're doing please look into it, as I can't. Send patches, please! Also, there's major endianess problems. If you have the time to fix them all, mail me a patch. v0.03 should come out in the next week or so. Hopefully.

04 Aug 1998, 20:10: New release day! v0.03pre1 is out. Not all the promised features of v0.03 are there yet, so it's a pre. The link is above. Important new functionalities: proper handling of SN spacing and case differences, the login box (no more recompiling to change SNs), and a few other bug fixes. Hope you like it!

04 Aug 1998, 01:22: I'm readying for a gtkFAIM v0.03 release. There's been massive bugfixes (mainly, because I've had to start using it full-time since AIMJava died on my machine and I'd rather write code than deal with library problems) and some rather small features added (eg, there's now a login box so you don't have to recompile just to use a different SN/Passwd). It should crash a lot less, too. Things I'd like to fix before a v0.03 release: .faimrc parsing (this has been broken ever since I (too quickly) wrote it), basic sound support, and a few more bug fixes. On a more futuristic note, for the v0.10 release, there's going to be an accompanying new FAIM backend library that properly implements the specification. (The current version hasn't the slightest idea what a TLV even is!) I'm working on it now, but it's no where near complete. As always, email me if you want a copy of my latest tree (I don't have the time to make a new public-ready package every night!). Possibly soon, I'll put it into an anonymous CVS repository, but for now, we'll deal with the current method.

24 Jul 1998, 14:18: The Microsloth lovers of the world finally got to me, and today I wasted a half-hour of my time "fixing" my HTML of the FAIM pages. Are you happy now? BTW, the proper solution is for you to get a decent browser, but since you probably already know that by now, I'm never going to mention this incident again. It's wasted too much of my time and yours. Oh, and if you do feel the ever persistent erge to complain again, please do it in a nice manner. Getting flamed for other people's problems is utterly wasteful, and only makes me write more of this paragraph.

22 Jul 1998, 19:21: Everyone who is using a protofaim.tar, please get the new gtkFAIM 0.02 package linked to above. The latest copy of what was formerly in protofaim.tar is now in there. Also, please note that I know what I and others are doing with AIM is in violation of the "AOL Instant Messenger(TM) Registration Agreement". Please do not remind me, as I do not particularly care. I'm not particularly interested in sorting out legal issues: I'm here to decode the AIM protocol in order to make life better for Open Source users. Please take your legal babble and go bother one of the other millions of illegal projects out there. Also, you should probably make sure that you're 100% in compliance with the agreement before making judgements on me. Chances are you're not. On a completely unrelated note, I'm planning on getting this stuff up to a faster connection as soon as I can. Also, I'm now in cooperation with, as he has been putting a lot of work into this same goal. Please see his information ("As Seen on Freshmeat") at

9 Jul 1998, 23:55: The current version of protoFAIM (as of the last 15minutes of the 9 Jul 1998) should be much easier for people other than me to use. Before you compile, change the parameters to aim_login() called from main() to use your SN and password. Also, you may want a different buddy list -- it's in send_login_phase3c_hi_b(), as an array of strings. Also change buddy_count if you have more than a three. The code doesn't handle 0 buddies -- actually, it handles it by not sending that command, which may or may not be the proper way to handle it! That should be all. Have fun.

9 Jul 1998, 18:36: I urge everyone interested in an AIM clone to join the aim-clone mailing list by sending the message "subscribe <your email address>" to! Also, for protocol-related discussion/announcements, send the message "subscribe <your email address>" to

9 Jul 1998, 00:03: Great stuff. The basics of the API are down. I will most likely change the low levels a bit, but that can wait. The cool stuff I wanted is basically there (namely, received command queuing). Received command queuing allows most of the login process and the main event loop to be integrated with each other. Now, you just execute a single function (aim_login()), giving it a screen name and a password, and it sends the packet off, then all you do is start the event loop. Past there, the rest of the login process gets done via packet handlers, just as IMs and other live packets do. Much more flexible than the send-this-and-hope-you-get-that-back approach I've been using so far. The queue allows things to happen in any order, not just the normal predefined order. I'm sure this is the way it's done in the Java AIM client from AOL. One of the future enhancements I spoke of: transmit event queues to allow the same features of the former, but in the other direction. This will abstract the highest level of the API as well. My total aim (no pun) is to never have any high-level (either high-level API or application) to directly access a socket. This would allow invisible implementation of sequence numbers. More to come. Once the APIs done, I'll start on a GTK GUI AIM clone (ie, gFAIM). I'll put off the console (text-only) clone for now -- I'm envisioning something like BitchX for IRC, but with IM conversations instead of channels. Check out the latest source! Take a look -- there's ssome very interesting stuff in there. Also, check out the AIM/Oscar Protocol Specification.

7 Jul 1998, 19:25: Initial successes have been fantastic, once I got started. It's now capable enough to get through login and start processesing live events! Currently, you can send it a message, and it will send it back to you (this may not sound very usefull, but is). No UI at all yet. I think I'll just get a basic set of APIs down, then UI/GUI/CLIs will be quite simplistic. This is WAY more fun that it sounds... Check out the procotol specification here.


Adam Fritzler
Last modified: Sun Mar 19 09:52:27 UTC 2000