Monday, December 09, 2013

Enovitech : The journey begins

Pune is known as a hub for auto manufacturing, with a number of international brands having manufacturing facility here. Even so, India is not exactly known to the world for its manufacturing or innovative consumer centric products. A startup from Pune, Enovitech, aspires to exactly change that. This is a story of their beginning.

I had known Alok Damle, the founder of Enovitech (see and for more than decade now. We had been classmates at the ISSC in Pune University. So when I met Alok Damle in July 2012, it was no surprise for me that he had already founded his startup with a goal of building an enterprise that brings India into the global map of innovative consumer products and services. For a person with a majors in Computer Science, it has been a long journey. But an interest and intent in engineering has defined his past job experiences, particularly the last stint with Mass Spectrometry Instruments Ltd.

"A goal to build an enterprise that brings India into the global map of innovative consumer products and services"

After few exchanges over e-mail, I visited the garage near market yard in Pune (to date, it is operated from the same place) where Alok had setup the initial operations of Enovitech. At that time it was only Alok and another guy, Ramesh, physically at the company. Alok told me that he has a Mentor for Enovitech, Mr Murali Cherat. Although I have not met Mr. Murali, I understand that he has brought in his immense experience to help boot up Enovitech. The team has more members now, all super interested in the vision of Enovitech.  
The current team of Enovitech.
Top: from left to right - Jayesh Kulkarni, Alok Damle, Ramanand Borse, Archana Damle and Sampada Joshi.
Bottom: from left to right - Ramanand, Ramesh and Alok.
A startup, now a days in the US is largely focused towards a single product or service, this is not necessarily the case. Further, the funding and mentoring environment in the US is a lot matured, while in India, this is just beginning to catch up. So when Enovitech launched, it had no real investors, it mostly boot strapped with founders own savings. This kind of initial funding is routine in India, and I think in many other places too. Even when Enovitech launches its first product, the Ceeld (pronounced see-led; rhyming with sealed), the funding situations has not really improved. It is still mostly funded by Alok and a few others from their personal savings.  
ceeld, a double seal clip, claimed to be first in the world, is patent pending and is the first product to come out of Enovitech.
The journey to its first product has been anything from smooth. When I first saw the prototype of ceeld in July 2012, and few other products, I had thought that ceeld (or another un-announced product) would be in market by the end of that year. That was not to be the case. Enovitech ran into problems with the contractor to which initial prototype manufacturing was assigned. Despite repeated attempts and promises, the external partner did not meet the promised timelines. In the end, Enovitech had to end the contract, and find another one. Fortunately, for them they did find one. But precious time and money was lost in the process.

Manufacturing is hard in India, especially for a small startup, that do their R&D and design in-house and contract out the work of actual mass manufacturing to external companies. More often than not, the quality is compromised due to lack in technical maturity of the contractor, and in many cases, simply because the other party is not really interested in the small orders a startup will give. This in-turn is more burdened by the fact that there is limited support by Government in India for local startups in the manufacturing sector. Alok has often pointed out to me that it is far cheaper to get the manufacturing done in China and import it by paying appropriate duties.

Another aspect is the final product design. While Enovitech does all of their R&D in-house, with a strong emphasis of patenting their productions and design, they were initially inclined towards taking external help for the final product design. However, after a stint with a well known designer didn't pan out as expected, they have decided to mostly do this on their own. It is still to be seen if this works out good for them. For their first product, ceeld, they have already filed for an Indian patent. The final product, which I could get my hands on works as advertised, but I would love to see more polish here.
"Manufacturing is hard in India, especially for a small startup"
Manufacturing in India is hard. Especially when you are contracting the work from a third-party, frequently quality may be compromised due to sub-par technical know how. Notice that the finish of the white clip is not exactly up to mark.

When I showed the package to my Dad, the first thing he said was, "Looking at the front of the package, I have no idea what the product exactly does, its kind of confusing. I have to read the back to actually know this." It is this kind of confusion that Enovitech needs to address with the packaging and the finish as it goes to retail. Sure this is a beginning. And things would be ironed out. Alok tells me that he was pressed with time to design the packaging, so they are not exactly up to mark, but would be ironed out by the time it hits retail stores. Enovitech at this point is in talks with some large retailers in India, and would be soon exploring options overseas.

Enovitech also needs to improve on the packaging front. Packaging is informative, and inspiring (those colors of clips directly reflect the colors of Indian flag) to some extent but not in a global perspective. And there is certainly a lot to be done in the way the product is opened up from the package.

This is a beginning. To get out of gate is the first step for a startup. To get people to know what they are doing is the next. And to get people to want what they are building is an affirmation of the vision of the startup. I think Enovitech has all the important ingredients here. From now on they need to keep people interested, there are more eye balls watching them now.

Side Note: Enovitech has put up a stall in Kumar Pacific Plaza (top floor), on Shankar Seth Road, Pune for the launch of ceeld. The stall was opened on 7th Dec, 2013, and will be open for next 3 Saturdays.

Thursday, October 10, 2013

Notes on "sorting a hash table" in Python

Well, by definition you can not sort a hash table as "order" is not really important in that data structure. However, there are situations where data stored in a hashtable needs to be displayed in some ordered fashion. In such a case you can obtain a "sorted representation" of the hash table.
For instance, I had the following hashtable, which I wanted to display as tabular data:

td = {1: {"mykey1":[4,5,6, -2, 5, 6,7], "mykey2":[6,7,8]}, 2: {"mykey1":[5,7,8,9], "mykey2":[0, 9, 7, 6, 8]}, 3:{"mykey1":[5,7,8,9], "mykey2":[0, 9, 7, 6, 8,9]}}

My intention is to display:

  mykey1 mykey2
1 7 3
3 4 6
2 4 5

Essentially, the data is displayed based on the number of items in mykey1 and then sorted on mykey2. You could write code to flatten the hashtable, but you can write this more elegantly as follows:

def hashCountSort(h, k, r=False):

    def len_cmp(x, y):
      ln = 0
      for ck in k:
          ln = (len(x[1][ck]) - len(y[1][ck]))
          if (ln != 0): return ln
      return ln

    return sorted(h.iteritems(), cmp=len_cmp, reverse=r)

And use:
print hashCountSort(td, ["mykey1", "mykey2"], True)

Above, I use nested function in Python (essentially a closure) to define a len_cmp function, that iterates through a list of keys. Forward key comparisons are only made if the earlier key compare returned an equality. Also note that the iteritems() converts individual key, value pairs of the outer hashtable to an iteratable tuple list, with each tuple containing (key, value) items.

More generally one may write:

def hashSort(h, k, cmpf, r=False):

    def hash_cmp(x, y):
      res = 0
      for ck in k:
          res = cmpf(x[1][ck], y[1][ck])
          if (res != 0): return res
      return res

    return sorted(h.iteritems(), cmp=hash_cmp, reverse=r)

And use:
def cmp(x, y):
   return (len(x) - len(y))

print hashSort(td, ["mykey1", "mykey2"], cmp, True)

In the above example, I am using an external user provided function that may be defined by the user indicating how exactly the comparison function should be made for the purpose of sorting. One should note that the cost of such functions is high, and one may need to optimize if you have very large dataset.

Hope someone finds this useful ;)
Have a great weekend!

Saturday, September 07, 2013

Microsoft buying Nokia, is a bit emotional

My Nokia Lumia 800. Never going to sell it.
I love Nokia, the brand, the company and the people there that make such great devices. I love Windows Phone for a fresh new perspective on the mobile UI design. But now Nokia being brought by Microsoft is not exactly what I would have wanted, though business wise it makes absolute sense.


Irrespective of what would be my next phone (if any), my current phone (the iconic Nokia Lumia 800) is going to be preserved with me, till I am in this physical world. So much for brand loyalty, I think is okay ;)


Sunday, September 01, 2013

It is not calls, text and tweet that would make a smartwatch

When I was a kid, I loved wearing watches. My initial fancy was with digital watches. Then I liked the analog quartz watches. Once I got my first smartphone (the Nokia 6600), I stopped using a wristwatch altogether. I still rarely wear a Casio battery less solar watch, when going for a long outing. But I almost always never seem to like wearing anything on my wrist.

Most of the times I find the functionality offered by my wristwatch redundant. Well my current Casio does only the following: Show time, Show data, has stop watch, and I can setup an alarm. All of this I can do it on my smartphone in a much more intuitive way. The only incredibly important thing that my watch offers over a smartphone is the virtually lifelong, never ending battery, oh well it doesn't have one, it uses a supercapacitor instead.

So with all the media interest on the "upcoming smartwatches", it made me think: What exactly can a smartwatch do better than a smartphone?

It can not be calls, text and tweets
I don't see at all how a smartwatch would be more useful by merely offering what a phone already does good: calls, text and tweets. Moreover, I don't think that it is really useful or adds value as a device on its own. The reason why smartphone replaces a PC for most of the tasks is that it incredibly easy to text, call or tweet, or for that matter check email on a smartphone than on a PC. A smartphone can do this with a reasonable screen estate and with some very smart on screen keypads for entering text. This may not work out as much on a smartwatch. An alternative would be to use voice commands, but it would look funny yelling into my watch ... mistaken for characters in Captain Vyom or Space Age Sigma TV serials ;)

Sure you can link up a Bluetooth headset, but then you are wanting to keep two things charged using the battery. That doesn't make it smart, and no you can't yet power this on body heat. I would instead just pick that smartphone from my pocket and speak or text in a much more convenient way.

And so it can not be something like play music, watch YouTube or vine clips, or post Instagram photos. That does not click. Further, I think any of the above is not important when I am on move.

What would be unique applications on the smartwatch?
To me a smartwatch should offer all of the following to be useful:
  • Super light construction, super good battery life. May be some kind of solar charging could be good, but highly unlikely with the current tech. It should ideally be water proof, but water resistance would do.
  • It should display time, date and any upcoming calendar appointment on the home screen (and nothing else)
  • The calendar app (or should I call it waap? - short for watch application ;-) ) should be location aware. I should be able to add location based reminders to the calendar, may be controlled via my paired smartphone.
  • The sensors that watch should have: GPS, Magnetometer, Gyroscope, Body and Atmospheric temperature reader, Pedometer (or a software solution based on GPS), Heart beat monitor, dedicated bar code / QR code scanner, it also needs to be always connected .. to the Internet and probably have a NFC radio.
  • Must have wapps (first party / third party via watch SDK): Weather app (local aware), Health app (body temperature, heart beat rate synced with cloud / smartphone), Voice recorder, Alarm app, Compass App, Show my location, Near by app (like Nokia City Lens), Transit app (like Nokia transit app - controlled by the accompanying smartphone), Travel app (get me a taxi - Uber style, flight status, train ticket status), Apple's Siri like assistant
  • SDK offering ways to extend watch functionality: barcode/QR code scanner for price comparison apps, QR code scanner for contact transfers / sharing, calendar and location based advertising - say 'buy milk' is one of the reminders, the watch will beep you when you are near a supermarket, and indicate the price of it in adjoining shops too... limitless possibilities

So what are 3 things from above that are most important?
  • Super light construction, super good battery life
  • display time, date and any upcoming calendar appointment on the home screen
  • Weather app, Health app, Voice recorder, Compass App, Show my location, Near by app, Transit app
No, I can't cut down further, I would rather (not) use my current watch instead.

The interface part is tricky.
Most of the so called "mockups" I have seen so far (or the UI available on current 'mobile watches') is just dumbed down, scaled down version of a smartphone UI. That simply is not going to work. Some people may claim that Windows Phone UI (the modern / metro UI), would be great on the smartwatch too. But I don't think that is going to work either. Although a refined form of Windows Phone UI may actually work. Here is my 30 minute powerpoint mockup :)

A mockup of smartwatch UI that I would like to see.

Of course to realize this into hardware and software is a task in itself, probably not possible as a single entity.

In any case, Samsung is going to show its smartwatch next week, let us see what they have. And Apple has been rumored long to be developing one, I hope that they have some of the things I mentioned in the post. But I would be quite thrilled if Microsoft and Nokia come up with some elegant solution as well. I would consider myself rather lucky if I get a chance to work with one of the teams doing this work though :)

(Update Mar, 2014: Samsung has indeed released multiple "smart watches", but none of them are actually up to mark, and doesn't seem to solve any real issues)

Sunday, August 11, 2013

Trying my SLR attachment lenses with Lumia 800

About an year ago I had purchased a set of attachment lenses for my Canon 1000D from EBay. These were kind of very cheap replacement for doing some extreme macro shots, as the actual macro lenses from Canon were way too expensive and I simply could not afford to buy them. The cheap replacements turned out to be ok (see one such shot of pollens here But over time I realized that the color reproduction was poor in low light, more over the field of view was extremely narrow. Further, it was quite a task to screw these attachments to the lens only to discover that the subjects have moved away.
So when couple of snails visited to my backyard today, I decided to experiment a bit. And today being a bit sunny day helped. Here are some of the shots taken on my Canon 1000D.

Shots of 'mother' snail. Top one via normal lens, bottom one using additional attachment lens. Both shot using my Canon 1000D.

The 'baby' snail. Shot using additional lens attachment on Canon 1000D.

'mother' snail, shot using normal lens of Canon 1000D.
Now snails are very interesting creatures to watch when the crawl by, and my dad wanted me to record a video. My Canon 1000D, though pretty good at photography, doesn't have video recording. This is where my Lumia 800 chips in, which can take pretty good 720p videos. Initial shot was pretty ok. But then it clicked: how about just placing the SLR attachment lenses on top of the Lumia, hold it by hand and shoot?

Simple placement of SLR attachment lenses on Lumia 800, and just hold the lens while shooting.
Surprisingly, it worked out pretty nice. See the video below to get an idea of the additional zoom offered.
So it turned out to be my "jugaad zoom" for my Lumia 800 ;) I will experiment more with "jugaad zoom" till I can get hold of Lumia 1020 or a higher version of that :P
In any case, now I will more often than not be using these lens attachments.

Saturday, August 10, 2013

Linux on my Netbook

Back to Linux and the GMA 500 driver problem
When Windows 8 came out, I was happy to test out and upgrade the Windows 7 installation on my Asus T91MT. It was OK in the beginning, but the GMA 500 drivers were unsupported on Windows 8. This showed up in day-to-day use. IE used to frequently crash, and the display went black for umpteen number of times when I was doing something important. This was fine in the beginning, but even after many updates to Windows 8 this problem never got resolved. Finally, I discovered that Intel has stopped further development of GMA 500 drivers, and the Windows 7 drivers would be the last one out.
With that, I though that it is good time to revisit Linux. This was not the first time I tried Linux on T91. I had done this before, but the state of GMA 500 drivers on Linux has been ever worse. There has not been a supported opensource driver for this quite powerful GPU, because of the "closed" nature of the hardware chipset itself. Ubuntu 13.04 (and its other lighter derivatives: Xubuntu and Mint Linux) with the updated Kernel (3.3.x or higher) has drivers written by Alan Cox that give out-of-box descent graphics support for the GPU. Still, the support is far from optimal, and there is no indication that the situation is going to get better. In any case, I decided to install Xubuntu (and then Mint Linux) on T91 about a month ago. This weblog enlists my experience in using Linux on my T91.
(For the aficionados: I refer to Linux and the Linux distributions - Xubuntu or Mint Linux - interchangeably in this post.)

Why did I actually switch to Xubuntu from Windows 8?
Simple: I am going to buy a new Windows 8 tablet, with newer hardware (read better touch screen, better processor). Not so soon, but eventually will ;)
The basics: Netbook, can I browse the net?
When the Netbooks came out, one of the basic functions they were supposed to do effortlessly was browse the Internet, and along side provide some basic PC functionalities. Looking back, I think, this promise never worked out, and Apple with its iPad showed just how that experience should be. 
Xubuntu comes installed with Firefox. It works great, I never had much complains about Firefox, except its UI feels heavy. So the next browser choice was: Chromium.

The browser of my choice: Chromium 

Chromium worked great till someone send me an Youtube, that I quickly wanted to watch .. no Flash plugin in Ubuntu! And I thought Youtube was all HTML 5. But apparently it is not, at least not yet. The biggest let down is that none of the live streams works without Flash. And so I visited Adobe site to install the latest Flash player. And I am informed that Flash is no longer under active development for Linux! What?! Ok I know Flash is kind of dead, but still.

So, I reluctantly switched to Chrome (the browser that I generally avoid). Here, Youtube "works", but it is choppy video, the incomplete GMA 500 drivers shows up its inability to render video here. But there other problems: after doing some investigation I found that XOrg process seems to consume one HT core (the T91 has Atom Z20, that has two HT cores), for apparently no reason. This is either a problem with XOrg, or as result of GMA 500 driver being not able to support some operation (again due to closed source nature!), which are then emulated by the CPU. But all this actually kills the experience of browsing the net on the netbook. At the end of this I still felt as if IE10 with the unsupported GMA 500 on Windows 8 performed far better (not sure how IE 10 fares on Win 7, with official GMA 500 drivers though).

Music: The ogg codec

Ever after the Flash exception, I still didn't want to install any thing that is not opensource. So I though it would be good to convert some of my music files to ogg and use it on my Netbook. I think ogg is a fairly good format to compete with MP3, but compared to MP4 (audio), ogg is far inferior as far as the file sizes go (some times you may get as much as 5-6 times lower file size with mp4-audio as compared to ogg). Due to the state of the GMA 500 driver, I didn't even bother to check how video works.

Office application: Not much

Now a days I hardly use office. Most of my work gets done via Python / R. When I need office, I use my reliable desktop (yes I still use a desktop), which runs on Windows 8.

Occasional Work:

For me this is terminal, vi, Emacs, browser, compiler, and interpreter .. and all are there on Linux!


One thing: if the GMA 500 drivers were complete, Linux on this machine is just superb (consumes less disk, and offers far more than a vanilla Windows installation). In the end however, I may switch back to Win 7, or try out the new Xubuntu when it is released his October.

Sunday, June 02, 2013

Quick Note: MeTA Studio repository has moved to Mercurial

I have moved the MeTA Studio ( repository from SVN to Mercurial ( Unfortunately, this change removes a lot of commit statements and history. However, it is good to restart once in a while ;)

Wednesday, May 29, 2013

Using an old android phone as a mobile 3g hotspot: reviving Galaxy 5

The Galaxy 5
The Samsung Galaxy 5 (, was one of first reasonably priced Android phones to be released in India. I got this phone to first time experience a full touch phone, tired of endlessly waiting for Nokia to release its N9. This phone came with Android 2.1 (├ęclair), with some variants getting updated to Froyo. Mine was never updated. Exactly 1 year after I brought this phone, I was quite unhappy with the phone, Android and Samsung and happy switched to Lumia 800 on the launch day (also see: Since then I have rooted this phone, have installed numerous builds of CyanogenMod, and once unsuccessfully tried to sell it off. But now finally found a real use of this phone: use it as mobile hotspot.
Reviving : Cyanogenmod
A day after I got my Lumia 800, I rooted my Galaxy 5 to install whatever build was available of CyanogenMod. It was pretty immature and unstable at that time. But it got better and better. psyke83, the main developer has even ported CyanogenMod 10.1 (which is basically Jellybean 4.x) for this device. But for my purpose, I found the CyanogenMod 7 ROM more stable. One thing good with Android, is that I can literally install my own OS once the device has been boot unlocked.
The Galaxy 5, with CyanogenMod 7 - (or 10.1 - from psyke83 et al. is a solid replacement for the stock ROM (which was ├ęclair).

To know about installing the CyanogenMod builds visit the development thread of madteam (

Using Galaxy 5 as Portable "mi-fi"

I had recently got a 3G data card from Vodafone India for internet access while travelling. Although, after buying this card I realized that my current service provider (Airtel), is also giving me pan-India roaming for data. However, the Airtel connection is a 2G service in my circle so is pretty much not useful when I want to remotely work while travelling. However, the dongle has additional problems: I have to always keep it connected to my laptop; many a times it has signal problem, moving around with laptop makes it quite uncomfortable. After searching for portable 3G routers, I decided to experiment with using my Galaxy 5 as a mobile router instead. The Galaxy 5 is a 3G phone and the CynogenMod ROM provides with options of tethering the data connection. More over the Vodafone data card is a SIM based solution, essentially allowing me to use the SIM in any phone or device, without the data card.

I use the custom power widget to make switching on an off the 3G hotspot easier. I have also installed the MyDataManager app ( to give me an idea of how much data is be consumed.

Battery life and Performance

Have used this setup only for 24 hours, and that too at home. So, I can truly comment on this only during my next travel. Having said that, the battery life seems to be pretty descent, lasted for about 12 hours on descent usage. The 3G speeds are also pretty good at the place where I live.


Saturday, March 30, 2013

An old Netbook and living in a browser

My old netbook (Asus T91 MT) is getting old. Though I installed Windows 8 (upgraded from Windows 7), the experience on it far from stellar. My 2007 desktop (which is also upgraded to Windows 8), handles things much better. The Windows 8 experience on this desktop machine is really pleasing. And now with the new Twitter app, I am more often in the new Windows 8 mode than the desktop mode. It is just so better for twitter and internet browsing (with IE10). I occasionally use Firefox for browsing, but dislike Chrome, because of earlier experiences. When I need to do some real work (outside the browser), there is no other option but to go to desktop (which I frequently need when using Word / Excel or programming or connecting to my remote terminal using Putty).

My netbook has pretty low configuration in comparison to my desktop. But the worse part being that due to low screen resolution, the new Windows 8 apps are not supported. Which is not essentially a problem, as the only reason I used my netbook was as a secondary device for Internet (although these days I prefer using my Lumia). But being not able to use the wonderful "metro mode IE10" is a dampener.

So, this weekend I decided to do some experiments: Turn my netbook into doing only one thing, i.e. Web browsing. The first option was to remove all the Windows 8 apps, including uninstalling IE. Well, but before uninstalling IE I downloaded Chrome, and began the experiment with "chromebook" on an old hardware using a Windows kernel (not the default Linux kernel).

The Chrome looks great and integrated finely with the Windows shell, but the hardware tweaks make it unusable on old hardware.

As soon as started using Chrome, I had multiple issues: gtalk didn't work, youtube didn't work. Now I was quite disappointed to see that Google's own product didn't work with its own browser. After searching and tweaking a bit in the advanced settings, I got gtalk working. But youtube had simply too many issues. Then the next issue was basic browsing had a problem: may a times the webpages simply didn't load. I disabled all gpu related acceleration, thinking this would solve things a bit, it did, but still the experiences was far from what I would expect from a great browser (albeit on a dated hardware).

My next experiment was to try the next opensource browser: Firefox. So essentially I made a "Firefox book". Most of the things went of smoothly, until I started writing this post. For some reason the typing speed in Firefox turns out to be pretty bad for my reasonably powered netbook.

Firefox on my Netbook is an 'OK' experience. There are problems: touch events don't work, typing is painfully slow.

Another not so good thing about Firefox is its poor integration with touch events, make it unusable in tablet mode.

So finally I switched back to IE10. And IE10 is simply the best Windows browser on any hardware. It simply works. I don't have to worry about any incompatibility (such as touch events not working) or slow speed, even on my pretty old hardware.

The IEBook: That is what I have got now, with the vlc player for offline videos.

So at the end of this experiment, I have a new product: the IEBook, on a pretty low cost dated hardware, something that I would instead have expected from opensource browser and Linux. Ironical, but I guess the proprietary GMA 500 gpu is the reason for this role reversal. May be someone can try similar experiments on their old 'netbooks', and let me know in the comments section of your experiences. There is one drawback to IEBook though: it doesn't provide as seamless experience with Google services as a Chromebook would.

Sunday, March 03, 2013

Small (and big) inconsistencies with Windows 8 and Windows Phone

I have been using Windows 8 (on my desktop and netbook) and Windows Phone on daily basis as my primary devices for quite some time now. This post is a list of inconsistencies I find with using these interfaces that are supposed to integrate the experience across the screens:

1) Scrolling on home screen: Windows 8 makes it horizontal scrolling where as Windows Phone is vertical scrolling. Why on the earth it is this like this? I have no clue. Windows 8 could have simply adapted the way Windows Phone does the scrolling.

2) Resizing the live tiles: Windows Phone does this right; hold down the live tile and the resize glyph is shown right below the tile. With Windows 8 you have to go down and see that bar (what ever it is called) at the bottom to even know that you can resize the tile. This is particularly inconvenient once you have got used to Windows Phone. Wasn't familiarity with Windows Phone going to make my Windows 8 learning curve easier?

3) Where is the Bing lock screen image option in Windows 8? It is simply the best feature in Windows Phone.

4) Where is the 'Me tile' in Windows 8? Or other way round: Why is the People tile and the Me tile in Windows Phone not integrated (as in Windows 8)?

5) As with Windows 8, why there is no option to switch off live tile in Windows Phone? No, for end user this is not the same as going to settings and switching off the background services.

6) Why can't I set sound profiles on per application basis for Windows Phone as I do with Windows 8?

7) The desktop notifications and the new Windows store application notifications are all messed up and confusing at best. There is a need for unified notification center, which should be also available with Windows Phone.

8) IE10 UI on Windows 8 (new metro version) is much better, especially the way tabs are handled. Why is this not adapted for Windows Phone is quite a mystery.

These are the major concerns that I have on day-to-day basis. There are others (like why can't I create a new Powerpoint using Windows Phone?). But I guess, these are more niche problems. Until Microsoft fixes these issues, probably Ubuntu stands a better chance of bringing the 'one OS multiple screens' strategy to masses.

Monday, January 28, 2013

Quad-Core phones are 'in budget', but what about battery life?

Karbonn (an Indian mobile manufacturer), just released a Quad-core phone ( for a price that is about 10K INR, which, I think is the max budget for many of the salaried people. Regardless of whether people go for the higher specked (and a bit more expensive) Micromax Canvas HD, the Quad-core phones have started to trickle in. And they are within budget of a large number of people. Sure, you may not see such devices coming from Samsung or Nokia any time soon, but I have a gut feeling that with this kind of aggressive pricing, Karbonn and Micromax may soon gain some sizeable 'market mindshare'.

While it gets me exited that we have some cool computing power on mobile phones now (any one interested in some Quantum Chemistry? see ), what is surely lacking is Apps that take advantage of the cores and more importantly the battery life of these devices.

While Jeol at the Nokia Conversations (, gave a very good account of where the cores are useful and also why merely incrementing the core count makes no sense; this is a known fact, especially for me, who has substantial experience in parallel computing.

What really bugs me is the fact that more powerful these devices get, more often these have to be plugged in to the grid to juice them up. The company that makes strides in the battery technology (and not the core counts), will make the next major wave in mobile computing. Sure, my beloved mobile company, Nokia, claims that Asha 'smart devices' are battery smart too, but I would rather want to see that smartness in the Lumia devices :)


Monday, January 14, 2013

MeTA Studio update

A new online update for MeTA Studio is available. The latest version is 2.0.14012013. To update use: Help -> Check for Updates -> [Update] -> [Restart]

This is largely a maintenance update. There are no new features that are added. However, a few changes as noted below:
  • The build system has moved to JDK 1.7 so before you update MeTA Studio, update your JRE to latest JRE 1.7
  • If you do not wish to update your JRE, please do not apply this MeTA Studio update. If you want the latest build, keeping your current JRE, then the only way out is to compile from the source. I will no longer make binary builds against JRE 1.6.
  • A simple example script to visualize "gradient path" is added (see
  • The JEditSyntax source has been updated to work with JDK 1.7, if you are compiling with 1.7 you will need to recompile this at your end.
  • The update mechanism has changed, now after the updates are applied, subsequent update files will be appended with the build numbers. This will help maintain previous binary archives.
I hope to get some free time this year to bring in some of the "frozen" work to light in MeTA Studio platform. Stay tuned.

(MeTA Studio on Google code: