Running 32bit applications on 64bit Ubuntu

After upgrading to 64bit Ubuntu 11.04, I wasn’t able to get some applications to work and was getting a very cryptic error

nullin@null-in:/work$ p4
bash: /build/bin/p4: No such file or directory

Even though /build/bin/p4 exists, on running the command, the system was complaining that the file doesn’t exist. I soon realized these were 32 bit applications and to fix this, one just needs to install ia32-libs:

sudo apt-get install ia32-libs

After doing this, things starting working properly again:

nullin@null-in:/work$ p4
Perforce -- the Fast Software Configuration Management System.
p4 is Perforce's client tool for the command line.  Try:

VMware Workstation 7.1.4, Ubuntu 11.04 and Unity

Three days back I installed Ubuntu 11.04 Beta onto my work machine. I tried getting Workstation to work but it kept crashing. In Unity session, it would start up and even start the VMs but would keep crashing on trying to switch to the VM console. In gnome session workstation would startup, switch to console session but crash while trying to move files in and out of the VM.

Version 7.1.3 has known issue with running in the new Unity session and v7.1.4 was supposed to fix this. Going by some comments online, it has seemed to fix it in many cases to. For me it just wasnt working. After looking around for a while I found a workaround on VMware community forums. For making VMware Workstation 7.1.4 with work with Ubuntu 11.04 in Unity Session, just start it from cli as follows:

$ export LD_PRELOAD=/usr/lib/vmware/lib/
$ vmware

This fixes the glib related errors that were crashing the software and you can start using your VMs. See this forum thread for more information.


Hudson CI for Testing

We are heavily using Hudson for testing a product we are working on. Other than maintenance and some instability issues, it’s been a great experience working with Hudson. We started out with just a single machine running Hudson server and then soon moved to a master-slave configuration where we have setup one master connected to four slaves. We are currently running about 10-15 jobs on this setup at one point or another during the day and use it to run pre-checkins (well in a way *post*-checkins), BATs and regression runs.

Here are a couple of screenshots that I took  when we were just getting started and were stabilizing Hudson and the product.

We have the following kinds of jobs running on this system:

  1. Pre-checkins: We provide development team with a set of tests that they are supposed to run before they commit any code. To ensure that the development team was doing this, we have a job that runs pre-checkins tests on every commit. This helps us ensure that things remain green though out the day and we come to know of failures asap.
  2. BATs: Basic Acceptance Tests as another category of tests that help us ascertain the daily quality of builds. Before the QA picks up a build for testing, we run the BATs against the daily official build and make sure that all tests pass.
  3. Regression runs: We also use hudson to run regression tests. At time of taking this screenshots, we had only about a 1000 tests and hence had a single job which would run all the tests and would take about 6-7 hours to complete. Now, we have split up that job into multiple jobs by using multiple build stages that Hudson supports. I will talk more about this in a later post.
  4. Helper jobs: We have parameterized jobs setup that help any one (dev or QA) to start any kind of test run against an official or sandbox build.
  5. CI jobs: This is how Hudson was originally intended to be used. For each branch that we work on, we poll the SCM every 5 minutes to check for checkins and build the dev and QA code. This helps us ensure that the code any checkin hasn’t broken the QA build and that users have access to the latest artifacts/distributions at all times.

For the project, we had invested time into providing infrastructure to pick up official/sandbox builds and then using these builds to setup environment, configure tests and then execute the tests. We just had to put in some more time to change or add features to make it all work easier with Hudson. Now, instead of letting everyone fend for themselves when it comes to setting up environments for testing and then reporting the results, we use Hudson to automate that process to a very large extent and make these tasks more manageable and the product quality more visible.

VMware Player and Ubuntu 8.10 keyboard mapping issues

Yesterday I installed VMware Workstation 6.5 on my fresh install of Ubuntu 8.10. After powering on a Windows XP vm, I realized that I could not use the arrow keys properly. On hitting the left arrow key, start menu was being displayed and other arrow keys had similar issues. Also, using VMware player was completely impossible as ctrl-alt-del wasn’t working.

After searching around a bit I found that many others had faced similar issue. Apparently it is not a bug with VMware Workstation. Due to some updates to Ubuntu 8.10, the keyboard mappings were screwed up. I found good amount of information in the VMware communities forum.

To fix this issue, you simply need to run the following command,

echo 'xkeymap.nokeycodeMap = true' > ~/.vmware/config

and if VMware Player/Server/Workstation was running, just restart it.

You should then be good to go…

Static IP address on Ubuntu 8.10

Last Friday I upgraded my install from Ubuntu 7.04 to 8.10 Intrepid Ibex on my office workstation and I noticed that I was unable to assign static IP to the machine. After reboot the netmask was getting messed up and reset to 22. Look at this bug for more info.

So, I ditched the native ubuntu Network Manager and installed wicd which is another open source network manager that works with Ubuntu. But after configuring wicd with the static IP, I had another problem. Everytime I restarted the machine, I had to manually start the wicd network manager. Instead of trying anything more with wicd, I decided to ditch a network manager altogether and just configure the files myself.

So, to get the network working with static IP, first remove the network manager (Many people have said that it is not necessary, but I prefer to remove it as I wont be using it anyway):

sudo apt-get remove --purge network-manager

Then modify the /etc/resolv.conf with the dns servers and domain names:


Now, modify /etc/network/interfaces and add

auto eth0
iface eth0 inet static

Now, just restart the networking:

sudo /etc/init.d/networking restart

Obviously, you should figure out the netmask, gateway and name servers before you start these steps.

This is all that you need to do to configure the machine with a static IP.

VMware player on Ubuntu 8.04 (Hardy Heron)

I recently upgraded my office computer from Gusty to Hardy and VMware player stopped working for me. I looked around a bit and found a nice step-by-step guide to get it up and running. Here are the steps:

  1. cd /usr/lib/vmware/modules/source
  2. cp vmmon.tar vmmon.tar.orig
  3. sudo tar xvf vmmon.tar
  4. cd vmmon-only/include/
  5. sudo vi vcpuset.h
  6. change line 74 from: #include “asm/bitops.h” to: #include “linux/bitops.h”
  7. rm vmmon.tar (return to the folder where you decompressed the tar file)
  8. sudo tar cvf vmmon.tar vmmon-only/
  9. sudo rm -rf vmmon-only/
  10. sudo

To save you some time, I have uploaded the fixed vmmon.tar, that you can use to replace the original with. Just untar the vmplayer package, download vmmon.tar and cp it to <vmplayer_installer_dir>/lib/modules/source/ and then start the installation process.

This same process should work for VMware Server and Workstation as well.

I suffer from Downloading Syndrome

I have finally realized it… I don’t know if it’s too late… but I am going to get out of this…

First of all, please let me tell you how much I love Azureus… it’s just great… simply amazing… There’s another bittorrent client, utorrent, which is pretty kewl cause it comes in a single small file that doesn’t even need to be installed… but I prefer Azureus cause it seems to have better performance and support for plug-ins.

About a month back I installed the Advanced Statistics plug-in for Azureus. As the name suggests, it gives advanced statistics about the torrents being downloaded and the overall process… in short, a lot of figures and graphs… going though the recorded statistics, I have realized that I suffer from some serious problem. I guess there are many others out there… but I personally think, I have let things get way out of hands. To see what I am talking about, open the thumbnail below…

Azureus stats

As it shows, in the last 42 days and 11 hours, I have downloaded about 92.79 GB of data. Shame on me that during the same time I have only uploaded 55.40 GB… that works out to about 2.2 GB/day download and 1.3 GB/day upload… Also, since I installed this plug-in some 25 days back, I have downloaded about 57 GB…

Some more stats… other than a few very low values, the minimum downloaded data size has been 1.17 GB (05/11/06) and maximum around 4.78 GB (06/02/06), in a single day… Lately, since I found out about this problem, I have stopped downloading as much and just trying to see the stuff that I can.

Another thought that crosses my mind is that this is just the stuff I get off torrents… there a whole lot more downloading that keeps happening now and then on the side… 

I have decided… NO MORE of this downloading anymore… very limited and only the necessary things… don’t want to get into any kind of shit… 😉

p.s. while you are at getting Azureus installed or checking out the Advanced Statistics plug-in… also check out the 3D view and Auto Speed plug-in

Firefox Extensions

Here’s a set of Firefox extensions, in no particular order, that I really like and use regularly. I have tried to rate them and give a small description for each extension. You can click on the names and go to Mozilla’s website to get more information on these extensions and download them. Note: Most of these extensions are meant to work for windows only.

Rating: 8/10 Status: Enabled
A set of tweaks to make Firefox run faster

Rating: 9/10 Status: Enabled
Blocks out advertisements on webpages. Very very useful. Note: This extension makes Firefox crash at times when gmail is opened

Adblock Filterset.G Updater
Rating: 9/10 Status: Enabled
Updates list of servers to block. It works in conjunction with Adblock

Web Developer
Rating: 7/10 Status: Enabled
A must have for anyone into web development. A lot of features and options to make temporary changes to webpages. I have used it to check the changes by CSS and underlying structure and accessibility

Download Statusbar
Rating: 8/10 Status: Enabled
Instead of a dialog window popping open separately, now when I start a download, a bar similar to statusbar shows up at the bottom.

Rating: 7/10 Status: Enabled
Gives options to save the current open windows into a session, open closed tabs and recovers open tabs if Firefox crashes

Rating: 9/10 Status: Enabled
Amongst many things, adds Google Suggest to all the input boxes and gives a variety of options to remove ads and link to other search engines while searching on Google

Tab X
Rating: 9/10 Status: Enabled
Instead of a single close button at the end of tab bar, creates a close button for each tab. Some people don’t like it, but once you start using it, it makes life so much more simpler

CuteMenus – Crystal SVG
Rating: 6/10 Status: Disabled
Adds icons to all the different menu items. Mostly for visual enhancements

Rating: 8/10 Status: Enabled
Great extension to create reminders and to-do list. Comes with a lot of options

Bookmarks Synchronizer 3
Rating: 8/10 Status: Enabled
Synchronize your bookmarks with a file at a remote location to keep copies of your bookmarks. I use it to synchronize my Bookmarks in Windows and Linux

Screen Grab!
Rating: 7/10 Status: Enabled
Captures an image of the document being view with various options. Saves the file in a png format. I use it to keep copies of all the transaction IDs and receipt numbers etc.

Extended Statusbar
Rating: 6/10 Status: Enabled
Gives more details such as images on the webpage, size, speed and time taken to open the webpage etc. Similar to what Opera does.

View Formatted Source
Rating: 6/10 Status: Enabled
Displays the source for the webpage with HTML tag folding. A lot of options to customize the view of the source as per your needs

Groowe Search Toolbar
Rating: 9/10 Status: Enabled
Amazing search toolbar. The best that I have ever used. A must have.

Tabbrowser Preferences
Rating: 7/10 Status: Enabled
Adds itself to the options window. Has a lot options to make the Tabbed Browsing experience just the way you like it.

Rating: 6/10 Status: Enabled
Makes the Firefox menu interface similar to Office XP. It’s mainly for visual enhancement.

IE Tab
Rating: 7/10 Status: Enabled
Another great extension. It embeds IE into Firefox. If you haven’t configured Firefox to option embedded wmv files, you can use this plug-in to open them up by first viewing the page in IE. 🙂

Rating: 7/10 Status: Enabled
A good feed reader. Opens up as a sidebar.

Rating: 7/10 Status: Disabled
A good toolbar for those who have a lot of time on their hands. By the click of a button it takes you to a set of user-submitted pages based on the preferences you have set. It can get very very addictive. I have disabled it. 😉

Rating: 5/10 Status: Disabled
A Blog Editor that needs a lot of improvement. But still, the whole idea of being able to blog right out Firefox.. Great… Flock is already doing it as it has a blog editor integrated into it… but I like the fact that here I have an option

Crash Recovery
Rating: 7/10 Status: Enabled
Recovers the Firefox, as in, opens all the last open tabs with their current history, when Firefox is restarted after a crash

Rating: 7/10 Status: Enabled
A kewl extension. Shows how much of a page is loaded by converting the address-bar into a progress bar. Again… it is mainly for visual enhancement.

PDF Download
Rating: 7/10 Status: Enabled
When you click on a link to a PDF, you get an option to view as PDF, view as HTML or download it

Disable targets for download
Rating: 7/10 Status: Enabled
Sometimes, when you click on links to download files, Firefox opens a blank page as well. This extension stops it.

Rating: 6/10 Status: Enabled
Shows the IP of the site you are viewing and gives options to work with it

Rating: 6/10 Status: Enabled
A kewl extension to save webpages when you are researching a subject. You just keep saving the pages. It comes with a very good text search tool

HTML Validator
Rating: 6/10 Status: Enabled
Validates HTML pages on the fly as you view them.

Rating: 6/10 Status: Disabled
Saves the order in which tabs were viewed and accordingly takes you to the last selected tab when another tab is closed. I find this very useful.

Rating: 7/10 Status: Disabled
Fetches the forecast for your city. I have it disabled as I prefer to goto Yahoo! weather and get the information that I need

Rating: 8/10 Status: Enabled
Play and control many different applications through Firefox itself

Rating: 8/10 Status: Enabled
Gives you a lot of options for enhancing Tabbed Browsing experience. I used it for opening my tabs in multiple rows, so that they don’t get too small when I have a lot of them open. Also, I have used it to replace FLST.

UI Tweaker
Rating: 8/10 Status: Enabled
Comes with a lot of options to tweak Firefox UI to just the way you want it. One of the main reasons I use it is for displaying multi row Bookmark Toolbar.

I will probably find sometime and make this into a page so that I can have it in the sidebar at all times.

Reformatted / Reinstalled Windows

I have had this new Dell Inspiron 6000 for about 5 months now and I felt it was too long a period to go without formatting Windows. So I took it up yesterday.

I had already repartitioned the system and installed SuSE Linux 10.0 as the other OS. My biggest concern was that the GRUB loader would be lost because of re-installing Windows. I dont know when is Microsoft ever going to recognize that there are other OS that ppl install on the same machine and that they (MS) should give options to edit the MBR.

Anyways, I went ahead and re-installed Windows Media Center 2005 Edition and the MBR was over written. But instead of one I had two issues now. The MBR was overwritten so I couldn’t get into Linux easily and because of a faulty installation, a Windows Choice menu appeared, which gave me an option to load into one of the two Window OS installed on the system. I corrected this problem first. After a bit of googling I found this link by Microsoft on how to edit boot.ini. It has a good tutorial on how to view, edit and verify the changes made to boot.ini. Changes should be made carefully to this file. I opened the boot.ini file and it looked like this:

[boot loader]
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Media Center Edition" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP Media Center Edition" /noexecute=optin /fastdetect

The last line in the code above is wrong and shouldn’t have been there. The tutorial provides a way of how to delete that line using bootcfg command. The tutorial says that command should be

bootcfg /delete /ID#

but it should be

bootcfg /delete /ID #

where # is the ID number of the partition.

After modifying the Windows Choice Menu, I went ahead and started to re-install SuSE, but I realized that I got the option to repair the currently installed system. I went through the menus and started to repair the previous install. I came across a problem where in it said that the windows partitions wont be loaded on system start-up, but soon after it detected the problem with GRUB and it went ahead and corrected the problem by overwriting MBR.

Now my system works perfectly fine. 🙂

Copy Paste Operation

I have been wondering this for a while now and now it’s almost getting to me. I have searched all that I can, but haven’t found any explanation for this.

Why can’t Copy-Paste or Move operations in Windows or Linux GUI be paused ?

All that is provided is the button to cancel it. There is no way that a user can pause a copy/move operation and then restart it later. Why? why ?? why ???

Any input ? 🙁