On APIs, Platforms and Predatory Evolution

There are few technical events that send as many people into frenzy than WWDC. The keynote at Apple’s big developer event is always fascinating to watch on the many sites liveblogging it (my favorite remains Engadget).

Today’s keynote though was unlike the previous ones. While updates to iOS5 were definitely not trivial, they felt more evolutionary than revolutionary, lacking any real “whoa” moments (iike the one I had when Google announced Android’s Accessory Device Kit and Android@home at GoogleIO this year). Worse still, most of the updates seemed more co-opted than invented. Ideas of Notification Systems and “Cloud AppStore” seemed to have been taken directly from Android and a bunch of other features were taken directly from apps already on the iOS platform like mentioned in this NYTimes article

This once again prompted conversations on the whole idea of building a business on someone else’s platform, a conversation that keeps coming up all the time (recently with Twitter and other such players). I have had a bunch of thoughts on this so I thought I’d share

Revisiting a platform’s need for APIs

Creating and running a developer API is a fair amount of strain on any company’s resources and also calls for a realization that at some level they will be giving up some control on the user experience (and may be potential revenue) from their product. Companies that do realize the need for an API do it for one core reason: increase the diversity of the interfaces to the end users. Its a very biological-evolutionary tactic to stave off potential extinction and find the “fittest” application for the core audience. At the minimum it may allow a part of the long tail of your audience to interact more with your service, but at best may make you discover a better way to serve your core audience. Ideas on the latter end of the spectrum tend to get absorbed into the core product either through buyouts or blatant rip offs.

Platform evolution and the death of the idea germinator:

The gut reaction when the platform absorbs the idea that was germinated by some app on their platform is to start counting down to the app’s inescapable demise. Historically though, these apps live or die based on the following factors:

  • The platform’s seriousness in owning that feature
  • The percent overlap of the feature set
  • The market size and diversity

If the platform is really serious about being the only solution for that problem, the  app developer is shit out of luck. This is what happened with Microsoft and IE vs Netscape. IE won out because MS was determined to let it be the only way to get to the internet. Same story (kinda) why OpenFient decided to accelerate its plans for Android when Apple announced Game Center.  For some apps, Apple may not be as determined to own that behavior, but rather have that enabled for its entire audience (when they are determined to own that behavior, the competitive apps get rejected from the AppStore). The seriousness also comes into question on the updates on version 1.1 or 2 of the product. Will Apple have a team dedicated to improving Reading Lists or the Todo App? Probably not, its been checked off as a feature and will be on a lot of marketing materials but may not evolve as fast as the third party apps (think of the updates on the Notes/Weather/Stocks apps for example)

Percent overlap of the feature set is also an good metric to look at. Thats what pushed Konfabulator off OSX when dashboard widgets were announced. With an app like Instapaper for example, does more than reading lists, it also lets me get to them from any other platform and other browsers. Readability on the other hand overlaps a lot more significantly.

Market size is of course relevant, but more than size, diversity and size of the long tail is a big deal. Todo apps for example are an infinite market because almost no-one agrees with the other on which app works for them. The platform can only target the big head there and cannot add any complexity (specially if you are known for that). This allows app makers to compete for the long tail

The Good News:

There is some benefit to a platform making a play in your space as Instapaper developer Marco Arment notes on his blog. First of all it justifies that space as mainstream and not a fringe/power-user behavior. Marco feels that Apple’s move will only make more people move to Instapaper as they get used to the idea of deferred reading but may find Apple’s implementation lacking.

Just as a reference, check out this graph of Facebook’s entry into the geo-location space with their Places product and its impact on Foursquare:

http://www.businessinsider.com/embed?id=4d76a40bcadcbbd7020c0000&width=500&height=430

All the publicity doesn’t hurt either.

Conclusion:

It will be interesting to see how Apple’s new apps will impact the existing players there. What I did find a little disappointing today was the lack of anything really “new”. All the features mentioned seemed to come to par with features I already use on my iPhone and Android (My personal phone is an Android I love and I carry and iPhone 4 for work). Whats interesting to me is that iPhone and Android are almost coming to a point where they are so totally similar to each other in every way, that the only significant difference between them may be philosophy and programming language. It will be interesting to see if a closed curated system is better or worse than an open one in the long run.

 

Yatr: Our hack for the Techcrunch NYC Hackathon

This weekend Gabo, Rob and I participated at the Techcrunch Disrupt NYC Hackathon, a 24 hour coding event where you come out the other side with some product. We decided to make a comments/conversation engine with some interesting twists named Yatr.

Why Comments?

It took us quite a while to reach a decision (actually till about 30 mins before the event) on what we would build. Comments are interesting for a couple of reasons.

  • Comments are really important but mostly neglected in the social world. If you look at the apps space, there are a million “link farming” apps that grab the top stories from your Twitter stream and yet there arent much that bring out the conversations around them.
  • A lot of blogs disallow comments completely (usually citing low signal to noise ratio).
  • Conversations often tend to get too specific: For example, a conversations around “iPhone4” are interesting to people who have Android phones. It would be great to surface these products up into a “phones” conversation. Even better, I’d like to subscribe to the top conversations around phones
  • I had been reading a lot of posts like this: https://drumbeat.org/en-US/challenges/beyond-comment-threads/
  • We wanted to blur the line between comments and content (blog posts). Yatr comments were supposed to be embeddable and a subaccount could be used as a blog engine on its own.

The Hack:

Our hack (video below), involved a bookmarklet that allows you to comment on any link. This comment can be shared to Twitter but also gets added to our database. Additionally we used a Readability library to find the relevant content on the page and then a term extraction library to find the main words in the post to try to find the appropriate tags (additionally I would like to use a clustering algorithm to improve the context recognition system). When a comment is made, we add that to all the relevant topics we can find.

On the other side, we created unique pages for each of the items commented upon, both the links specifically and also the tags on the content. The pages get pretty interesting where we Embed.ly ( and in the future DuckDuckGo‘s zero click API) to add more information to the page. The video below for example takes you from the link about “Portal 2” to the tag page with a bunch of popular links around Portal 2.

The whole App was written in Sinatra. I am a Ruby noob so I had been looking for a project to play with some middleware/Ruby. A big part of my goal for the hackathon was to learn using a new technology and I definitely came out of that pretty educated.

We had a lot of ideas on what this could/should be (actually all 3 of us had different ideas on what we wanted it to be, it didn’t help that all of us have very different opinions on social networking 😉 ). I am hoping to fix a bunch of things before putting it online, even if just for kicks.

P.S: Also check out Rob’s post on the event. He has photos and stuff!

 

So I discovered Android Launchers last weekend

Last weekend, I found an interesting link on Android AppStorm on beautiful replacements for the default launcher on your device. A Launcher is the default home screen on the device and displays the launch icons for all the installed apps. Like almost every component on Android, you can install different launchers just as you could any other application. Launchers not only change interaction models but also icons of the installed apps.

I had been vaguely aware of launchers but had never tried one. But the designs on the AppStorm link looked really awesome so I installed ADW Launcher on my Galaxy Tab and have since been trying a bunch of themes. Check out a couple of screenshots of my Galaxy Tab, running the AndroidPhone7 theme and Buff theme.

Windows Phone 7 Theme Buuf Theme

 

The themes I have been playing with so far have been pretty awesome and I keep finding great icon designs for the different experiences. The icing on the cake is that ADW is an open source project as is LauncherPro and am sure some others as well (This post lists the different Launchers that seem to be popular). Some of the other launchers, like SlideScreen for example, completely change the traditional launch screens. Its awesome that Android enables this kind of customization. (I hacked my old iPhone a couple of times to enable custom themes on it, this article on the Cult of Mac lists 15 of them, but require you to jailbreak your phone to enable them).

My main phone still remains the Google Nexus 1, which I really like but am now in the market for a new phone now that my contract is finally up. I have never liked the customized launchers that the different device vendors pack and so have been hesitant about getting something besides the Nexus S. Knowing that I can swap out the Launchers makes me feel a lot better about being able to control that experience.

Announcing Android Alliance Philadelphia (and our first Happy Hour)

I am pretty excited to announce Android Alliance Philadelphia, a group focused on bringing together developers, designers and passionate users together to share ideas and learnings with each other. The group will be modeled around most of the other user groups around Philly like Philly.rb and CocoaHeads, meeting about once a month and occasionally for happy hours. We are also planning to have a few events in tandem with these other groups so stay tuned for news on that front.

Like most self respecting user groups we now have a Twitter account (@androidPhilly) that we use to occasionally send updates on upcoming meetings or interesting goings-on in the Android community, and a Google Group for more elaborate discussions. Considering the group is already 60 people strong, looks like the group definitely addresses a need. If you would like to participate, please follow us on Twitter and/or join the group.

At this moment we are drawing plans for events for the rest of the year but instead of doing it in isolation or on the group mailing list, we figured it may be a good idea to organize a midweek happy hour to bring the group together and see what they’d like to see here. We are planning to meet at National Mechanics around 6pm this Tuesday, March 22 . If you are in the neighborhood, I hope to see you there 🙂

 

Thoughts on an open Twitter replacement: Concentrate on what’s done poorly

Twitter’s recent about face regarding their API gave me a lot to think about. It was definitely upsetting since I never saw this coming. I have always pooh-poohed the Facebook crowd and their constant worry about privacy and worn my Twitter username proud ( The geeky circles I move in, your Twitter id is fast becoming your real world identity), but suddenly Facebook felt less an oppressive regime. For a platform that clearly benefited from a huge developer community around it, a “you are not welcome here” message left a bad taste in my mouth.

My immediate reaction was the “I can do it over a weekend” developer instinct. But in this case it has been tried before and failed (see Status.net and the Twitter clones like Pownce that came out when Fail Whales were a regular feature of the platform). So this time instead of starting a new project that I would probably leave half done as I found the next shiny object I tried to analyze why Twitter succeeded and if it had indeed reached a tipping point where it just was important enough that it just could not be replaced.

I have had quite a few conversations around it as well. Tom Boutell and I shared some ideas (over Twitter, hah!) and he wrote an excellent proposal to replace Twitter. I agree with a lot of points there but have some rather different thoughts of my own,

1) How is Twitter different from WordPress
Theoretically it isn’t, and yet psychologically it is. My blog goes weeks (months?) without an update and yet I am extremely vocal on Twitter every day. I have often been tempted to just post my thought on my blog and forward it to Twitter (enough blogs and Tumblrs do that). But I feel Twitter is to WordPress like Instagram is to Flickr. They both capture transient thoughts that may have no value over a longer period. Occasionally interesting links are shared but thats it. I almost never go through my Twitter history. They are less formal and so immediate. I have a friend who composes blog posts for a couple of weeks since they seem so permanent that she doesn’t want to get it wrong, but Tweets are casual. I don’t think a simple install of WordPress would cut it.

2) We should do it because its Open / Federated
Unfortunately no-one cares about that, something that I am sure Status.net found out. Open is not enough reason for me to get off something that works, and is theoretically free. The only way an open system can succeed is if it brings new capabilities to the system. And open systems do that often. But a direct clone of Twitter is pretty useless.

3) Give me what Twitter gives
A Twitter federated and open replacement will have to:

  • Require no installation for the casual user and an easy installation for anyone wishing to be a node
  • Give me a permanent URL that I can share with my friends.
  • Allow me to discover new users and be discovered
  • Route messages to my “inbox”

4) Concentrate on what Twitter does poorly
Actually there is a lot here, and the only way a new system can succeed by fixing some of this:

  • Aggregate conversation around a shared item/link. Replies right now are a pain in the ass to track.
  • Be extendible. One of the things I see a lot of is the “vertical twitters” or “The Twitter for …(design / entrepreneurs / programmers, etc). So allow the data model that is a “tweet” to be extendible. For example, I should be able to add a poll as a Tweet or something like that.
  • Allow groups: Right now there is no way to create a quick group and send a message to 4-5 people without having to direct message them individually
  • Implement annotations: Twitter introduced this concept but has never executed on it. There is a lot of value here. For example, if I want to see what people are talking about the movie “Milk” I dont really want to see the dairy results. Similarly if I dont care for my friends’ FourSquare updates, I can only do a filter on a client like Tweetdeck using some String pattern (“checked in to”). But what if I am only interested in a friend’s tweets on programming but not his interest in photography. While hashtags could be used, most people don’t add them since it takes away from their 140 character limit.

Case study: BelugaPods
As an case study I’d like to talk about BelugaPods, a mobile app that I fell in love with and wish more apps were done so well. Beluga is a group messaging app that allows you to message multiple users and keep the conversations within a “pod”. Very handy when you are trying to organize group events. But the cool thing is that Beluga starts with the premise that your friends are not on the app. Messages to non Beluga users are sent as SMS but a clear value is shown by using the Beluga app (the conversation grouping). Thereby the application is usable when your friends aren’t in the system but excellent when they are.

I have a few ideas on implementation but they aren’t baked in enough yet to add to the post. Maybe I’ll follow up this one with those ideas…if I am not distracted by the next new thing ;).

Presentation: 5 Ways iOS is better and worse than Flash

Embedded below is my presentation for tonight’s Philadelphia Flash and Flex User Groups.

Thanks everyone who could make it. It was fantastic to see the local Flash Community after way too long :).

So Long CIM, Hello Comcast Innovation Labs

This post has been a little hard to write so I have been putting it off for the last few weeks.This week has been my last official week with Comcast Interactive Media, the group I have been with for the last 6 years. Its been a fantastic run, from back in Oct 2004 when I joined what was then the “Comcast Portal Engineering Team” straight out of grad school.

In the last few years I have worked with some fantastic people on products that have touched millions of users. I have had great managers throughout who have helped me grow and even experiment with what I’d like to focus on, which itself has gone from leading production applications like Comcast.net’s Flash portal and the flagship Fan product, to more recently looking into bringing technology innovations early in the product conception process within the CIM User Experience department.

But while building these products was awesome, I have always been more interested in emerging technologies often tangential to Comcast/CIM’s core business. I have also been pretty passionate about innovation within Comcast itself and even led a discussion about that at a previous BarcampPhilly event (the notes on which you can find here). It has always been challenging trying to be innovative and reactive to all the new stuff happening out there while building out products with well defined roadmaps (My former manager, friend and lead conspirator on foiling my entire office while I was on vacation Aaron Held even has a blog with that title 🙂 ). Moving to the newly formed Comcast Innovation Labs with a mandate of looking at emerging technologies and products as potential areas for Comcast to grow in has me pretty excited.

Thankfully the transition only currently requires me to switch floors, moving from the 18th to the 35th, so all you CIM readers, swing by once in a while. You know I’ll be on CIM floors almost everyday ;). The engineering team still has the best coffee machine in all of Comcast Center.

P.S: Its weirdly nostalgic to look back at all the posts on this blog tagged CIM. Must. grab. tissue…

Why Google was correct in Chrome dropping H.264

” This is crazy, why drop support for {propriety tech} that works and was pretty ubiquitous? ”

Now you can replace {propriety tech} with either H.264 or Flash. So why do we laud Apple dropping Flash but call Google’s recent action a blow to the open web.

It was always surprising to me that H.264 somehow became the standard for open video, even when the license terms have been mentioned so often. To the folks who are passionate about the open web, I say you aren’t trying hard enough. Open web is a hard goal to reach, h.264 seemed like an easy out, a solution to a problem we’d deal with later.

Ubiquitous support for a proprietary technology does not make it open, no matter how hard you may wish it to be.

So why did Google do it? One theory is to take a shot at Apple. But this announcement seems like a precursor to a very expensive exercise for Google itself: If Google is really serious about WebM, which this seems to indicate, they will have to transcode all their YouTube assets to the new format, and start building support for this into their other products, like Android. Seems too much like “Cutting off the nose to spite the face” kind of action.

The move makes perfect sense for Google. Google is not a company that thinks short term. If the current trends in online content continues, video will be a ridiculously huge part of the web. Its reasonable to imagine that advertising in that world will be pretty different. Current ad insertion strategies rely on pre / post roll ads and overlays controlled by the chrome of the video player. But the future could be very different, with things like dynamic ad insertion right into the media stream itself. For example, if the ad is embedded dynamically into the video stream, you could download the video and watch it offline, and still be guaranteed the ad was viewed, even if the video was “stolen”. Maybe such ads could even get more creative, something like embedding iAds into the video stream. [update] Also I imagine there will be a huge spurt in live video and video chat, now that more and more phones are coming out with front facing cameras. This makes relying on a licensed codec hard, especially on a scale like Google’s.

This is only one concept of the future of video advertising, but it underlies the fact that the video format could evolve to be very different from what we see today. It would be easier for Google to convince a group maintaining an open spec (that Google will definitely be a big part of) to add such capabilities than suggest it to a group that they don’t really influence and wait for them to decide to accept or reject.

Dropping H.264 support is a real blow for the short term but if enough investment is made in a truly open spec, I’d say it would be worth it.

The big question now is, will Microsoft accept WebM as well ?

[update]
One of the best comment on this was on reddit:

In the short term. This is a power play. The market is fragmented (e.g., no Flash on iPhones) and things will eventually coalesce, and Google doesn’t want them to coalesce into video tag/H264. They’re gambling that they can use their position (the most-used browser by techies, plus the most-used smartphone OS in the world) to force everyone to move off of H264 and onto open codecs.