Category Archives: Uncategorized


For a while now, I’ve been contemplating about buying myself a whiteboard. While I was not under the illusion that a whiteboard in my room was somehow going to magically boost my creativity and productive thought; I was pretty curious, given the visual thinker that I am, what a large, solid drawing surface could do to help map my thoughts out. Thus, given that entry-level whiteboards where not prohibitively costly anyway, I decided to take a plunge and brought myself a 2’ x 3’ whiteboard and a couple or markers to test my hypotheses out.

Within three days of having the board on my wall, I find myself reeling for it quite more often than I had anticipated. First of all, the novelty of a whiteboard (I quite love the feel of the bullet-tip felt pen in the slippery surface) prompts me to write things a lot more often than I otherwise would. While watching a video-lecture, for instance, when I encounter a formula that I have a doubt about, I could pause the video and try deriving the formula myself until I’m convinced. Also given the pathetically absent-minded bloke that I am (worse, I typically go over a sum over and over wondering what’s wrong; without realizing that I’ve written 2 x 4 = 6 somewhere along the way), a whiteboard makes it easier to spot mistakes — I could just take a step back and look at the derivation, and in the second or third try, the error usually pops up to me.

Better still, I’ve started working away at problems (mostly insignificant fancies) that pop up in my mind randomly, problems which I would otherwise have put off indefinitely. With the whiteboard, I can now grab my marker when my mind starts to wonder, ‘why doesn’t anybody talk about an edge-list representation of graphs yet, where you simply store the list of edges’ ; I can instantly grab my pen and start working out the data structure and trying to build BFS and DFS algorithms on it until I’m finally convinced why it is a bad idea (there is little gain in the edge-list representation, most of the things the edge-list is good at, the adjacency list performs equally better; while the algorithms are slightly less efficient on edge-lists).

To sum things up, even though the whiteboard did not ‘magically’ boost my creativity, it did so to a non-trivial extend — mainly, it turned my otherwise lazy thought-process pro-active. I consider the whiteboard expense money well spent.


Review: The Midsummer Station (Owl City)

Owl City lead Adam Young had probably gotten a mysterious tune stuck inside his head in a loop; and in an attempt to discover what it was, he produced three studio albums and 2 EPs. Those of you who’ve been following him close might agree with me when I say that; after 5-8 tracks, the rest of the songs start to sound like “Franken-songs” – assembled with bits and pieces of “Hello Seattle” here and “Fireflies” there and a little bit of “Saltwater Room” gold-dust to finish.

His latest attempt, “The Midsummer Room”, however is a different story, and the artist has grown a remarkably mature sound this time around. There is little reuse of his old tunes and samples (there still are little vestiges here and there; but you won’t notice them unless you’re looking for theme), musical and lyrical maturity are in sight; and Young is clearly heading for something big here.

If you were a die-hard fan of every Owl-City song, this might be a mixed bag; as the album trods unfamiliar territory. If you love the sound but have been put off by the repetation of late (the class that I fall in), chances are, you’re in for a treat. Lastly, this is not really for non-fans of the band – if you don’t like the sound, you won’t like it this time either.

Behavioral Programming

Even though much less revolutionary in a broader sense than, say, OOP or functional programming; behavioural programming is a novel way to automate dynamic scenarios like games, sensor-based control systems and more.

Reminiscent of modal verbs in a natural language (such as shall, can or mustn’t), they state not only what must be done (and how) as in standard programming, but also what may be done, and, more uniquely to behavioral programming, what is forbidden and therefore must not be done.

Behavioral Programming

The Definition of Open

Note: This post has originally been made by DeWitt Clinton in Google+ – I’m not using a block-quote format since the post is too long for that.

I believe what Android is accomplishing is truly revolutionary. Mobile is the way that billions of people will one day access the Internet. And through that access, we will soon start to narrow the massive knowledge gap that currently divides the richest from the poorest populations. That there’s now an eminently capable open source mobile operating system, one that is free to use and free to fork, means that the knowledge advantage can be better and more evenly distributed across the planet than ever before.

For some pundits, it’s all about which companies are building the fanciest and most feature-rich handheld computers. Which, if we’re being honest about it, are devices for those that already have everything. When you’re at the top, it’s great to see the tech giants going head-to-head and competing for our dollars like this. Having a few dollars, I benefit from that, too.

And yet in spite of that, I’m even more excited about seeing a $25 mobile device that has access to a killer web browser and endless mobile apps, and watching that device appear in the hands of a billion school children over the next 10 years.

We can debate endlessly about which device manufacture added what clever UI to which OS, or what carriers allowed (or banned) which hot little app, or which app store has the more sustainable revenue sharing model for up-and-coming Bay Area startups. But yet, no one is going to remember any of those trivial details in the long run. 

Historians are, however, going to make note of how the open source Android platform (or its later forks and clones) played a role in facilitating everything from low-cost solar-powered devices in the remotest villages in India and Africa, to a hundred million tablets computers in the classroom each revolutionizing education for children all across Asia and the Middle East, to putting an Internet-connected smartphone in the hands of every man, woman, and child in America, even those from the perpetually overlooked majority that simply can’t afford a shiny brand-new iPhone or Galaxy Nexus every Christmas.

So ultimately I don’t give two hoots about which vendor or which carrier gets to ship which device on which network with which apps. But I’m stunned, stunned, by the audacity of releasing the Android platform as free and open source software. Not just because how it has already shaken things up at the top. But how it will go on to shake the rest of the planet upside down.

DeWitt’s point of view perfectly folds up the concept and significance of “open”, a term that is very often misunderstood or misconceived. I randomly stumbled upon this post while reading through blogs, and thought I’d very well bring this up.

Positional Notation for Relative Goodness

I’ve come up with a novel way to represent the degree of goodness and badness of things, without resorting to ambiguous terminologies like “okay”, “not bad”, “great” and “awesome”; or needing to state mathematically precise percentages, a la “50% good”.

The system proposes the use of “good” and “bad” as absolute adjectives, representing “100% good” and “100% bad” – or, if you prefer, “totally awesome” and “bulls*it”.

Any chain of the words can be coded according to their positional values like the binary system.

For example, “good good bad good” equates to 1×10+ 0×101 +1×102 + 1×103 = 13, a goodness index of 13/15, or 86.67% goodness. (The denominator, 15, is the value of binary 1111, the goodness degree of “good good good good”. If there were five words, like “good bad bad good bad”, the denominator would have been 31. For an n-word goodness adjective, the denominator is 2n-1).

Using this system, any level of goodness can be represented precisely without resorting to rigid mathematical notations. Have fun!

Summary: It’s weekend and I’m a nerd with an awful lot of time to spare!

About the Metro design language

Metro is the new user-interface paradigm pioneered by Microsoft first in it’s Zune range of media-players, and now being rolled out across it’s range of platforms, viz. Windows Phone, XBox, and Windows 8. Metro rethinks the traditional UI based on icons and windows, and simplifies it to a highly minimalistic UI characterized by bold colours, prominent lines and large, striking typography. Is Metro really the revolution it stands to be? Or is it rather a mere UI redesign that will have to be rethought a couple of years from now?

Before we begin, a little bit of context – here’s an excellent article about the design philosophies of Apple and Microsoft I came across The Verge Forums, a highly recommended read. Much of the following article was originally presented as a comment on the same post. That being said, let’s get on with Metro.

Metro is much more a “design language”, in the “language” sense, and much more of a radical re-invention than Luna or Aero – as such, it more likely for Metro to stand the test of time a little longer than these interfaces did, unless people start to feel Microsoft has done something terribly wrong with it.

I’ll elaborate.
Firstly, Metro is nothing like the interfaces like we’ve seen so far. The current generation of interfaces is known by the self-explanatory name WIMP (Windows, Icons, Menus, Pointers). Be it Apple, Microsoft, or the dozen Linux varations (the most prominent of them being GNOME3 and Unity), the fundamental principle is the same – there are icons which lauch programs and programs lauch in windows. These windows, ubiquitously, can be minimized, maximized, resized and closed. There are menus, buttons and toolbars which performs various actions.

Little of this has changed over the years, and little is different across platforms. All desktop interfaces (and to an extend, mobile interfaces) are variations of the same theme, different only in the mechanism and degree of visual polish.

Metro is different in the sense that it rethinks this design pattern altogether – perhaps not entirely, but considerably. Icons have evolved into tiles – active blocks which can display real-time information. There are no windows in the conventional sense – applications are one large scrollable workspace with minimal pop-up windows or distractions. The entire notion about typography is rethought too, where the hitherto compact text in Windows (a vestige of the early design concept of designing for information density over readability to make best possible use of the small screen area available then) is eschewed for large, bold typography that literally pops out.

And finally, Metro puts minimalism upfront, and goes in the exact opposite direction of what user interfaces have come so far – by eschewing all sorts of visual embellishments for a plain, pure, matter-of-fact look.

It’s worth noting that Metro has already been inspiring design renovations in the industry, the most prominent being the redesign of Android 4.0. Android 4.0 takes a definite bold step in the direction that Metro is going, clearly drawing inspiration from many trends that Metro has set.

To sum up, I believe Metro is an interface revolution unlike Aqua, Luna and Aero, and hence will stand the test of time for maybe a decade to come – there will definitely be updates and minor redesign, but the foundation set in Metro is here to stay. And let me not hide the fact, as you may have probably noticed by now, I’m a big fan of what Microsoft is doing with Metro, and I really hope it indeed does (stand the test of time).

The Aging Book of Faces

Facebook has been in an increasingly lethargic slumber for the one year.

While it’s true that the past couple of months saw a large number of updates – all kinds of tickers, lists and timelines were being thrown in our way – how many of these were original work? Let’s face it, for the most part, everything was shamelessly ripped of it’s new-found competition, Google+ – the latest update, which extended the word-limit to 63000 characters, was outright blatant: a feeble and despicable attempt to lure back writers who seem to be flocking at Google+.

The mobile scene is much more worse. While the mobile HTML5 website itself does a good job, the mobile apps are mediocre on both the major platforms: On Android, Facebook has a buggy, laggy, mediocre app that hasn’t recieved an interface refresh since its inception; on iOS, it’s for the most part a mere wrapper on the HTML5 website. Compare this to the official Twitter app, or the underdog called Path, and you see how far behind we’re stuck with Facebook.

Of course, Facebook will not be at significant loss being behind in the game – even if it continues uninventive as now for another year, it will not lose significant traction in the game, it’s already too deep in business for that. Who are at loss? We, the users – switching is not an option for the average Facebooker. 

Terra Firma

Windows Logo

After about 5 months of using Ubuntu almost exclusively as my daily OS; I’ve finally made the decision and switched back to windows – why? And how does it feel?

Ubuntu had become surprisingly usable and polished in it’s last two iterations, perhaps the main incentives that made me try it as a primary OS – and it was a good experience, on an overall view – the Ubuntu Software Center were catering to most of my software needs; UMPlayer took good care of my videos; and I didn’t really mind the occasional tinkering that was required to get, for instance, the mic working.

The problem, a non-trivial one, that is – was the bugs. There were simply too many of them, and most of them non-trivial.
The PC will altogether refuse to boot. The Mutter GUI engine will fail for days sometimes. There were constant errors and bugs with the routine operations like file-management. Once, I made a backup of my important documents and program-source-code onto an NTFS drive and formatted my Ubuntu partition – once I reinstalled and checked the backup folder, it was empty – nothing had been copied in the first place.

I’m not denouncing Linux or Ubuntu as a totally unusable platform, in fact, it was fairly superior in many aspects – however, the way I see it, there is a missing, a tangible one. A concern about uncertainty – the feel Linux gave over Windows is exactly like what the “wobbly”, rubbery windows of the former feels against the rigid, matted glass windows of the latter.

In the end, it’s all about preference –
Using Linux, maybe, is like the thrill of riding a motorcycle; while Windows gives you a feeling of comfort like that of a car. Above all, it’s all about choice.

Apple. Dislike. Respect.

I am not an Apple fan – I dislike their business model and their “reality distortion field”, and I dislike the fact that none of the things that they are proud of, were actually invented in-house by themselves.

But quite often, they seem to astonish me and squeeze out a drop of pure respect out of me contemptuous heart – with the astonishing perfection and artfulness that go into every product, with how they nail the simple things so well that bigger flaws can be overlooked or go unnoticed, and most of all, with the sheer impact Apple has in the minds of the customers – at least in the USA.

And the news that the iPhone 4S, despite having a rather upset initial response, sells over 900 units every minute leaves me struck with awe.

So here you go – Apple, I don’t like you yet, but hat’s off to you. *respect*