Friday, May 12, 2006
AOL Music Now Developer Site
Thursday, May 11, 2006
AOL Greenhouse
Other Greenhouse submissions include an AIM Fight Dashboard widget and an RSS screensaver. Another neat feature of the site is its blogs section where you can find AOL employee bloggers and catch up on their recent posts.
Give the Greenhouse a look!
Tuesday, May 9, 2006
TopCoder Open 2006
You are given a NxN matrix M, where 1 <= N <= 50, and an integer k, where 1 <= k <= N. Write a function to determine the maximum possible trace value for a kxk submatrix S, created by taking any k rows and k columns from M. (The trace is the sum of the elements on S's main diagonal; the selected rows and columns are not necessarily contiguous.)
Anyway, the final rounds were quite dramatic, with the problems being tougher than ever, the elimination of some of the top seeds, and some close finishes in the rounds to select the competitors for the championship round. In the championship round, it came down to 8 competitors - mostly from Eastern Europe, with 1 each from China, Japan, and Australia.
"tomek" (from Poland) got out to an early lead by solving the 250-point problem (You are given two rectangular solids of arbitrary sizes; write a function to determine the minimal surface area of a box than can enclose them) in just over 5 minutes. However, "Petr" (from Russia) prevailed in the end by being the only competitor to solve the 1000-point problem (Given an array of cables connecting N points, where each cable has a quality Q and a cost C, select a subset of the cables such that all points are connected and the sum of the quality values over the sum of the cost values is maximal). Petr walked away with $20,000 for his efforts; he was also asked at the post-event press conference "What was the most important decision that you made during the competition that allowed you to win?" His answer, naturally, was "The most important decision that I made was choosing to solve the 1000-point problem correctly."
Below are some pictures I took during the competition. At first, it can seem a bit strange to think of programming as a spectator sport. TopCoder does an excellent job though, with multiple screens displaying the standings in real time and mirrored viewsof all the competitors screens so you can see how they are approaching the problems. When the competitors are this good, it is quite exciting to just watch them work.
Friday, April 28, 2006
More AIM SDK stuff
- After considerable customer feedback (see my previous post), we've clarified several ambiguous points in the AIM SDK license agreement, up at http://developer.aim.com/license.jsp. Specifically, we've addressed the use of the AIM SDK with open source software in Section 4, and modified the wireless restriction to exempt software running on a PC or using 802.11. Lastly, we've removed text which indicated that you must send us mail if you change the URL where your custom client or plugin is hosted; now you can just change it from the "Manage Keys" page.
- The first AIM SDK plugin written by a third party developer that I have found is AMIP, which adds the song that you are currently listening to to your AIM profile. It's like JAMS's MyTunes, except AMIP supports many more music players. Worth checking out.
- On the subject of JAMS, we now see over 100,000 people using JAMS every day. Thanks to all of you who have used JAMS and recommended it to friends.
- Last, we are gearing up for our AIM SDK 1.1 release. There will be a lot of new goodies along with many bug fixes in this release. Look for it in the near future...
Wednesday, March 15, 2006
AIM SDK License Clarifications
The next version of the EULA will have many of these things remedied, but until then, let me try to clear up some of the sticky issues. (Many of these questions were submitted in an email exchange that you can see here.)
If you have more questions about the license - or are still unhappy with terms in the license - please let me know so that I can try to clarify the issue, not just for you, but for everyone who reads this blog. This is the first effort of this type at AOL and we are still learning how to do this.
Keys, Name, URL
Q: Why is AOL using keys to control access to the API? I don't want to have to come beg AOL for a key!
A: Anyone can get a key. You don't have to "apply", you just go to our webpage
and click a link. We don't vet the keys in any way, you just click and boom you have a development and deployment key. You can deploy your software, sell your software, have up to 250,000 users of your plugin/client per day - all completely for free. All we ask is that once you exceed that limit (as you start to approach 1% of our userbase, and potentially start consuming nontrivial network resources) you come discuss a business arrangement with us.
For those still unconvinced, Google is doing the exact same thing for access to the Google family of web services. It allows the network operator to know who is using the network, and prevent people from abusing the network (spam, malware, etc).
Lastly, many have asked "I don't know what to put in when for the name/URL fields when applying for a key". The name and URL are intended to allow us to help us monitor the network, by allowing us to get more information about your plugin or client. If you are still in the development phase, and don't know what to put for these fields - you can just make something up for now - you can go back and change it later.
Open Source
Q: Section 4 (viii) (about "Publicly Available Software") seems to be the subject of debate. Some think that it forbids the use of *any* open source code with theSDK, including well-understood licenses that are not "viral". The GPL is notoriously problematic, but I think others (like the MIT license) should be okay.
A: We encourage the use of open-source code with the SDK. The only prohibition is that you cannot write code with a license that would require AOL to open source the SDK. I think the GPL is the only license that has this issue (since you cannot link to closed-source libraries); LGPL, BSD, and MIT should be fine.
We will try to make this absolutely clear in the next EULA. We are very supportive of open source - we use several best-of-breed open source technologies in the AIM SDK (libexpat, zlib, NSS, and sipXtapi).
Wireless
Q: The definitions for wireless use seem very broad. I think the most
worrisome part is:
offer or enable a service or functionality not authorized in writing by AOL that utilizes a wireless telecommunication carrier's network and/or wireless services.
This seems to extend to computers using a wireless internet connection. Three cases come to mind:
- 802.11 networks operated by wireless telecommunication carriers (e.g. T-Mobile Hot Spot)
- 802.11 networks using internet access provided by a wireless telecommunication carrier (e.g. a wireless router and a DSL line)
- TDMA, CDMA, GSM, etc. networks, using a computer, not a mobile device (e.g. Verizon data service using a PCMCIA card)
A: I agree this is very poorly worded. This is only intended to apply to software running on mobile phones using TDMA/CDMA/GSM.
PCs/PDAs using 802.11 are not affected by this.
Deployment
You may not deploy or distribute your Custom Client to any third party.
Q: This appears to extend to distributions that do not include a key or (distributable parts of) the SDK itself (e.g. source code).
A: This is from the section where it discusses "Development keys". The intent is that plugins built with "development" keys (as opposed to "deployment" keys) should not be distributed to end-users in binary form (mainly since the 500-user limit will prevent your plugin from working properly for most users). If you are distributing source, you may include a "development" key in the source - we do this in the sample applications provided in the SDK.
Distribution Limitations
from a fixed HTML website located at a publicly available fixed URL
Q: Theterms "fixed HTML website" and "fixed URL" seem to potentially problematic. Many pages are dynamically generated and mirroring requires redirection.
A: This just means, you can give us a URL, that if we follow it, we can get to a site that has more information about your plugin. The "fixed" language is just a way of saying that if we go to your URL, we should not get a 404.
Monday, March 13, 2006
VON Conference
Monday, March 6, 2006
Open AIM
At last! Today is a big day for our team and AOL as we proudly announce the "Open AIM" platform at http://developer.aim.com. In addition to our AIM Presence web service, we are now offering the AIM SDK to all developers. With the AIM SDK, developers can write plugins for the AIM Triton and AIM Pro clients, or write their very own custom AIM clients.
The full functionality of the AIM network is exposed in the AIM SDK – it’s the same robust and performant libraries that AIM Triton and AIM Pro are built on top of. Both plugins and custom clients have easy access to presence, text messaging, SMS, voice, video, security services, and much more. And it’s being made available through a very flexible license – it’s free to use for non-commercial and limited commercial use (up to 250,000 users per day).
The JAMS source code, and other sample code, is included in the SDK. And there is extensive documentation, so it’s easy to get started.
Why are we doing this? We think that we can offer developers the best IM platform, by combining the AIM network’s extensive reach (63 million active users) with the power of our AIM SDK and web services – and that puts us at a real competitive advantage.
We’re really excited to be launching this first version of the AIM SDK, but also have a lot more in store that just couldn’t make it into the 1.0 release. We’ll be offering a number of new features, plus support for more languages and platforms in future versions of the SDK. Show us what you can do!
