Looking for the drawings? They're over here, and my drawing blog is this way.
04.21.2009 - The Challenge of Easy Integration
The first in a series, I give you SocialThing for Websites, the Challenge of Easy Integration, a short article about how we kept the SocialThing's client integration to one line of code for the partner to paste in.
Granted, this is the baseline implementation. If you want the client to use your authentication, or post stuff into feeds, there is a bit more work to do, though not much.
Enjoy!
04.20.2009 - aimapi-core and SocialThing
Oh hi, long time no speak. How's every little thing?
I've spent the past few months working on the SocialThing for Websites client, which you can see in action on AOL's country music blog The Boot. Techcrunch didn't tear it apart, and the comments aren't as rabid as one might expect on an article about an AOL product, so I suppose it came out next-to-all-right.
The client itself was a lot of fun to work on, and there were a lot of interesting technical hurdles that we had to hitch our pants way up and leap over which kept things awfully interesting. More on those later, though.
For now, I wanted to point you towards the backbone of the SocialThing client, aimapi-core.js, now hosted on Google Code. This is a pared down, bare bones, just-what-you-need-and-nothing-else version of the original Web AIM Javascript API that AOL released back in November of 2006.
So, you ask - besides dropping all the UI stuff that you weren't particularly interested in the first release, what's so great about aimapi-core? Well...
- Its only 44k (with white space and comments). The original is 80k and does less.
- More transactions (some of which didn't exist in 2006):
- addBuddy and removeBuddy
- getStatus and setStatus
- getBuddyFeed (AIM's lifestream - see buddyupdates.aim.com)
- pushFeed - a means of pushing content into a user's buddyfeed/lifestream
- reportSpim
- and more!
Alternate means of listening for events. The original codebase used long polling via script nodes. Unfortunately this meant rapid polling in Firefox because of a bug in that browser that prevents more than one script from downloading at once. This rapid polling was both memory intensive and had the status bar constantly letting you know that it was "Waiting for 12.345.79.80..." which kinda sucked.
So how was this resolved?
- If AIM.params.useSWFListener is true, the API uses swfobject to pull in swfsocket.swf which uses AS3's socket API to listen for host events (IMs, presence updates, etc). Many thanks to my pal Rick Gardner for writing this piece.
- If swfsocket fails to initialize, the API falls back to scriptiframe.js, a clever work around that James Burke came up with that uses an iframe to long poll for events.
And if all that fails, it goes back to using dynamic script nodes to listen for host events.
- And more! (...that I still need to write documentation for!)
So give it a look, and let me know what you think. Oh, and for those wondering - no, the SocialThing client is not a frame a' la the diggbar. Come on, give me a little credit.
05.12.2008 - Does it .match?
I've been doing some work in AS3 of late and stumbled onto a bit of a gotcha last week that I thought I'd share since it caused me about 15 minutes of frustration.
The gotcha pertains to a significant difference in how Javascript and AS3 handle the match method of the String object when the global flag is passed. Consider the following Javascript snippet:
var r = /[a-z]/g
var s = "abc";
var x = s.match(r);
This will return an Array with values "a,b,c" in both Javascript and in its AS3 equivalent.
Now, consider this code, replacing the value of s with something that will not match:
var r = /[a-z]/g
var s = "123";
var x = s.match(r);In Javascript, this will return null, but AS3 will return a zero length Array. Which means that this...
if(s.match(r)) {
// do stuff...
}
..would always be true in AS3, but false in Javascript. I spent about 10 minutes thinking there was something wrong with my regular expression, and another five thinking there was something wrong with AS3's regexp engine before I realized what was happening.
So who has it right? According to the ECMA 262 spec, AS3 does (see page 101-102). Of course, Mozilla's documentation claims that it will return an Array as well with no mention of null on that page, while Microsoft's JScript documentation admits it will return null if no match is found.
Good times.
03.12.2008 - Emre Grayson Chipman
My son, born this evening weighing in at 9.33 pounds, measuring 20 inches.
(And that's why I wasn't in Austin this year!)
03.07.2008 - SXSW Time!
And I'm not gonna be there this year. I know, I know - I should have told you sooner. You're probably already in Austin or in flight, now wishing you had advance notice of this turn of events so you could have just stayed home. I'm sorry, I really am. This really was terribly inconsiderate of me.
Soldier on, brave geeks, and know that with enough Shiner Bock, anything can be fun even if I'm not there. Be strong. And take lots of pictures. And twitter a lot. Let me experience Austin through your internets.
(Any day now I'll have an announcement of why I'm not there this year...)
01.02.2008 - Three Drawings and a PSA
These three drawings I did leading up to Christmas - I've kept them private on Flickr and not published them here as they were gifts for family and I didn't want to spoil the suprise.
- Clara at 17 Months
- 8 x 10"
- Colored Pencil on Eggshell Mi-Tients Paper
- November 20, 2007
- Big Smile
- 8 x 10"
- Colored Pencil on Cream Mi-Tientes Paper
- December 11, 2007
- Clara at 18 Months
- 10 x 8"
- Colored Pencil on Eggshell Mi-Tientes Paper
- December 21, 2007
And with those, I'll no longer be posting drawings on slayeroffice. 2008 seems a good a time as any to get the site back on the web development talk track. If you're interested in following my portraiture work, you can find it on my new drawing blog. Or, just grab the feed.
12.13.2007 - Page 222
My good pal Mr. Lawver has included a reference to my Page Info Favelet on page 222 of his new book.
Congratulations to Kevin, Kimberly, Christopher, Rob, Meryl and Mark on the book. I'm not sure when it comes out, but with that caliber of authorship (and obvious good taste) its a must-own.
11.14.2007 - Maya
- Maya
- Graphite on Cold Press Illustration Board
- 11 x 8.5"
A portrait of a friend's new baby.




