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.

The grand 2010 recap post

Wow, cant believe its that time already.

2010 was a pretty great year for me. In Nov 2009 I moved to the User Experience team hoping to be the voice of technology as new projects were conceived and features enhanced. So the year began with me learning the workings of the UX team which was fascinating. The creative process is, not surprisingly, very different from the engineering one, and sitting in those sessions was ridiculously educational. CIM has some pretty fantastic Design and IA folks and I got to learn quite a bit on concepts such as Mental Models, Task oriented design, User Persona’s etc. I also ended up reading a few books on my new role (of which About Face might be the best one, and I recommend it strongly to anyone in the UX/UI domain) which I never would have done if I hadn’t moved to this team.

Suffice to say, if the year needed to be summarized in a word, it would be “educational” 🙂

Around Feb, I also got involved in a prototype for the project that is now the Xfinity iPad app. As a UX prototyper, I was on the 3 people big prototype team that built the demo that was shown at the NCTA event. After that I ended up working with the brand new Advanced Engineering Team as we rushed to get the final product out of the door. My role in the team was not UX really, but implementation. After the initial learning curve of Objective C, I got pretty comfortable with it and actually realized that user interface frameworks and technologies are pretty similar even with syntactical differences. I wrote about the whole Xfinity App development experience here. In the last few months, I have returned to prototyping but these days they have all been functional additions to the iPad app itself.

While I didn’t write as much code for it as the iPad, I have also become extremely passionate about the Android platform. While less polished than its i-Cousin, the deeper I look into the architecture the more awesome it seems. I built a couple of apps for internal demos that ran on Android (in Java) and that was fun. I feel less proficient in the Android UI framework than in UIKit, just by virtue of time spent developing on it, but its something I hope to get better at next year. The Android world definitely lacks the sexy factor that is going on with the iDevices, and I am really hoping that changes both with upcoming OS updates and developer community maturity. I also played around with AIR for Android a little and it seems pretty decent. I am working on a project using that now. The biggest thing that has going for it is not just the familiarity of ActionScript but also the tooling of the Flash IDE. As much flak as it gets, the Flash IDE is rather fantastic for dropping visual assets for an app. I really wish AIR for Android played nicer with the core Android framework, though there are ways of doing that as mentioned in this post by Elad Erom.

EspressoReader, my AIR app for consuming news (currently as a Google Reader client) continues to evolve. Just building something like that has made me learn so much about the way we consume information. It has also gotten me hooked on books on collective intelligence and text analysis. I will release a new version in the coming weeks that I am really excited about. So if you haven’t tried the app out yet, give it a try by installing it from this link to the Adobe AIR Marketplace.

I ended up travelling for work quite a bit this year, attending some pretty fantastic conferences like the NCTA Cable Show, the Web 2.0 Summit and TechCrunch Disrupt. This is a change for me, as these were more about the business and strategy than my usual fare of tech conferences. From my schedule in Jan, looks like this will continue. Btw, I am heading over to CES so if you are heading there as well, send me a holler 🙂

Finally, looking ahead, 2011 seems to be at a great start. There are a lot of changes afoot which I’d love to share soon. So stay tuned 🙂

Some interesting videos on alternate/future Android UIs

I love Android, I really do. Probably more so for geeky developer-y reasons than anything else. I love the application architectural concepts of Activities and Content Providers that can be mixed and matched to form a complete experience, as well as the fact that it supports true multi-tasking, not the pseudo multi-tasking that iOS supports (its shocking how many apps actually cannot handle multitasking on my iPad with the OS 4 update). But its no secret that the Android UI is awful! I hope the 2.3 Gingerbread update fixes some of these but my hopes aren’t that high (its a point release after all and considering how much of the UI needs to be changed from ground up, I can’t imagine a lot has changed there)

But recently I found some rather interesting videos on Android UIs so I thought I’d add them here so that I can always find them, and hopefully inspire some Android devs to look beyond the built in widgets:

The following videos come from the ReadWriteWeb blogpost

Here is another awesome Android MOD called MIUI for rooted Android phones which brings a much more polished UI to the Android that I discovered from this link:

I’ll add more videos here if I find any but I definitely hope people start being more creative about the UI on the Android devices.

[Update]
Some of the ideas mentioned above are also reflected in the TSF Shell Launcher app

Xfinity TV App is finally in the App Store

Its pretty awesome when the project you have been working on for so long is finally released. Last week, the Xfinity TV App was finally available on the Apple App Store, and has been in the top 10 most downloaded apps for the iPad pretty much since then. The app is a free app and is pretty fantastic, turning your iPad, iPhone and iTouch into a virtual remote control for controlling your Comcast Xfinity Cable box.

If you haven’t used it yet, here is a video walkthrough of the app in all its glory:

Building the app was a huge learning experience for me. Before this project I knew very little about iOS and Objective C, but working with some of the smartest developers on the platform got me to learn iOS app development pretty fast. At this point, I have worked with so many UI technologies and frameworks that I was able to apply a lot of my learnings almost directly (with syntax differences of course). For example, one feature I was responsible for was the OnDemand listings view in the app. To implement the view that was supposed to show the thousands of assets available on Xfinity, I was able to implement a virtualized list that recycles item renderers to effectively manage memory. The api and implementation of my component was very influenced by the Flex and OpenPyro List control (I have previously discussed virtualized list implementation in ActionScript here).

Btw, I have to say, if you are just getting started with iOS, the Stanford University video series on iPhone app development is a great place to start.

The Team

IPad Dev Team

Building the app was quite a fantastic (even if extremely hectic) experience, but I have to say the best part was working with an awesome team. The app definitely had us working late nights on multiple occasions but thats a lot more manageable when you work with people you actually enjoy hanging around. The picture below is the app team but behind the scenes there was a huge number of engineers across the country that handled the network and set-top box updates that allowed the app to work.

The video below has Sean Brown (Sr Director of the Advanced Applications Engineering team) talk about the development process of the app. The video occasionally switches to the co-working space that is set up where Engineering, User Experience and QA teams work together.

The Response

… has been fantastic and thats amazingly gratifying. I have embedded some of the Tweets I just found doing a twitter search for “XFinity Remote”, and its awesome to see how people react to it:

//

For more formal reviews, check out some of the posts mentioned below:

As awesome as the app is, there is a lot more features that are being added to it now. Recently we demo-ed the PlayNow functionality thats being added to the app for an upcoming release at the Web 2.0 Summit. Embedded below Neil Smit, President of Comcast, giving a walkthrough of that version at the event:

If you want to keep up with app updates etc, feel free to follow XfinityTV App on Twitter. Also if you are an Android user (like I am) rest assured that the Android version is well on its way :).

An OPML like exportable format for Todo Lists?

Another month, another Todo list app tried and given up on. The latest candidate is The Hit List, a beautifully designed Mac application. However, it lacks any online component and as I move between different machines, the lack of being able to add/remove items from some web interface finally got to me. Pretty sad, since I really liked the interface.

I have now lost track of the number of Todo lists I have tried. I liked different ones for different reasons. For example:

  • GMail tasks: is awesome because its right there within GMail where I go multiple times a day
  • Remember the milk: I love the simple natural language way you can add tasks
  • The Hit List: Really polished UI
  • Epic Win: Completely useless as a todo list app but really fun to use 😉
  • Teux Deux: Elegant design, iPhone app is a plus (well not anymore since I moved to Android)

While todo lists like the ones mentioned above are cited frequently, I feel enterprise project management and issue tracking solutions are little more than glorified todo lists are they? Working at Comcast. I have gone through quite a few of them, like Trac, RedMine or Rally.

So why isn’t there an OPML like exportable format for todo lists? I jump between todo list apps much more frequently than my feed readers and from what I read, so do most people.

Since most todo lists seem to always work with the same data an exportable/importable specification to define them would reduce the friction of trying out a particular tool a lot. Moreover, an agreed to format would also allow interoperability. For example, at work while we are all mandated to use the same “enterprise app” to manage the work, its conceivable that you could work with the same server while choosing different clients.

I imagine a spec like this to define todo lists:

This is of course completely not thought through completely, so I am sure there could be other items that would need to be represented, but hey, its a first stab.

For extra points if we could define an RSS-like spec for tasks that would be even better. That way clients could subscribe to tasks from services like mentioned above. If you are developing a better UI for task management, you could just build the UI part and leave the data management to some other service.

Notes on Game Mechanics

The recent explosion of “game based” apps out has led me to read quite a bit about the topic. Here are some notes on books, articles and presentations I have been reading:

Some Rules for Game-Based Systems (from the book Game Based Marketing):

  • Favor long term loyalty not short term competitions
  • Dont offer direct prizes, offer virtual points. Real world value of virtual points can be tweaked at the time of redemption.
  • Virtual points can also be used for virtual goods. Virtual Goods Economy is 5.5 Billion Dollars
  • Does redemption matter? Huge number of points are almost never redeemed
  • Top 5% of airline customers generate 40% of the revenue
  • Create opportunities for elite members to show their eliteness (like lounges in Airports open only to elite members)
  • Create artificial scarcity and rewards around it.
  • First reward should be soon
  • Casino style *random* rewards create short cycle reinforcement
  • Need both long term goals (level ups) and short term (mini games/challenges)
  • All game based systems need:
    • Large community
    • Point System
    • Simple Communication platform

Types of Players (from the book Game Based Marketing):

Four Player types based on motivation:
Achievers
Go to great lengths to get rewards
Dont care for winning in a vacuum: need an audience (leaderboards)
Need the Socializer
Socializer:
Want to build meaningful interactions
Often are more about helping others win rather than winning themselves
Explorers:
Need rich virtual worlds to explore
Love to share detailed accounts of their explorations
Long games with repeated actions bore them
Killers:
Need simulated win & lose conditions
** The Naive Player **
Fairly unaware
Need to be made aware that a game is going on
  • Achievers
    • Go to great lengths to get rewards
    • Dont care for winning in a vacuum: need an audience (leaderboards)
    • Need the Socializer
  • Socializer:
    • Want to build meaningful interactions
    • Often are more about helping others win rather than winning themselves
  • Explorers:
    • Need rich virtual worlds to explore
    • Love to share detailed accounts of their explorations
    • Long games with repeated actions bore them
  • Killers:
    • Need simulated win & lose conditions
  • The Naive Player
    • Fairly unaware
    • Need to be made aware that a game is going on

A really awesome presentation on the shallow game design that seems to be creeping into web properties by Sebastian Deterding

“Yet when I look at most gamified applications today what they do is use game elements to tie us even more tightly into our worldly toils and schemes. They are glorified report cards that turn games into work rather than life into play, and users into pawns instead of players”

Pawned. Gamification and Its Discontents

The secret to Farmville’s popularity is neither gameplay nor aesthetics. Farmville is popular because in entangles users in a web of social obligations. When users log into Facebook, they are reminded that their neighbors have sent them gifts, posted bonuses on their walls, and helped with each others’ farms. In turn, they are obligated to return the courtesies.

  • Farmville is defined by obligation, routine, and responsibility;
  • Farmville encroaches and depends upon real life, and is never entirely separate from it;
  • Farmville is always certain in outcome, and involves neither chance nor skill;
  • Farmville is a productive activity, in that it adds to the social capital upon which Facebook and Zynga depend for their wealth;
  • Farmville is governed not by rules, but by habits, and simple cause-and-effect;
  • Farmville is not make-believe, in that it requires neither immersion nor suspension of disbelief

Other links: