Sunday, July 29, 2012

Installed Jelly Bean on my Nexus S

The Jelly Bean (Android 4.1.1) factory image was released by Google very recently. I did not want to wait any long this time. AT&T still did not push the ICS update, so nothing to expect from them. I went ahead and followed the same procedure I went through last time to install ICS. So far it seems like Jelly Bean is indeed faster than ICS. Right after the phone rebooted itself Google Play Store was downloading some 30+ apps I had before and I was browsing, setting up my exchange email account and synching it at the same time. I did not experience any significant lag even though such a large job was going on in the background, something unthinkable with Android before. I am certainly happy with the update but it still has to go a long way to match the instant reaction feel iOS gives to the user for any UI event. It is good to see that they finally started to address the issue.

Sunday, July 22, 2012

Blog composed by Ecto

Today I was trying to find a good desktop blog editor for Mac. I used Windows Live Editor few years back and found it to be very good at editing blogs. Not only that I don't use Windows any more but also Microsoft discontinued it. I found a long list of such editors by Hongkiat Lim. I tried QTM but it failed to connect to my blogger account. I tried Qumana, it failed to authenticate too. Then I tried ScribeFire for Firefox but to no avail. At this point I was wondering if my account is blocked or I forgot my credentials. However, I gave a chance to Ecto and voila it could connect. I will continue to use it for some time to see if it is worth to buy it.

Friday, June 22, 2012

Tree command in Mac

Linux and probably other Unix-y OSes have this nice "tree" command to list a directory in a nice tree view in command line interface. But Mac is missing that. There are plenty of workarounds using the "find" and "ls -R" command for this but I found the one below good enough for me:

find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'

I just created an alias in my bashrc file and enjoying it :)

alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"

Tuesday, May 22, 2012

How to install Android 4.0.4 on Google Nexus S

I have been waiting for AT&T to push ICS to my Google Nexus S since last December. Google started rolling out ICS at that time but stopped it because of phones being bricked by some bugs. In March 2012, they released another version after ironing out the bugs. Since then many carriers and handset makers pushed the update but AT&T seems to be not interested. Many internet article and even Google+ posts by Google engineers clearly mentioned that update is available from Google but when I chatted with a customer representative of AT&T he blatantly lied that they did not receive any update. I did not expect any better from AT&T but, in retrospective, for some unknown reason I foolishly believed AT&T will push the update in near future. Eventually my patience wore out and I started to find how to install the latest ICS myself. I found it surprisingly easy. It is so easy that I am wondering why I waited for a company, well known to ignore its customers, for so long. Anyway, here are the steps to follow to install Android 4.0.4 on my Google Nexus S:

DISCLAIMER: Be advised that this process involves risk of losing data or bricking the phone and I won't be responsible for any mishap. Please proceed at your own will.

1. Download and install Android SDK.
2. Download fastboot.
3. Unzip fastboot and copy it inside the "tools" directory.
4. Add "fastboot" to the PATH.
5. Download the Android image. Choose the image based on your phone's radio. You can find it by going to "Settings" -> "About Phone".
6. Unzip it.
7. Enable USB debugging on your phone.
8. Connect your phone to your computer and make a full backup.
9. Power off your phone and boot it in the bootloader mode by holding Volume Up and Power buttons simultaneously.
10. Open a terminal and run: "fastboot oem unlock" (this may void your warranty).
11. cd into the unzipped Android image directory.
12. Run "./".
13. The phone will take some time to install the image and reboot. Finish the setup process by going through the steps prompted by Android (e.g. signing in to your Google account).

Its a good idea to lock the bootloader again. So do the following to do that:

14. Enable USB debugging.
15. Connect phone to your computer.
16. On terminal, run "fastboot oem lock".
17. Reboot your phone.

If you have small data plan then you may want to connect to WiFi before signing into your Google account because after signing in Android will download and install all the apps you installed from Google Play before.

Thursday, February 23, 2012

Temporary fix for SSH broken pipe error with Mac OS X Lion

I recently upgraded from Snow Leopard to Lion. Since then my ssh sessions are timing out pretty quickly with the following error:

Write failed: Broken pipe

There is a lot of discussion going on in the web on how to fix this problem. I tried a few but none of them worked. Eventually I added an alias to my ".bash_profile" file:

alias ssh='ssh -o TCPKeepAlive=no -o ServerAliveInterval=15'

This seems to be working for now.

Thursday, January 19, 2012

A hadith we should take to heart but we won't

I subscribed to for daily hadith and got this one today:

Rasul Allah (sal Allahu alaihi wa sallam) once sent somebody to collect zakat from a certain region. When the man returned he handed some of the zakat over and kept some for himself saying that he had received it as a gift from the people. Allah’s Apostle then ascended his pulpit and addressed everybody. In it he said: “I employ some men from among you for some job which Allah has placed in my charge, and then one of you comes to me and says, ‘This (amount) is for you and this is a gift given to me.’ Why doesn't he stay at the house of his father or the house of his mother and see whether he is given gifts. By Allah whoever takes anything unlawfully will bring it on the Day of Resurrection by carrying it over his neck.” [Bukhari]

Giving or taking bribes is at the root of corruption. Islam clearly states that both the giver and the receiver of a bribe end up in Jahannum (Hell). But how is one to recognize that he or she is involved in this practice? In this hadith, Rasul Allah (sal Allahu alaihi wa sallam) describes a simple test that each person can perform to check themselves, when receiving favours while serving in a particular position. They should ask themselves whether what they receive is something they would be ‘gifted’ had they been sitting at home, i.e. not serving in that position. If the “gift” you receive is because of your office, so that you can use your position to do the gift-giver a favour, then this is a misuse of authority.

(Source:, 18 January 2012 CE | 23 Safar 1433 AH)

If at least 10% of our government officials learn anything from the hadith and practice in real life, our country will start to see dramatic changes. But the question is, would anyone do it?