Tuesday, May 22, 2007

Nostalgia

Remember the good old days of RH7 et al when almost all the software had to be recompiled and adding a new hardware meant atleast a day's work to get everything working properly.. and when just an installation would make you entitled to use the word "Geek". Yes...those were the days.. It really was a great feeling back then.. you felt completely in control of your PC.

Now evolution is indispensable .. so Linux evolved.. from an experimental system to a commercially sellable system.. We had a barrage of distros.. touting compatibility, snazzy graphics and point and click solution to most problems. The public applauded and accepted Linux but deep down inside I hated them for liking linux just because of its looks..

Anyway.. my taste in distros underwent a drastic change from RH to Fedora to Debian and finally to Ubuntu. I was not a fan of the pointing device but the apt-get and the highly up to date repos have kept me hooked up. There were hardly any instances when I had to mess with something. Scripts like Automatix took care of most of the painful jobs.. Even if I had to recompile the sources, ./configure make "make install", hardly counts as hacking.

Anyhoo.. coming to the meat of the subject a friend of mine got some HP laptop with AMD 64 Turion, 2 GB RAM and a Broadcom 4310UART wireless card and was bugging me that he could not get wireless to work under Ubuntu. Normally I dont like support calls but this changed it all. There was a bug in Broadcom drivers(Specifically the way NDISwrapper used them) for AMD64 having more than 1GB data.. An opportunity too good to miss.. I went to my friends place to fix his card(yeah am mad and was totally bored).

After two hours of hair pulling, RTFMing and shouting out F&^* loud.. I got the damn thing to work. It was the most refreshing thing I had done in a while :).

PS: If you are having a similar problem..read this, this and this.

Thursday, May 17, 2007

Cute Customizations..

I hope you guys would have noticed the usability enhancements in Google search in the past few days. Earlier it just used to throw all the search options above the search textbox. Now based on your query it suggests search options. E.g if you search for Harry Potter, google will suggest you searches in books, news and video sections, but if you search for iPhone, google would suggest news, patents, blogs and products. A small yet nifty customization to save the end user from information overload. I also love the way they handle the presentation of results.. a gazillion line program running(or operating on a dataset of that size) on a 100 node beowulf cluster(just a speculation) justs gives you a single line of relevant data, sometimes just a hyperlink... friggin amazing.

Google's Experimental search gives an insight into the changes we might see in the future. I am already a fan of search keyboard shortcuts. I thought that it would be a great idea to integrate it with the google suggest plugin built into firefox. The following keybindings are available in google search:

Key Action
J Selects the next result.
K Selects the previous result.
O Opens the selected result.
Enter
Opens the selected result.
/ Puts the cursor in the search box.
Esc
Removes the cursor from the search box.

Adding these options to the search plugin is quite straight forward. The file /usr/share/firefox/searchplugins/google.xml(on *nix of course, Windows users can make the same changes in the respective files too) stores the configuration for google search. Just add the following line in the static parameters section:
<param name="esrch" value="BetaShortcuts">

Restart your firefox and try googling using the search plugin. You should see the navigator arrow similar to that in gmail(with keyboards shortcut available ofcourse).

On a somewhat related note; I upgraded to Pidgin. I've been using Gaim's beta6 for sometime now. Pidgin sports better graphics but there are no functional improvement over Gaim2 as such. One thing that is lacking in Pidgin is the lack of emoticon sets available to Yahoo messenger users(apart from no video or voice messaging system).. there is a workaround though. This guy has posted a link to the ymsgr emoticon set. This is how you could get it to work:
  • Download and extract the zip file from the website.. it is extracted as a directory named default.
  • Rename it to Yahoo
  • Find a file called theme in it, open it in an editor and change the name and Author values to differentiate it from the default pidgin emoticon set(anything is fine).
  • Archive it as yahoo.tar.gz
  • Open Pidgin->Tools->Preferences->Smiley Themes and drag and drop this tar ball in the window.
  • Select the entry that appears.
  • Alternatively you could also move the directory Yahoo to ~/.purple/smileys and then select the new entry later.
The animated smileys move a bit faster but they are tolerable. Man.. i surely love linux and these applications for their flexibility.

Sunday, May 13, 2007

Sridhar Iyer, MS

I am now officially a Master's graduate and all set to conquer the world. I can't help but think about my adventurous journey from the suburbs of Kanpur to Bangalore to NY(Syracuse) and hopefully to California(might end up there).

There was a time when just the thought of coming to USA was laughable. Forget USA, the only place I could see an airplane was in the sky. I used to cycle my way to the "tempo" stand to attend coaching classes..
There was a time when I thought that life had nothing left in store for me when I didn't make it through IIT and ended up in a nondescript college (it was not that bad though..).
There was a time when I worked in food courts (just for a month though).

I am sure that there would be thousands of international students in USA with similar stories. SU has had students from more than 157 countries!! During the commencement, I saw the glazed look in the eyes of parents.. some from poorer third world countries... I felt small.. Even though I was surrounded by a lot of graduates who earned the same degrees, they accomplished much more than I did. It takes courage and dedication to break your safety cocoon and search for a better world, and strive to be there rather than be intimidated by it... only to be labeled as "lucky" if you do so.

Syracuse University was the perfect university for me and I think that it is the right place to do MS in Computer Science. I have met tons of interesting people, scholars, academicians, optimists(yeah.. they are a rare breed) and drop dead geeks. It has strengthened me physically (coming from a place where the temperature is around 45C.. the -40C winters were quite a change, surviving on cheese pizzas and ramen noodles is a feat in itself.. {Jorge: am still a vegetarian :P} ) and mentally(come on .. it's grad school). I can see things clearly now..

I can't predict my future but I do know that as long as I have a dream and a path of virtues.. life will always be great. The following excerpt from the commencent speaker, the renowned author Frank McCourt, summarizes it well:
So I've reached this point in my life where I'm doing what I want to do and that's the most beautiful thing of all... . If you don't love what you're doing, you're dead. Take out insurance. You're dead. And I leave you with a quotation from an old English poem: "Read your scriptures, follow in the path of virtue, and keep your bowels open."
PS: Click on the pic above to see my graduation photoset.

Tuesday, May 01, 2007

The sound of music..

Am not a music enthusiast, but when I got to listen to it, I need the song. Although I do have an MP3 player, I am fond of internet radio.. live365, pandora, raaga.com, dishant.com et al. Most of them work flawlessly on Linux.. but some Indian Bollywood radios seem to fail pathetically. I always thought that it would be some compatibility issue since they seem to work fine on Windows. Incidentally, few days back I started firefox from the terminal(well.. i generally click on the icon) and wistfully tried playing a song from raaga.com. (Firefox on wine is really frustrating). Of course.. nothing happened, but I found a SEGFAULT reported to the terminal... this was the beginning of a big adventure :)

I googled out the issue and found that someone had found the issue and interestingly enough posted the solution on bugzilla long ago. I downloaded the latest tar ball and saw that the errors were not yet fixed! Big deal I thought.. lemme compile the code myself. There were no INSTALL or READMEs in the directory.. but there was a Makefile... I didn't care to look into the makefile and just called make. That didn't work.. I found that Makefile called individual makefiles in hundreds of subdirectories and those makefiles were not there in the subdirectories!! This is where the "real" fun began.

I have to give you a brief idea of the helix project on Linux(Real's backend) before I can proceed further.
  • Its a mixture if highly convoluted C and C++ code. The building process is handled by a python script called Umake (which is used for cross platform compilation).
  • The same blob can be compiled into helix server, helix client, real player.. etc etc. There are 32 different project into which you can compile the source code into.
  • There are 634 build targets!!
  • This whole setup reads another configuration parameter to know the destination build system.. including most almost all versions of Windows, Unix and linux.
  • I'd leave the maths up to you.
It makes sense now that a static Makefile was not supplied with the release tarball. But I was pretty adamant on getting RealPlayer to work with my firefox installation. This manual will tell you that how freaking hard it is to get the damned thing compile.

I had to become a Helix community member, set up CVS access to the repository, accept all the BEULA craphola(I am not allowed to fix bugs and let people have it even though its free), spend countless hours debugging the substandard code and build it. The whole code base has tell tale signs of cut paste code, unnecessary optimization and non standard C++. I was messing up with the latest stable release when one of the Real developers informed me that the branch was dead!! I got one of those nightly builds that had fixed few, but not all, of the issues. I then quickly made the changes and got the thing to build. The most stupid errors were the ones where the variables were used without definition inside a #ifdef clause, casting a boolean into integer etc.

To cut the long story short, Raaga.com now works with firefox on Linux!!! and no unfortunately I cant give you the binary, you have to build it yourself.. RealPlayer's license needs another entry. It is clearly an example of __evil__ open source (The good one being GPL of course). I cant check in the code cuz I was not authorized to modify them at the first place.

Anyhoo.. the songs sound so much more melodious now :)...

PS: A developer asked me to submit a patch. If all goes well, then the whole Linux desi community would soon be thanking me :P

PPS: My patch is accepted. You can download the nightly build by tomorrow.. or wait for the next release. It will be a part of the next release... Yay!!

PPPS: Download the latest binaries here.