Cricket on your desktop
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 Nirvana’s CricketCentre interesting:
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:
This idea was conceived and (as far as I know) executed entirely by
Ramesh Srinivasaraghavan, Srinivas
Annam,
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
what
is.
And what better way to show off AIR’s capabilities
I know they have had some tough times in convincing cricket websites about this idea, but it’s good to see it finally out.
Last day at Adobe
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
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.
Announcing Flex Builder on Linux
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()
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
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:
Evolution of Adobe Flex : now open source
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
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:
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:
- The Python script called “BigBrother.py”
- The MXML file called “BigBrotherGUI.mxml”
- The compiled SWF file for those who don’t want to go through the hassle of compiling the MXML to SWF.
- Just run/open both
BigBrother.pyandBigBrotherGUI.swfat the same time and watch the statistics.
And who said meetings aren’t productive
Update:
Chris J Andrews made a JavaScript GUI frontend.
Theyagarajan modified the Python script to make it work on Linux.
Moxie
Yep, Moxie. That’s the codename for the next version of Flex. And it was one of the suggestions by yours truly in the internal discussions.
Why this name? My reasoning was:
flex -> strength -> http://thesaurus.reference.com/browse/strength -> mana, pizzazz, moxie, thew, …
Ely liked the name ‘moxie’ a lot especially because of the way the fingers are evenly distributed across the keyboard when you type ‘moxie’ :), and he championed the name which convinced the Flexers to vote for it.
This led me to say:
Looking at the popularity of ‘moxie’, I now also propose that our slogan be “Flex your moxie”
In this particular context, moxie can mean appetite, aspiration, craving, desire, love, passion, right stuff, zeal, chutzpah, guts, temerity, energy, robustness, vigor, competence, savvy, skill, gumption, impetus, vitality, endurance, grit, stamina, staying power, ability, mettle, stamina, etc.
(Source: http://thesaurus.reference.com/browse/moxie )
Also, Moxie was the name of a language for real-time computer music synthesis — so Moxie is how you express your beautiful tunes on the computer, and Flex is how you express your beautiful UIs on the computer.
[”Moxie: A Language for Computer Music Performance”,
D. Collinge, Proc Intl Computer Music Conf, Computer Music
Assoc 1984, pp.217-220].
(Source : http://dictionary.reference.com/browse/moxie)
And Ted says Drink Moxie.
But Flex is not open source…
My manager and myself were having an informal chat about the various RIA frameworks and platforms out there. To be honest, I wasn’t convinced about Flex and so, we kept on discussing the pros and cons, and it turned out that I learnt a bit about Flex this way. One of the points we discussed was that Flex is not open source. He said “It’s not open source, but it is as close to it as it can get.”
I was intrigued by this and did some homework.
Update : You may want to read the updated remarks at the end before reading the whole passage.
Future Adobeans Needed
Quick note:
- Adobe needs some Perl developers urgently.
- Also, proficient developers with 2+ years (upto 15… but 15+ is also good…) experience needed.
If you’re interested, shoot me a mail.
Update : The above two requirements are separate.






