Sunday, February 28, 2010

Friday, February 19, 2010

Chromium begins to suck :(

I had no idea it will come so close to my praise for Chromium over Firefox. But it has happened.

I use the Chromium daily PPA for Ubuntu. And for a few days now, Chromium has been showing abnormally high CPU usage. It basically locks up a core, and when you have only a dual core machine, things get bad and ugly. The only saving grace is that I can shutdown chromium rather painlessly as usually, only one process is responsible for the CPU lockdown,.

My cribs against Firefox still stand, but a quirky browser is better than a useless browser.

Back to Firefox then, :|

Monday, February 8, 2010

Emacs theme based customization

Many softwares today ofter theme support to increase aesthetic attractiveness. Here's a good way to get it done in my favorite editor, emacs.

Sunday, February 7, 2010

Chrome gobbling up Firefox users

This is an interesting bit of news.

Overall, Firefox seems to have stalled while Chrome is growing. Amongst Ars Technica users, IE and Firefox are losing share to Safari and Chrome. A 14% share amongst a tech-savvy community within a year of it's public unveiling is good by any standards. At this rate, on this website atleast, by the end of summer, Chrome would be in the number 2 position.

While IE's decay is hardly unsurprising, the loss of mind share amongst a savvy community does not bode well for Firefox. I have been a chrome convert for a long time now. I was also unaware of the general stall in Firefox's growth

Speaking about overall internet aware community is pretty hard. After all some 20% of IE users are still using IE6. :P Why did I switch over to Chrome? Well actually I use the non trademarked, third party provided builds, so it is probably more accurate to call it Chromium.

Firefox has always been pretty good with it's rendering accuracy. FF2 and 3 were pretty good in this regard. However, where they really messed up was Javascript speed and tab isolation. All versions of FF so far have been a single process design and it used to lock up with many tabs/heavy javascript often. Many times, it would be just a single bad tab taking down the entire browser. The only way out was to kill the entire browser itself, losing your entire session.

The memory usage was another problem. I use my browsers for long periods of time often opening lots of tabs and the closing them and this usage cycle repeats often. All through this, FF's memory consumption keeps increasing due to memory fragmentation. I have seen a single Gmail tab use up more than 300 MB of memory after a long period of usage. In FF 3 and earlier, it was pretty common after just a couple of such usage cycles to have a single tab use up about 200 MB memory.

With these problems at hand, I switched over to Chromium for it's speed and scalability under heavy loads. For the most part, the rendering was fine but it did have occasional rendering SNAFU's. Within a couple of months they were sorted out too. It's not like Chromium never jams up. It does. But the failure rate is easily an order of magnitude less that FF3. FF3.5 has, for the most part, has competitive JS performance and the lock up issues occur much less frequently. I haven't looked at FF3.6 yet.

With those two bugbears off it's back, what is holding FF back for me? In no particular order, they are as follows.

First, it wastes a lot of window space, which Chromium reuses for actual web pages. The rest of browser window is unused 99% of the time, why waste screen real estate for the 1% case.

Second, it does not, yet, have flexible tab manipulation. By that, I mean easy (drag-and-drop) shuffling of tabs across browser windows. May be it is already there in FF and I don't know how to use it. For me, it is the browser's equivalent of multiple desktops in Linux world.

Third, the first option when you right click on a link is 'open in new tab' in Chromium. Juggling multiple browser windows is clumsy, which is why we have moved on to tabbed browsing today. Then what is the point of having 'open in new window' as the first option in right-click menus?

Fourth, Chromium's integrated address and search bar is enormously useful. It suits my browsing style so much that I positively detest the split bars in all other browsers today. I am not going back to any other browser if it does not have this feature.

Fifth, Chromium's another useful feature (largely overlooked by the competition) is that when you close off a tab, the rest of the tabs do not appropriate the whole horizontal window space immediately. There is a small pause, which is very useful in closing adjacent tabs, as the next tab's cross button smoothly slides into the now-closed tab's cross button's position. Try closing many tabs with your mouse in FF. You'll often have to move your pointer as you close off tabs. This is a big irritant for my daily use.

Which browser I am gonna be using in the future? Chromium, definitely. It won over FF because it was better in many (but not all) regards. Today it is better in all but one. No DownThemAll :(. I should mention that I didn't use many FF extensions. The one that I like (a lot) is DownThemAll. Sometimes, I often start up FF just to use this. But that's pretty much it.

It's the same situation with Google vs Bing. Initially people switched over to Google because it was better than everyone else in search. Now MS/Bing has been trying hard to compete with Google. And at the moment it is almost as good as Google. But it won't gain market/mind share until it becomes better than Google. And I won't go back to FF until it becomes better that Chromium.

On a side note, it appears that Ubuntu does not upgrade packages in it's update repositories. Although Ubuntu 9.10 has been keeping my FF updated with all the security and other bug fixes, it has not updated my FF 3.5 to 3.6. Apparently, it is their policy to provide feature updates in the next distribution release only. I like Fedora more on this count. :P

Semi-rant against python multiprocessing module

Go here. And now look at issue 13 in that bug track. Or just have a look at this.

This is bad news. The unpicklability of lambdas has forced me to make some ugly changes to the parallel code I was using to drive my python extensions. I really-really wish it was doable.

For a while, I have been thinking that use of python's multiprocessing module to parallelize your C extensions akin to solving the problem at the wrong abstraction level. This nails it.

OTOH, opencl has a wonderful parallelization and synchronization model. In future, I am looking to write OCL code only for compute intensive tasks. Implementations from AMD and nvidia are out of beta, but they are immature atm. Intel is missing in action.

I expect it will take them about a year more to mature.