• About

    Swaroop C H is 27 years of age. He graduated in B.E. (Computer Science) from PESIT, Bangalore, India. He has previously worked at Yahoo! and Adobe.


    Email: swaroop (at) swaroopch.com

    Read more about him

  • Subscription

    If you want to know when new stories and articles appear on this website, you can subscribe to the RSS feed or have them emailed to you.

  • Want me to write about something?

  • I'm a Wannabe Hacker

    The Glider: A Universal Hacker Emblem

Archive for the ‘Work’ Category

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!

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.

Outlook on Linux : Evolution Exchange

Tuesday, March 27th, 2007

My laptop at work has some network configuration issue (I think) leading to Outlook not finding the server – sometimes it works, sometimes it doesn’t. But every other application uses the internet/intranet just fine. Only Outlook doesn’t work and I’m tired of reading the mails from a web interface because it is painfully slow and more so for high traffic mailing lists.

So, I switched on my desktop (which has only Kubuntu installed and no Windows), ran apt-get install evolution and apt-get install evolution-exchange commands, started Evolution, added a new Microsoft Exchange account and it started downloading all the messages.

It’s ironic that I have to use a Linux machine to connect to a Microsoft Exchange server. Maybe now I can get my laptop fixed by our IS. The last time I reported the same problem, they deleted my profile and added it again and I had to spend an entire day customizing my setup again, and the original problem still wasn’t fixed. I don’t want to go through that trouble again…


P.S. On a completely unrelated note, Beryl makes using Linux so much more fun. The Expose-like preview of windows (F8 key) is very useful.


Update: It’s not over til it’s over.

Update 2: Well, Evolution is locally caching the mail, all I have to do is to leave it on overnight :) , well that mitigates my email reading issues a lot, assuming it keeps working that way.

Update 3 on 2007-06-13 Wed 04:07 PM: Finally solved the mystery of Outlook not working… it was because of the Sify Broadband software installed! Renaming all the Sify-related exes to some other extension fixed the issue. Go figure!

Moxie

Thursday, March 1st, 2007

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.

It’s all in the mind

Wednesday, February 21st, 2007

(Warning : I just started typing this post because the title popped into my head, so what follows might seem like a lot of rambling.)

No matter how much we talk about talent, opportunities, and other things we can blame on, making things happen basically boils down to one thing – it’s all in the mind. And of course, you need to put in some effort too, but that again is derived from your mindset.

For example, I have a few problems that I chronically face:

  1. If I have an idea or come across something interesting or even start on a new project at work, I tend to have a lot of enthusiasm at first but soon forget it later in the drudgery of everyday life, and especially so when it comes to personal projects.

  2. I tend to get worked up on deadlines and schedules without actually paying attention to the work.

  3. I am constantly worried about not following up on things and not being organized.

About six months ago, I started following the ‘Getting Things Done’ (GTD) philosophy and it has helped me improve a lot w.r.t. these problems. This helped me concentrate on actions and not only on problems. As and when you keep showing up and doing things, you’ll see the progress yourself and you’ll be a happier person. That reminds me of this LifeHack article: “All you need is the willingness to take the next most obvious step – then repeat the process again and again, regardless of how you feel. Try it.Happiness comes from seeing the results of your efforts. You don’t need it before you start.

The gist of GTD is to concentrate only on the next physical action and let other things take care of itself. This helped me deal with the second problem.

When it comes to problem 3, I’m way more organized now, to the point, where I think my actual talent (or the lack of it) and the willingness to put in effort are the barriers. I hope Knuth’s philosophy of being at the bottom of things will help me here.

These three problems are similar in the sense that they tend towards one point – it’s all in the mind. To alleviate it, I applied the GTD approach.

Similarly, if you’re worried about what kind of raise you’re going to get this year, etc., then stop worrying. There is no use of worrying over things that you can’t control. You can’t control the traffic on the road, so if you need to reach a place on time, just leave early and the rest will take care of itself.

If you’ve been sweating it out for the past couple of hours trying to fix a bug and you’re not making any headway, then it is important to switch to a different problem and then come back later. You’ll come back with a fresh perspective, fresh energy and fresh ideas on what to look out for and may be the things you’ve overlooked previously might be the actual problem. This is also important because it helps you to always keep moving forward, one way or another, and you don’t get stuck in one project and don’t move in other projects (and by project, I mean the GTD meaning of ‘project’).

There has been many a time when I’ve gotten frustrated and feel like just banging my head on the keyboard. This is where I take a step back, relax and say to myself ‘CUT to the G’ (yes, that’s a phrase I coined for myself):

  1. Concentrate
  2. Understand
  3. Think
  4. Get Things Done

Each of these steps is important in its own way, but I personally underestimate the value of the second step. Knowing what you’re exactly doing is a critical nature of a programmer especially because only you would know how the system exactly works and nobody else would look at it, everyone else is just a end user.

Step 4 is eventually what gets you moving, but Steps 2 and 3 are equally important. As Abraham Lincoln once said “If I had eight hours to chop down a tree, I’d spend six hours sharpening my axe.” And to get to this stage, you need to do Step 1 which boils down to one thing – It’s all in the mind. That’s why it’s so hard.




Footnotes

  1. Related reading: ‘Leadership – Some Random Thoughts’ by Lawrence Rabiner.

  2. That doesn’t mean to say that you/I can achieve anything and everything, it’s just that you need to get over the mindblocks to do even the simple things that you are capable of achieving.

But Flex is not open source…

Monday, January 8th, 2007

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.

(more…)

Future Adobeans Needed

Thursday, January 4th, 2007

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.

Engagement Platform

Friday, November 17th, 2006

If you were skeptical about Apollo (, Flash, Flex, …) like me, then you must watch this video by Todd Hay, Director, Platform Marketing & Developer Relations, Adobe.

The RIA that he demoed was really something that would be amazing to use.

More at adobe.com/devnet/platform/.


(via MNR)