• About

    Swaroop C H is 27 years of age. He currently works at Infibeam, an ecommerce company focused on India. He has previously worked at Yahoo!, Adobe and his own startup.


    Read more about him


    Email: swaroop (at) swaroopch.com

  • Subscription

    If you want to know when new stories and articles appear on this website, you can receive them via:

  • Explore

  • Want me to write about something?

  • I'm a Wannabe Hacker

    The Glider: A Universal Hacker Emblem

Archive for the ‘Flex’ Category

How attractive is your website?

Monday, August 18th, 2008

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).

Web dev frameworks vs RIA

Monday, April 14th, 2008

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 templates. 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 “hoosgot” i.e. lazy web gods will answer.

Last day at Adobe

Wednesday, April 9th, 2008

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

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 Sreenivas, Sameer, Raghu, Harish, Harpreet, Kaashif, Anirudh, Sujit, 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.

Closed source on Linux is hard

Monday, October 22nd, 2007
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 Linux, I am starting to see why closed source software on Linux is hard.

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 bugs, 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 8! 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 fault. Go figure.

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 procedure - do we check in ~/.firefox/plugins/ directory or ~/.mozilla/plugins/ or $MOZ_PLUGIN_PATH or some Suse-distro-specific directory such as /usr/lib/browser-plugins/!

Life is simply too hard 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 and 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 response 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 Adobe’s.

Hack Day India

Monday, October 8th, 2007

I was at Yahoo! Open Hack Day at Bangalore 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, Raghu 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

(more…)

Announcing Flex Builder on Linux

Wednesday, October 3rd, 2007

Now presenting the alpha of the Flex Builder IDE on Linux! (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 NOW.

The future direction of Flex Builder on Linux depends mostly on community feedback. Yes, seriously. So please do write in your feedback 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.

Moxie . AdvancedDataGrid . OutInTheWild()

Monday, June 11th, 2007

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!

Widget for Webaroo Gupshup

Wednesday, May 30th, 2007

Microblogging seems to be the rage these days, so I was looking at Indian alternatives to Twitter, and I found Webaroo Gupshup (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 http://sms.webaroo.com/channels/Swaroop.

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:

(more…)

Evolution of Adobe Flex : now open source

Thursday, April 26th, 2007

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 Labs 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 source”, 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:

Big Brother

Tuesday, April 10th, 2007

Long ago, I had seen Nat Friedman show off a small Mono app that displayed the amount of time you spent on each application, and updated the chart in real time – so that you could clearly make out how much time you’re spending in the browser and how much time you’re actually spending on work.

I couldn’t locate that app, so I had been wanting to write my own version for a long time and finally got around to doing it today.

It turned out to be easier than I thought. First, I had to figure out how to find out what application has the current focus at any point in time, and I was trying to see if I can do it from Python (using the Win32 extensions, and yes, this hack is Windows-only). After a lot of searching, I finally found out that it boils down to just one line: win32gui.GetWindowText(win32gui.GetForegroundWindow()) and this would fetch the title of the application that the user is using at that moment.

After this, all I had to was record the window title every 5 seconds and increment the time spent for each window, and voila, the data is ready. I was quite satisfied with just a command line output, but Raghu egged me on to create a Flex chart frontend for it as well, and when Harish joined in, the fun really got started. The first problem was how to push the data from Python to Flex, and we use the oldest trick in the book – write it to a file. Next, Flex can read the same file as long as the file is in the same directory as the SWF (i.e. the Flash file) location. Then we parse the text to get back the original data, create a pie chart and point it to this data, and voila we have a beautiful chart:

big brother gui example

Now I can finally track what I actually end up doing the whole day, heh. You can download the files if you want to use it as well:

And who said meetings aren’t productive ;-)


Update:

  1. Chris J Andrews made a JavaScript GUI frontend.

  2. Theyagarajan modified the Python script to make it work on Linux.