Category Archives: Work

[Fixed] Atheros Wireless slow/disconnecting intermittently

Atheros 9k series based wireless cards are among the most commonly found wireless networking cards on laptops. While Linux Kernel 2.6 and later provide support for these cards through ath9k module/driver, madwifi is also an option for some.

Despite the card’s popularity and integrated module availability, the driver is not bug-free. Users of all flavors of Linux (to name a few: RHEL 5,6; Centos 5,6; Ubuntu 11.x,12.x; FC 12,13) seem to have had issues with this driver. The two most commonly reported issues are slow wireless connectivity and wireless network disconnecting intermittently – either due to inactivity or after coming out of suspend/hibernate. The latter issue also sometimes manifests itself as the network card refusing to “come up”.

Here is an easy fix that fixes both issues. It has been tried and tested to fix the issues on at least the above mentioned Linux distros and should also work on other distros that use ath9k module.

Run the following commands as root (or prefix sudo)
Add the option nohwcrypt for ath9k: this removes the hardware based encryption and moves it to software

echo "options ath9k nohwcrypt=1" > /etc/modprobe.d/ath9k.conf

Turn off the automatic power management for your wireless card

iwconfig wlan0 power off

Now Reboot.

Alternatively, instead of rebooting you can perform the steps below
Unload the driver and reload it again

modprobe -rv ath9k
modprobe ath9k

Restart the network manager service

service NetworkManager restart

Now you are all set. Have fun!

If you still continue to have a problem with the wireless card when your machine comes up back from Suspend, you may be facing issues due to poor/bad ACPI management by your BIOS. Add the following option to the kernel command in your grub config: "acpi=off" (without quotes) to solve this.

M.S. Thesis Defense – Aug 2012

So finally I was able to defend my M.S. thesis, “Visualizing Digital Collections at Archive-It”.

Archive-It, a subscription service from the Internet Archive, allows users to create, maintain, and view digital collections of web resources. The current interface of Archive-It is largely text-based, supporting drill-down navigation using lists of URIs. While this interface provides good searching capabilities, it is not very efficient for browsing. In the absence of keywords, a user has to spend large amount of time trying to locate a webpage of interest. In order to provide a better visual experience to the user, we have studied the underlying characteristics of Archive-It collections and implemented six different visualizations (treemap, time cloud, bubble chart, image plot, timeline and wordle), each highlighting one or more of the underlying characteristics of the collection. Archive-It supports grouping of webpages into categories, however, it does not enforce its usage. As a result there are many collections with missing or improper grouping. For such collections, we present a method of grouping webpages based on a set of pre-defined rules.

Here are the slides from my defense.

The following are direct links to the videos in the presentation :

Bubble Chart, Image Plot and Timeline:


AWS RDS Database Import problem – fixed

Often RDS users trying to import data face this error when they try to create triggers:

ERROR 1419 (HY000) at line 49: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

The reason for this is that the default DB parameter group doesn’t have the privileges set to create and insert triggers into the database. To get rid of this error, do the following:

  1. Obtain RDS CLI tools from AWS website here, and follow the installation steps.
  2. On your terminal (or command line) create a new parameter group (since we can’t directly modify the default parameter group)
    rds-create-db-parameter-group allow-triggers --db-parameter-group-family mysql5.5 --description "parameter group to allow triggers"
  3. Now modify the parameter group created just now
    rds-modify-db-parameter-group allow-triggers --parameters "name=log_bin_trust_function_creators, value=true, method=immediate"
  4. Apply the new group to the database
    rds-modify-db-instance --db-instance-identifier instance-name --db-parameter-group-name allow-triggers --apply-immediately
  5. Finally, you will need to restart your RDS instance.


After running the above you should be able to import your schema/data and create triggers without problem. In case you receive the following error while using mysqldump

ERROR 1227 (42000) at line 2492: Access denied; you need (at least one of) the SUPER privilege(s) for this operation.

then, the problem is with the definer statement in your trigger. Change it from


to something like


JCDL 2012

I was in Washington, DC the week of June 10, 2012 attending JCDL 2012.

A detailed summary of the conference has been put together on the official WS-DL blog of Web Science and Digital Libraries Research Group from Department of Computer Science, ODU by my colleague Hany SalahEldeen.

Here are my slides from the presentation.

Hello world

Hello world!!!

They say third time is a charm… I hope it really is.. So this time, I have migrated my website (and blog) to Amazon EC2… I was completely fed up of the slow hosting provided  by my earlier hosting company and it was burning a hole in my pocket. I had heard a lot about Amazon AWS before and recently I started working on a project that requires me to setup infrastructure on AWS which meant this migration was a good starting exercise.

Update: The migration took some days since I did it in stages. First I took a backup of all data. Next, I create an EC2 instance and installed wordpress on it. Finally, I migrated data from old database to new. By contrast, migration of mediawiki was much simpler. I just had to create a backup of old files and database and copy them over. :)

Bug in WMP12 shipped with Windows 7

Hey check out the latest bug I found on Windows 7. Wondering how many of you noticed it. So here’s how you check its presence:

1. Search for a song in your library in WMP12. Dont type in the entire name, but only a few words so that more than one results are returned.

2. Select anyone song randomly from middle of list and play it.

3. Now drag this song to the top of your Now Playing list and Voila.

You will see that the time duration stamp of the top song in the list is changed to the time duration of this song which is playing. The time duration stamp will change only when this song starts playing.

My world these months…

Why haven’t you posted recently on your blog? Why have you stopped writing? I have often been asked these questions in the last few months. The truth is I’ve never meant to stop posting. It’s just that I’ve been busy with a lot of things since I lasted posted. During these days, my heart leapt at lot of topics. I wrote many a draft and discarded them, as I just didn’t find time to finish and by the time I did, something else more interesting caught my attention.

So that is how this post took its shape. Rather than writing about what was the latest thing on my radar, I am writing about the various roles that I have played, simultaneously, in the last couple of months. That I enjoyed all of them is no overstatement. I have a regular job. I work as a developer in a mobile firm and my work involves me in conceptualizing and implementing new offerings on a humble hand held device. One of the most rewarding moments came when my work helped us to seal the deal with a major Fortune 50 company. That this is of major strategic advantage to us is implicit.

I also started teaching at my college along with my regular job at the mobile firm. The enthusiasm and energy of the pupils continuously boosts my confidence and acts as a motivating force. These are some of the finest pupils of the current junior year at the department of computer science in the college where I teach and I’m glad I’m teaching them.

A few months back, I experienced the joy of becoming an uncle. My niece, she is the most beautiful and cutest baby ever. The little bundle of joy suddenly made me feel much more responsible towards my family. I’ve a little brother, five years old. He adores me and wants to follow me in my footsteps. Around the big Indian festival of Diwali, I ended up being a fatherly figure to him. My little cousin bonded so closely with me, it redefined our relationship.

During this period, I also visited a number of places around the Cauvery river bank including some spectacular waterfalls. I went on a mini-trek and boated in the river. It was an eventful quarter of the year during which I wrote about a lot of topics and erased them all. Nonetheless, one of the most satisfying periods of time I have experienced.

In order to pursue my interest in photography, I’ve decided to launch a photo blog (or perhaps just convert this into one). It may take some time, but then again, that’s an ordeal for another post.


IE Lacks Standards. Microsoft Acknowledges!!! :D

Its so exciting when you accidently discover the follies of the biggest player in the market. Microsot’s IE is the most widely used browser esp. because it comes pre-bundled with the OS and seldom a non-techie user would use an alternative such as Firefox or Opera.

MS has been trying to make its browser more efficient and popular for a while now, and it continues to lose in front of FF or Opera. However, seldom has it acknowledged the fact. However, recently, I was working on something and it required me to download some of the content from .

As usual, out of curiosity, I went around tinkering with the scripts and the content and voila here’s what I found. Hidden between all the super duper code that makes this website jazzy, are some of the comments written by MS programmers themselves. Check it out:

overflow: auto;                /* for IE, so it doesn’t show disabled scrollbars.  FF (of course) doesn’t have this problem */

position: relative;
width: 75%;                /* some width is necessary in order for IE6 to honor the overflow and text-overflow declarations */
padding: 8px;
z-index: 100;
color: #444;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 1.1em;
min-height: 1.3em;
float: left;

#msve_ScratchPad .collectionList
position: relative;
min-height: 200px;
max-height: 280px;
height: auto;
width: 258px;   /* This really shouldn’t be necessary, but unfortunately, becuase of IE’s lack of standards support, it is. */
overflow-y: auto;
overflow-x: hidden;

These are just some of the comments I found. MS knows that its  browser is sub-standard, but has too much pride to acknowledge it publically.

I am a die-hard user of FF anyway. Hope you migrate there soon.

Peek application for enterprise customers (Sneak peek into client development in Peek India)

I am  a developer and at Peek Mobile Communications India, I spend most of my time hacking around the source code of Peek device in order to provide better features and to optimise the existing ones. For those who don’t know what Peek is, it is an email device similar to Blackberry, minus its phone capabilities.


It has already been voted Best Invention of Year 2008 by Time magazine, Wired Magazine’s Favourite Product of the year 2008 (Check the december issue) and is already on the top list of Amazon and the like. Peek has been received warmly by US and now it is ready to make an impact in India as well.

Peek in India has its operations in Bangalore where we have a small team working its ass off, day and night, preparing for a launch in India. Meanwhile, there is something else that has been keeping me busy. Enterprise customers are requesting for presonalization and I have been trying to do just that. As a part of this, one of things that Peek has to offer is form filling application for medical representatives for pharmaceutical companies. Take a look at the snapshot below.

Med Rep Form

Med Rep Form

Its nifty. All that the user has to do is to fill in a form and it appears right in the company’s mailbox. Then there’s a .Net app, that retrieves the email, processes it, and voila there you have the data you sent in the format that can seamlessly attach with your db.

Check out for the next post that has the video of the system. Also shall be available onYoutube soon.

P.S. Be on the lookout for Peek. The device is gonna change the way you email.