Saturday, April 30, 2005

Code Reviews

Do code reviews help. Are they some sort of magic cure, a panacea for all evils that affect us ?
Some would like us to believe so. What do I think. Having worked in a SEI CMM Level 5 company, I couldn't agree more with Taran,

I'd like to think that code reviews have value simply because I
have personally wasted a lot of valuable time in them, worrying about
alphabetizing variables and so on. But that doesn't make it so, and
nobody really can prove whether they are worthwhile are not.

Code Reviews tend to be silly things in corporate settings. They
argue about code formatting, how many spaces equate to a tab, and so
on. My personal favourite was getting trashed for not alphabetizing my
#define variables by NAME instead of what I had done - alphabetizing by
variable type, then name. Yes, these things are really done in
professional shops. Also, if nobody else in the room is familiar with
the history of the code and the function of the code - not to mention
the dependencies, and so on - is it really a code review? How can you
analyze 12 lines of code in one class when you're dealing with a
complex software system with high interaction? Not unless the people in
the room *know* the code - all of it. Unlikely.

Read it all here

Do I review others code ? I do, but that is when it starts failing.
(I do read code written by experts a lot , not for reviewing, but to learn how to write good code. )

Do I like others reviewing my code ? They are most welcome, provided that they point out bugs, not formatting issues. I have a set of personal preferences I have developed. Any attempt to introduce a UNIFORM coding style (guidelines) is just that, like introducing a school uniform for the programmers. I would change my coding preferences, my indentation style and my variable naming style the day you convince me that yours has some tangible benefits, well worth the efforts I put in. Till that day, I code the way I do, so may you.

The best way to overcome indentation issues and have a uniform look and feel is to use a program like indent, because the debate over tab and spaces and braces and newlines is an eternal one.

Wednesday, April 06, 2005

Linux on Compaq Pressario V2036AP

Copyright © 2004 Qasim Zaidi
Authors homepage:

This document was created 02/13/05.
Last updated 02/15/05

System Specification

Intel Centrino Mobile Processor 735 (1.7 Ghz)

14” WXGA Screen
Bluetooth, Intel 2200 Pro Wireless Lan
5 in 1 Card Reader
USB, Realtek 100Mbps NIC, Smartink 56kbps Softmodem
S-Video Out, IE1394
60 GB, 512 MB RAM, 2MB L2 Cache

This laptop of the Pressario V2000 Family, came with 256 MB RAM,which I upgraded to 512 MB.It came preinstalled with MS Windows XP Home, with a single NTFS partition spanning the entire disk.

Linux Distributions tried on this Laptop

I first tried to install Mandrake 10.1 Community Edition on this Laptop. Installation went smoothly, and it successfully resized the NTFS partition , using ntfsresize. However, the system won't boot. It hanged in one of the startup script, so I booted into Single User mode and commented the firstboot script. This didn't helped either,as it again stopped in one of the runlevel 5 scripts. I was short of patience, so I decided to give Ubuntu a try.

I had no great hopes from Ubuntu, having read some of the reviews of how difficult its Laptop installation was. True to my premonition,the installation itself hanged quite early enough.

My thoughts finally turned to SuSe 9.2. On my desktops I run FC2,FC3 , FreeBSD & Solaris. However, I didn't wanted to run Fedora on the Laptop, and I wanted all of the hardware to be working.

As I started waiting for 3.1 GB SuSe Download to finish, I decided to give SimplyMepis a try. And it simply ran, out of the box. So I installed it on Harddisk, and thats what I am running as I writethis.


SimplyMepis is a single CD , KDE only live distribution, based on Debian. Installation is point and click, and its optimised for 586 &686 systems. Even non-free software such as Real Player are preinstalled, and multimedia support is excellent. Since I never intended to use my desktop for anything else (Desktops are much better for coding, my primary job function), I found this very impressive.

Almost everything worked out of the box. That excludes the soft modem. Wireless didn't worked initially and I am yet to test bluetooth, since I don't have any blue tooth devices.

Intel Pro 2200 Wireless adapter

SimplyMepis didn't came with ipw2200 support installed, though it did had modules for an older model (Intel Pro 2100 Wireless card). I

downloaded the latest drivers & firmware from
Also had to download and install sources for kernel 2.6.7 (and later 2.6.11) as they are required to compile the driver.

After compiling the module, and making install, you will have to copy the firmware manually (and you have to download it too!, from the same location).

For compiling the modules, if you are getting a lot of errors, just go to /usr/src/linux and do make (after copying the correct config file from /boot to /usr/src/linux/.config) . You can press Ctrl-C and cancel build just after first few lines. Then go to ipw2200 extraction dir and recompile.

Once you are able to load the ipw2200 module, to make it load automatically at boot time -Edit /etc/modules and add ipw2200 on a new line.
Since this file is processed much before the networking subsystem comes up, thewireless device will be named eth0, and the other NIC card becomes eth1.

Next, you need to automate this process, so that wireless is up if
the keyboard switch is on. This requires you to edit the
/etc/network/interfaces file. Here is mine

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet
wireless_essid UP
wireless_mode Managed

auto eth1
iface eth1
inet dhcp


I keep switching between Gnome and KDE. Since last few months, I
am running Gnome, in spite of being a KDE Fan, traditionally. To a
large extent, Gnome improvements and its cross platform nature (Its
also available on Solaris and Free BSD) are responsible for this.

Mepis doesn't comes with gnome, but installation is really easy.

All you need to do is

# apt-get install gnome-desktop-environment

However, when logging into GNOME, an ugly error message props
Error activating XKB configuration ...

Everything else worked fine. After a considerable googling around
( as this seems to be a common catchall XKB error), the fix was
really simple. Going to Applications -> Desktop Preferences ->
Keyboard and changing the layout from deflayout to US English fixed
this problem.


While the touchpad worked by default in Mepis, the on/off switch
won't work making it difficult to type anything, as the mouse cursor
will be moved. This is fixed simply by removing the mouseproto option
thats passed at boot to kernel in default mepis configuration. The
drawback is, scrolling doesn't works after this.

For Mepis (which I believe actuall uses debian-unstable ), I found several debian packages for Synaptics available , such as

  • ksynaptics

  • qsynaptics

  • xfree86-synaptics-drivers
    which can be installed and used
    to configure the keyboard.

    I found it easier to work with tapping disabled.



for some excellent distribution-independent keyboard information.

If you use GNOME, you need to set up the correct keyboard layout,
from either Applications->Desktop Preferences->Keyboard, or by
manually editing the /etc/X11/XF86Config-4 file.

Once you have restarted your X server with the correct keyboard
configuration, all that remains is setting the keyboard shortcuts,
from Applications->Desktop Preferences->Keyboard Shortcuts.

Arabic (Under construction)

apt-get install katoob

apt-get install ttf-arabeyes ttf-kacst