On Better Printers

After another fairly annoying morning with my printer, I was reminded of this satirical post that the Onion ran on Tim Cook and Printers. The premise of this was basically that printers were as dull as a topic anyone could think of (basically emphasizing the difference between the creative Steve Jobs and the very operationally centric Tim Cook)

New Apple CEO Tim Cook: ‘I’m Thinking Printers’

SAN FRANCISCO-Following the resignation of Apple founder Steve Jobs, incoming CEO Tim Cook called a meeting of shareholders and members of the press Thursday morning to announce that he envisioned printers as the company’s future. “Laser, ink-jet, double-sided, color, black-and-white-the future of technology is in printers.
img

And yet I really do think printers need their “ipod” moment. We have for far too long been stuck with a purely utilitarian implementation that is a cause of frustration more often than not. Anyone remember this sketch by Eddie Izzard?

So I really like this printer concept that I saw last week. This may of course be overkill, but I can’t wait till I have a printer that actually is joyous to use.

Of course I feel the days of the printer may be numbered. I hardly ever use mine except to occasionally print boarding passes for the few airlines that dont yet generate emails with those as QR codes, but still if I do have to have one, I want one of those :)

Update:

Meanwhile there are folks at Bergcloud who are completely reimagining printers more as a toy.

Hello Little Printer, available 2012 from BERG on Vimeo.

Introducing TimePiece, my first app on the Android Market

I am pretty excited to announce my first application is finally on the Android Market: TimePiece, a pretty little world time app (Go get it, its FREE!)

A couple of months back, after a series of disappointing searches on the Android Market, I started working on a World Clock app for Android phones. Most of the world time apps on the Market were functional but I really didn’t care for the design. The goal was to not only finally have an app I would like to use, but also really grok the Android framework. I had played with Android on and off for quite a bit while my day job remained developing iOS apps, but I figured nothing teaches you as much (by forcing you to deal with all the annoying details) like going all the way and publishing an application to the Market.

For bonus points, I have released the code for the application under the MIT Open Source License. So if you want to fork it, go for it. And if you see something you think can be done better, please let me know.

One thing I did want to ensure was that the app did not use any web API, and rather used locally stored data. This limitation forced the timeline of the project to exceed my personal deadline but I think it was worth it. The city data comes primarily from http://citytimezones.info/ but had to be massaged quite a bit to find the appropriate Java TimeZone IDs and then leverage the Joda Time library to show the correct times while respecting things like daylight savings times. The massaged data was stored in a local SQLite database that the app uses.

In the next few weeks I’ll talk about a few implementation details and my experience coming from the Flash / iOS world. In the meanwhile, if you have an Android phone, give it a shot and let me know what you think. Also please rate/comment on the app on the Market. I’d love to see the app actually be used :).

Some ideas for Google Circles

After playing with Google Circles for a couple of days, I really admire the feature. However there are still a couple of things I need in it:

Read items in overlapping Circles
Most of my Circles overlap. For example I have circles like “Philadelphians” and “friends”. I often add the same person to more than one circle, which is great. However this becomes a problem when the same updates resurface as I navigate between circles. Google Circles really needs a concept of “read” updates that need to go across circles.

Public Circles:
Another feature I would really like is the idea of creating a public circle around a topic and have people join in. In my case, I would love to create a circle around Android developers around Philadelphia since I help run the Philly Android Alliance User Group.

Smart Circles:
I’d also like circles to automatically filter all the content across Google Plus and return content based on my interests. This would an evolution of the sparks feature (which I don’t really use right now, since Twitter and RSS seem to do that job for me already). So as (public) links are shared on Google Plus, I’d like to see the people sharing it and the conversations around it.

Cross posting from Circles:
This is already a popular enough request I imagine, but I’d like to push an update I make to a specific Google Circle to my Twitter/Facebook/Linked In etc networks. So I’d like to create a circle named “to-twitter” who’s only job is to post the content to my Twitter account. This makes G-Circles my one destination to post content.

Thats some ideas I had, what do you guys think?

What other ideas do you have?

Comcast shows off 1Gbps Broadband /Filed under I-did-this ;)

Am only now catching up on all the online news around the Gigabit broadband demo that Comcast CEO Brian Roberts showed off last week at NCTA. If you haven’t seen it yet, check out the video below (the video seeks to the point when he starts showing the 1 Gig prototype, though before that is the probably-cooler next gen Comcast set-top Box experience):

The demo was the end product of a LOT of work by a lot of folks and it was great to see it work without a hitch at the end. The videos downloader client itself was my responsibility and was written in Java Swing.

Here are some other links from around the web about the demo:

Also check out the official post on the Comcast demos at NCTA.

PS: This is the second demo I have worked on for NCTA, with the XFinityTV iPad app prototype last year. Looks like I am a veteran now ;).

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:

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.