I was trying to analyze the feedback on my website’s new design. There seems to be a trend that relates their usage of the website with their feedback.

While researching on this subject, I found a paper by three people affiliated with the University of Manchester, UK. The paper makes three interesting hypotheses that are eventually proved in their paper:

  1. User preference will be determined by interactions between decision criteria and subject background, specifically design-training and aesthetics, culture and identity.
  2. User intentions will be determined by interactions between decision criteria and the task context; specifically, serious use will favor usability and content, less serious use will favor aesthetics.
  3. User judgment will be determined by interactions among decision criteria; specifically, positive aesthetics will over-rule poor usability.

They randomly asked students to consider three departments for either a one-month summer internship or a five-year PhD. Based on this, they were asked to judge the department websites.
The three departments were under the same university, Stanford – the Design department, the HCI website and the D-School website.

What was interesting to note was that most of them rated the D-school best when asked to consider the one-month summer internship. But when the task was shifted to the five-year PhD, they all rated the HCI website better! All other constraints remained unchanged – the same university, the same websites, the same variation in backgrounds of people, etc.

From my understanding of the results, people prefer less-aesthetic websites for serious/regular usage . Perhaps this explains why advanced users prefer Gmail vs Yahoo! Mail – one focuses on simplicity and elegance while the other focuses on usability and attractiveness.

On the other hand, the study “suggests that users’ overall impression of a website could be a determinant of user satisfaction and system acceptability, even overcoming poor usability experience and poor content”

Perhaps this explains why we are okay with a not-so-great UI on the IRCTC.co.in website but still use it because it has great value since it solves a “critical” issue of buying train tickets. Yet, we wouldn’t have tolerated this kind of UI for other purposes. For example, such a UI could have never worked for a survey website or a form-builder. That’s exactly why Wufoo.com has to have such a great UI.

This reminds me of an amazing talk by Geoffrey Moore in an internal Adobe conference. He explained the different types of innovation : product leadership, customer intimacy and operational excellence, which in turn have four types each. The trick for a good company is to have aligned vectors of innovation where they have to excel, and non-aligned vectors of innovation where they have to be “good enough”.

So, in terms of websites, ideally, a website should have to either excel at content and service and be good enough at the aesthetics, or should excel at aesthetics and be good enough at content and service. It does NOT need to excel at both (but of course, it’s good if you can).

I’m not a cricket buff but the IPL had got even me hooked. Well, at
least during dinner. But for people who are crazy about cricket and
want to follow ball-by-ball updates and certainly don’t like
refreshing horrible-looking websites, then you might find Cricket


Cricket Nirvana CricketCentre

The best part is that it runs on your desktop.

The good part is the range of functionality – real time ball-by-ball
score updates, full scorecards, wagon-wheel and what not statistics,
you can throw flowers or tomatoes at the cricketer of your choice and
most of all, it pops up a GTalk-style notification for important
events like a sixer, four or a batsman gets out!

The bad part is that the look and feel is too kiddish for my taste and
the UI needs to be more simplified.

Back to the plus points, my favorite part is the mini-score card mode
which will show up on the bottom-right corner of your desktop:

CricketCentre Mini Scorecard Mode

This idea was conceived and (as far as I know) executed entirely by
Ramesh Srinivasaraghavan, Srinivas
Arun Madas and many others in the Adobe Flex team in Bangalore. If
this isn’t cool stuff happening in India dev centres, I don’t know
And what better way to show off AIR’s capabilities :-)

I know they have had some tough times in convincing cricket

about this idea, but it’s good to see it finally out.

How do traditional web development frameworks cope with RIAs?

By RIAs, I am referring to the Flex/Silverlight model (Ajax has
a hybrid model in my view, so I’m not discussing that here since
I don’t want to muddle up the question).

Coming back to topic, I see that the traditional web development
frameworks are inside-out and RIA development as outside-in

Traditional web dev frameworks RIA frameworks
Flow: controller ⇒ model ⇒ view (pages) view ⇒ controller ⇒ model

Everything built into the framework. View is generated via

View is designed separately and it’s what runs first. Backend
is a bunch of web services.

Question: How is this resolved practically?

For example, how do people using Django or Ruby on Rails actually
write, say, Flex frontends for their websites

Do they ditch their templates/rhtml? Do they design the RIA first and
then the web service, or the other way around? … etc.

I couldn’t figure out the answer and since there are people out there
doing it, I’m hoping the
i.e. lazy web gods will answer.

As Jeff Atwood said recently in his entry on Choosing Your Own

I’ve spent the last six months staring at this page trying to figure
out what to do. With some trepidation, I’m now turning to page 10.
Thursday will be my last day at Vertigo. I will sorely miss the
camaraderie and the many close personal friends I’ve made at
Vertigo. Vertigo remains a fantastic place to work.

Sometimes choosing your own adventure means closing one door to
open another. And I have to close the door on Vertigo, however
reluctantly, to fully and wholeheartedly explore the alternatives.

It would be unfair to Vertigo and to myself to do anything less. I’m
not sure what exactly lies on page 10. I won’t lie to you. It’s
scary to trade the security of a safe, salaried job for the
unknowns. But the way I look at it, if it’s not a little scary,
then it’s not the right choice. Failure is always an option.

Just s/Vertigo/Adobe/g and that’s my situation.

It was not an easy decision to make. Especially considering the people
I work with. In fact, I squarely blame my Flex teammates
Harish, Harpreet,
Annam, Ram, Jyoti and so many
others for making this such a difficult decision.

There are two incidents that have stuck in my mind for the past few
days. One is the recent internal tech summit we had at Noida where
Adobeans got to showcase each others’ technologies and ideas. Second,
the (internal) showcase applications that our team created using our
data visualization platform. I was simply blown away. The enthusiasm,
the energy and the ideas was so addictive.

It seems strange that I should leave all this behind. It seems
stranger that I have no clue where I’ll be six months from now. But
yeah, I have some ideas.

As Ray Bradbury said:

If we listened to our intellect we’d never have a love affair. We’d
never have a friendship. We’d never go in business because we’d be
cynical: “It’s gonna go wrong.” Or “She’s going to hurt me.” Or,
“I’ve had a couple of bad love affairs, so therefore …” Well,
that’s nonsense. You’re going to miss life. You’ve got to jump off
the cliff all the time and build your wings on the way down.

Update: Please read the article carefully before commenting. If you notice, most of the problems being described here is part of Eclipse, which is open source. So, usability issues are faced by open source programs as well, and not just proprietary programs on Linux. The reason I wrote that title was because this pain is usually felt by people who are making closed source packages that works on different Linux distributions. The real issue is about unneeded incompatibilities between different Linux distributions.

After working on the porting project to make Flex Builder run on
I am starting to see why closed source software on Linux is

There are just a handful of closed source products on Linux (counting
only the famous ones) – Opera, Skype, Nero, Acrobat Reader, and Flash
Player. Hmmm, I can think of just 5.

Why is that important at all? Because software developers who are not
initiated to the FOSS philosophy will be scared off the platform
because of its inherent complexities. For example, in this project,
getting the software to run on the various Linux distros was, to put
it lightly, troublesome.

There are a number of issues that we faced, which I’m certain is the
reason others don’t want to get into this as well.

Let’s start with Eclipse. Eclipse runs fairly well on different
platforms (let’s ignore the memory-hogging issue here), but on Linux,
it’s a different ballgame. Somehow, the polishing of the UI is
markedly lacking. Yes, we’ve filed
, but turns
out it’s not really Eclipse’s fault, it’s simply because different
window managers work differently on Linux, and handling all of this is
a nightmare.

Oh, and this gets better when it comes to distros. For example, the
latest released Eclipse 3.3 won’t run on the latest released Fedora
version. You have to wait till Fedora
! Because of this,
we had to drop support for Fedora, and instead concentrated on
other distros
such as Suse, Red Hat and Ubuntu.

That brings up another problem – the number of distros. The QA effort
required for the Flex Builder (FB) on Linux project was huge indeed.
And yes, we found problems that occurred only on Red Hat but not on
Ubuntu, and so on. For example, clicking on help links in Eclipse on
Red Hat opens a new window every time whereas it properly displays in
the same window on Ubuntu. Again, it’s not really Eclipse’s
. Go

Then, there’s the issue of running Firefox. There’s nothing wrong with
Firefox itself, but what’s with each distro trying to customize the
Firefox startup script?! FB on Linux has to check whether the correct
version of the Flash Player plugin is installed in the browser, and
checking this is a long

– do we check in ~/.firefox/plugins/ directory or
~/.mozilla/plugins/ or $MOZ_PLUGIN_PATH or some
Suse-distro-specific directory such as

Life is simply too

compared to other operating systems.

Isn’t it a wonder that nobody wants to develop a closed source product
for Linux? Even Microsoft is just handing over the audio video codecs
to Novell
letting them to do the hard work of creating Moonlight on Linux.
Microsoft is smart enough not to try to maintain a Linux version
of Silverlight on its own (I’m considering only technical issues,
let’s set aside philosophical issues on this one).

If we really want to make Linux a good platform, then we need to stop
messing around with the basics – at least please don’t muck up the
basic shell scripts and paths.

The way to get more people, in large numbers, to understand the open
source and free software philosophies is by making their first steps
easy. It cannot be an all-or-nothing approach. Closed source software
on Linux is not practical. And that’s a bad thing because if we can’t
convert software developers to use a different platform, how can we
expect mom and pop to switch
to Linux?

In spite of all this, I think we’ve done a good job of FB on Linux,
and happy to see all the great

we’ve seen so far, including reports of success on various distros
that we’ve never even heard before. So please keep the
feedback coming!

Standard disclaimer: The opinions expressed here are my own, not

I was at Yahoo! Open Hack Day at

on Friday and Saturday. 24 hours of hacking, meeting lots of old
friends, and sarcasm unlimited. It doesn’t get better than this.

  • 2007-10-05 Fri 02:30 PM
    • Arrived at Taj.
    • Registered myself, got the schwag
    • Met Raghu and discussed the presentation he’ll be making on Flex
    • Social networking, the offline kind

Hack Day India 01
Raghu and me checking out his Flex talk ppt
Hack Day India 03

  • 2007-10-05 Fri 03:30 PM
    • The presentations start.
    • Joe starts the ceremonies.
    • Chris starts the first talk on what Yahoo can do for you. Yahoo
      APIs, that is.

Hack Day India 06
Hack Day India 10

  • 2007-10-05 Fri 05:30 PM
    • On the fly, we three become a team
      : Pradeep,
      and myself.
    • Pradeep and myself know each other from Deep Root Linux
      projects, after college hours, in PESIT. Raghu and me are
      colleagues. Pradeep and Raghu met the first time today.
    • We start discussing ideas…
    • WiFi’s good

Hack Day India 11
Hack Day India 12


Now presenting the alpha of the Flex Builder IDE on
(this was announced at the Adobe MAX 2007 conference). You can now
create Flex projects, write code with intellisense-like hinting,
compile and debug all within an IDE based on Eclipse, on Linux. You
heard it right, it’s officially supported by Adobe. Download it

The future direction of Flex Builder on Linux depends mostly on
community feedback. Yes, seriously. So please do write in your

even if it is just “works well” or “it sucks”. Why is this important?
The more the feedback, the more thought will be given to the product.
This is how things work in Adobe (as far as I’ve seen). So again,
voice your opinion on what you think of Flex Builder on Linux, and
what you’d like to see and not see in it.

Disclosure: I am part of this project. I mostly handled the
Linuxisms in the IDE functionality.

Update : Lots of feedback and comments (good to see that it’s mostly positive) on Digg, Slashdot and ZDNet. There’s also a video of the actual announcement put online by Peter Elst.

Flex 3 beta 1 is out, and along with it something that I’ve been part of – the AdvancedDataGrid component.

An example built using the AdvancedDataGrid is embedded below (it is a SWF file, requires Flash Player 9 for viewing):

Notice the tree view within a grid – that alone is a feature not found easily. On top of that, notice that there is a ‘total’ row in each of the categories of planets (click on the arrow to unfold a branch) – there are two aspects to this, first the summary (i.e. the total) is automatically calculated using a Collections API we have built, and secondly, you can specify a custom SummaryRenderer to display it any way you want, and in our case we are using column spanning so that it spans over the entire row. Now try doing that with your UI framework!

To understand what more you can do with AdvancedDataGrid, do read our writeup with lots of example code. Unfortunately, the live samples are not inline in the writeup (as we had originally written), you have to download them separately. You can also watch a video demonstration of AdvancedDataGrid. I hope this gives an inkling about the wide range of features and functionality in the AdvancedDataGrid.

Working on AdvancedDataGrid has been fun for me, mostly because of Sreenivas and Sameer, my teammates, who taught me most of what I have learnt about Flex.

And as someone commented on Ted’s post featuring AdvancedDataGrid:

OK, the workflow and the code enhancements were nice, but not enough to get me excited. But now I totally want to get my hands on that AdvancedDataGrid!

seems to be the rage these days, so I was looking at Indian
alternatives to Twitter, and I found Webaroo
(later I realized that I had already
received an invite but hadn’t paid attention to it).

Gupshup seems to hit the sweet spot in the Indian context because its
all about sms and mobile phones and
combines it with the web. For example, you can start your own group
and update your microblog via sms, and it’ll be automatically
forwarded (as sms) to all those who subscribe to your channel. The
posts are also available on a webpage. The added viral/social features
are the ability to conduct your own polls or quizzes and even ratings.

I signed up for Gupshup and created my own microblog located at

This got me thinking how people actually promote their microblog, and
it turns out that one of the important things is a widget on their
blog that points to the microblog, especially the Twitter badge.

So, I was looking for a widget for Gupshup as well but couldn’t find
one. Why not write one myself?

It seemed pretty easy to create it using Flex because Gupshup now has
RSS feeds. And just a hour and
half of tinkering got me to create this:


That’s right, the Flex SDK is going to be licensed under the Mozilla Public
License – this means the compiler, debugger, the huge libraries – it’s all going
to be open source when Flex 3 “Moxie” is going to be released.

This news was not so surprising to me because I’ve heard there have been lots
and lots of discussions before on how to make Flex “open”. You have to keep in
mind that a big company like Adobe is making transition from being a fully
closed company to being more open – from the introduction of Adobe
to getting more open culture infused from
Macromedia, to donating the ActionScript3 VM as open source to Mozilla, and now
Flex. You can clearly see how this evolution is happening. Even the PDF format
is going from a de-facto standard to a de-jure standard by the ISO organization.

Coming back to Flex, just some time ago I had noted how open Flex is, even
source-open but not “open
we’re now taking the next big step and making even the code free. Awesome stuff.

I personally still think there’s one issue that needs to be addressed. There
are two parts to the story – the production and consumption, which is, the
creation and the playback. The creation part is now not just open but open
source! Why not make the playback part open? If we can allow anyone to create a
player that plays SWF formats, that would be great. Of course, if we make the
Flash Player itself open source, that would be mind-blowing, but I think the
minimum that should be done is to allow other SWF players in the market. Not
that anybody can beat Flash Player (it’s very very hard)…

The news is still sinking in (it was announced just an hour ago, as of this
writing). So, more coverage here: