Skip to main content


Showing posts from December, 2009

Axis bank programming error or deliberate prank

Look at the number 4 in front of each menu item and the ) in front of logout.

Even the signon page has a -) in the title. Not sure if it was some easter egg as both the pages seems to be functional in all respects.

Holy Cow Google is crawling my site real time

I submitted a post and it was searcheable on Google index within minutes. I wonder this is because the blogger I am using is owned by google.

Premature optimization

I have been assigned the task to increase the the performance of the application in my last 2 companies and from my past experience I believe in 80-20 code execution rule, i.e. in production most of the time its the 20% of the code that is being executed and the rest 80% is used rarely. Therefore before you embark on increasing the performance of the website
You should know your customers You should know their usage patterns You should first collect statistics about what are the features that customers are using heavily
Don't try to guess which features are used, do a quantitative analysis and focus on only those features that are used heavily. Apache/Tomcat access logs can be your buddies in reaching the goal, take daily logs from last 2-3 months put them in mysql or any DB using some simple python/perl script and create some excel graphs and do a trend analysis. For example in the below graph of webdav usage, I would rather focus on optimizing the PROPFINDs first then other opera…

Brother MFC490CW printer offline issue

Bought a new Brother printer on Thanksgiving day sale, though the reviews for a 1 year old version were better I bought this one thinking that it would be more better, but this is worse. The printer has no issues connecting for the first time and I was able to scan,print, copy through it but after 2-3 weeks I had to print a document and the printer would show offline in systray.One design flaw I see straight away in printer was no Ethernet port, WTF and it had only a USB port(at 10 in the night I didn't wanted to go shop for a USB port). Googling on it I somehow found that if you reinstall the printer it would work, later I found that there is no need to reinstall as my router is DHCP and I hadn't given a static IP to the printer it was getting a different IP so I had to go to printer properties and change the port.

After 1 week I had to scan a document for my wife's Math assignment and the printer in systray was showing offline, changing printer properties also wouldn…

Importance of Community support when evaluating open source software

In my previous company we were evaluating ExtJS v/s SmartClient, we did lots of comparisons and SmartClient had lots of cool features and was up to the par with ExtJS but the only thing that was lacking here was traction in the community, finally we decided on ExtJS. When evaluating an open source product I give lots of importance to open source community around that product, namely I look for
Does this product has a mailing list, how active is the mailing list? how many messages are posted by users per month and are there enough discussions going on?
How frequent are releases for this product?How many users have written blogs and tutorials about this product?Are there any books from OReilly or Manning about this product (I rate Manning and Oreilly books better then other and I hate the SAMS 24 days books)How many bugs are closed,Open,In QA for this productHow old is this product? Old product have their own baggage so if a newer kid is on the block with a vibrant community I would compa…

Making Windows 7 programmer friendly

My build suddenly started taking a long time(15 mins) one day and the reason was disk related. I started digging into it then thought of creating another smaller partition for just codebase so that I can defrag it at a higher frequency. When I created the partition and tried moving my source code it took more then an hour to copy 5G of data from one drive to other drive and I thought it was some Virus or my AntiVirus software and for some reason I right click on the drive and I accidentally found that windows by default indexing content of files.

Unchecking this and then Disabling the windows search service entirely from my maching made my build time from 15 min to 6 mins. It looked like when my build was copying files around in tomcat stupid windows was indexing my files. This was happening even when my content was on c:. Anyways now I am happy. Even 6 mins of build time is killing. I share a virtual box folder to my ubuntu VM to do the build. Virtual box shared folder performance su…

Food Inc.

If you see this movie you won't like to eat your food. They have made a factory out of processing food.  and

I am glad being a vegetarian I am less affected by it as most of the stuff in this movie is related to processing meat for Fast food joints. No wonder so many fast food joints can afford to have a dollar menu.

Being Lazy

Not sure if anyone also feel like me but I really get annoyed when I have to think about things I shouldn't have in first place. Below are few examples of things that  I get really annoyed at:
Like this blog If I am pasting xml code I have to convert it to xml entities instead of copy paste. This blogger should take care of it.When you enter credit card information some sites use expiration month names instead of numbers. The credit card itself shows the expiration month as a digit then why the hack I have to convert it to a word when I enter it, instead  of entering 7/11 I have to think oh yaa 7 is Jun and I have to select June 11.Like the Grouping function in Windows task bar. if I have 4 Firefox windows open I have to click first on the taskbar on FF icon then think oh which window I have to open. I usually disable that feature.I use this tool called as HotKey Plus that will allow me to type CTRL+ALT+F to open FF. But when I go to other developer machine to debug I hate when thi…

Implementing a Simple Http server within Java client

I have to implement BDB replication for backup purpose. We cant afford to miss any commits. we do checkpoint every 2 mins but loosing even 2 mins of data can be catastrophic, therefore we are going to use a simple Java client that will open BDB as a replica and Master will sync every change to this guy and only then it will commit.

Now the challenge was to verify the replication I wanted to print something from this replica or I wanted to stop this replica gracefully. Implementing a shutdown hook wasn't working because kill -9 wasn't calling it and I have to implement some other operations on this Java client. Instead of juggling around with commandline or some RPC I used a simple Http server from Java.
private void init() {
        InetSocketAddress addr = new InetSocketAddress(httpServerPort);
        httpServer = HttpServer.create(addr, 0);
        HttpContext context = httpServer.createContext("/", new AdminOpsHandler());