How do you pass time on a 14 hour flight ?

So I am leaving for India in a couple of weeks to visit family and friends. Its always a fun trip and the time I am least connected with programming and all things on the web, which is a good thing since almost all the other times I am waaaay too into it. However the flight to and from is long, about 14 hours or so (and thanks to the Boeing 777s, direct without stops to refuel) and as you can imagine, really boring. So this year I want to ask the blogosphere: how the heck do I pass the time? Usually I code a bit till my battery runs out (3 hours) and then I unsuccessfully try to read a book or something. This year I am thinking I should maybe buy a PSP or something.

Anyone have any good ideas?

Lets talk about UX baby …

This post is a mashup of my notes from the Adobe XD group’s session at MAX, the Apple iPhone Tech Talk with John Gelenyse, Director of Technology Evangelism & User Experience Evangelism at Apple I attended today and my personal thoughts on User Experience on applications that I see across the web (even the ones I have written 😉 ). Hopefully you will find these pointers useful in evaluating application designs before you deploy them to the masses.

Identify the problem:
A no-brainer, right? But you will be surprised how often applications start looking at features without identifying the core problem they are trying to solve. Just as often, the problem statement is formed incorrectly. For example, for a video aggregator like say, the Adobe Media Player, is the goal isnt to aggregate videos but enable easy discoverability of video content. The fact that this is done via aggregation is a secondary thing.

Whats the point?
This is the most important question that you SHOULD be able to answer in one or two sentences. Apple calls this the product definition statement. In his talk, John gave the example of Apple Aperture. While Aperture has a huge number of features, the product definition is simple and strong: “An online image management solution for professional photographers”. The product definition statement must include the function and the target audience.

Think Task First
Identify what the task is. The interface must make that task really easy. You should even break the tasks down by order of importance and make the ones at top really easy to accomplish. Again, dont design for the task that a minority will do. Identify and define:

  • primary and secondary tasks
    eg: organize, purchase and approve
  • primary and secondary objects:
    eg: people, movies, books

Keep it simple
Again, fairly obvious but I know some of my own applications suffer from this. As a developer, I know exactly what actions the various nuts and bolts on my application trigger but how obvious is that. How many actions are you trying to promote on that one application? Dont overthink the problem or optimize the design for the edge case. John exact words were :Simple and straightforward is best. Make it dead easy to use!

useful -> useable -> desirable
Andrew from XD talked about the progress of the application as it approaches completion. First and foremost, the application should be useful. Once you have that part worked out, make it usable so that an average user doesnt have a steep learning curve to your application. Finally, it should be desirable and this is where you tweak the designs, colors etc. A lot of applications seem to go the other way

Content is king
Remember the application design is to promote the content. In the case of the Adobe Media Player, the original designs were beautiful but reduced the video content area to a small window in the corner. The one released has the video as the primary focus and the chrome is completely secondary.

Create an experience, not an interface
Sounds like another slogan doesnt it 😉 ? But keep the user experience as the priority. While the buttons and knobs may result in a working application, if its not an enjoyable experience for the end user, its to no point. At this point, I think Andrew brought up the Apple IPhone and talked about how people forgive the mediocre phone capabilities of the device just cause the experience is so good (as an iphoner myself, I completely agree 😉

Choreograph sequence and flow
Transitions and animations arent just eye candy. They help keep the users oriented as the application interface changes as the user tasks change (for example, the Adobe Media Player starts out giving the user the ability to browse through content, but at some point the user finds a video to watch and now browsing is a secondary action with the watching being the primary. The transition of the browse area to a list on the right keeps the user aware that the browse capabilities are still there but are not taking up the main focus space)

Trust your instincts and later have it validated by usability tests:
If you have a seasoned design team, there is a good chance that they intuitively understand how users interact with applications. They may even come up with a paradigm that hasnt been established yet but may be a great idea (for example, a lot of sites now offer tag clouds that I prefer to get to the more interesting parts faster, but who came up with that ?). Dont be afraid to try something different. But validate the paradigm through usability.

Prototype, prototype, prototype

Nothing beats a prototype.

Share Everything
The XD team has an internal wiki where all the designers upload their work everyday. They then work off of each other’s ideas.

Passing of Mark Belsterling, distinguished member of the Flex community.

I was shocked to hear today of the passing of Mark Belsterling, one of the main voices of the Flex community in Philadelphia and indeed the world. Mark was the manager of the Philadelphia Flex User Group.

Mark passed on this Saturday, Sept the 8th.

I met mark a few months back when he came over to interview with us at CIM. I was struck by how much Mark knew of all things technology related. Mark had a very unassuming nature but had the experience to humble many veterans in the online domain. And it was really obvious how passionate he was about Flex. He started the Philadelphia Flex User group in June filling a need a lot of us were feeling. He had been having heath issues over summer but still found the energy to organize the meetings for the groups. I met him last at the Air bus tour event at Philadelphia.

I offer my condolences to his family and friends. His presence will be sorely missed.

Philadelphia Flash Users Group: Thanks for coming…

I just wanted to thank everyone who showed up for the Philadelphia Flash Platform Adobe User Group session this Thursday. It was a lot of fun for me and meeting so many Flash/Flex developers in the area was really cool. I was hoping to show a lot more code but the session seemed packed enough with just the overview of the Flex internals. CIM did record the whole session though and I’ll post a link to the video once we have it online. In the meanwhile, feel free to download the presentation here (pdf)

Special thanks to Rob for making this thing happen.

I am really excited about the new Flex User Group. I hope we can meet more often as a group. I am sure that we all have a truckload of questions about Flex and Apollo that we can help each other through.

Keep your eyes on CimLabs as we get ready to release Fan 4 beta and for more Flash and Flex goodness in the coming months.

Talking Flex with the Philadelphia Flash Platform Adobe User Group

Comcast Interactive Media (CIM) is hosting the next PFPAUG meetup and I will be talking on how we use Flex here in applications that immediately appear in front of millions of people. My recent blog entry on how we used Flex to develop the next version of the square view of the Fan got quite a bit of attention in the blogosphere and I think we did a fairly good job of developing a Flex application the way adobe has envisioned. I am thinking this will be a mid to advanced level talk on Flex and we will cover things like skinning, debugging and our build system using Ant. If you are in or around Philadelphia around May 31st, come on down to 1500 Market Street. There will be food and we will also be giving away some goodies.

If anyone has anything they would specifically like to be covered, drop me a comment below and I will try to include that in the talk. More details on the event can be found at the PFPAUG page.

New top reason to work at CIM: See Spiderman 3 before it opens ;)

Woohoo. We (the entire Comcast Interactive Media group) just got back from a private screening of the new Spiderman movie. The whole theater was rented out for us and food and soda were aplenty.

We are still looking for developers across the board, so if you have coding skill in any domain, c’mon over.

Mail me at mathur.arpit [at] gmail dot com

I got dugg and blew it ;)

This is hilarious: I was followed a link off of metah’s blog to a java application called Google Browser by Touchgraph.which apparently maps how websites connect to each other. Of course, I tried it with this site and I saw a link from digg coming in. Following it I found that Brajeshwar had actually seeded my DiggMapper application. And in keeping with Murphy’s law, that was the night I moved some files around and actually blew the location of the swf the application was loading in. Hence most of the comments are “this sucks, it doesnt work at all !”.
Either way, I did get a few diggs and hey, I formally have a dugg application :).

The page on digg is here. I never finished DiggMapper but now I am psyched enough to finish it and make it all pretty :).

Thanks Brajeshwar.

WordPress in Flex/AS3

As some of you, who wandered over to Gabo’s blog recently may know, Gabo is trying to create a flash UI for WordPress. I gave me a peek earlier this week and all I can say is its gonna be awesome. Of course his one requirement was getting the data out of WP in XML so he wrote some custom PHP code for that. However there is an XML-RPC interface to WordPress and I decided to see if I could quickly whip up something using it.
Turns out I didn’t even have to write an XML-RPC library, since there already is one written by Akeem Philbert. So I just wrote a custom WordPress class extending his class and ta-daaa. This is just the first stab at the implementation and its not feature complete yet (ie, not the complete API has been implemented). But if someone wants to use it, go ahead and try it out.

Note: The XML-RPC library always authenticates against WordPress to get data. Data is also sent over HTTP-POST so is exposed if someone uses a browser traffic sniffer. So I recommend creating a new user on WordPress with only ‘subscriber’ privileges and using that if you are creating a public application that doesnt need authentication.

Note 2: The XML-RPC implementation can be used to post, edit and delete entries as well, so if someone wants to make a blog manager application, you can use this as well.

View the Flex WordPress app here and right click to view source.

To compile the application, you will need to download the as3-rpclib library from here

Got Gabo ?

We do !!! Remember gabocorp? remember the reason half of us got into flash? yep…same guy. Gabo is in charge of the user experience (UX) team here at Comcast. And he finally has a blog. So head over at gabocorp to check it out. And of course, we are still looking for flash developers, flex developers, architects and UX team members, so if you want to work with gabo and me, drop me an email at arpit_mathur [at]