Wednesday 29 June 2011

Removing slotted libpng in Gentoo

While upgrading my Gentoo system, I upgraded gentoolkit package and I got a message saying asking me to run the following command.

glsa-check -p affected

Running it told me that there are no upgrades available for libpng-1.2.44. I found out that there were multiple versions of libpng installed on my system:
  • libpng-1.4.5 and;
  • a slotted version, i.e. libpng-1.2.44.

The solution was to remove all versions of libpng and freshly install it. This can be achieved using the following command.

emerge -C libpng && emerge -1 libpng:0

Friday 24 June 2011

Mouse vs keyboard


Over the years, we have had a conflict between two groups of users: GUI-friendly and CLI-friendly. Mostly the CLI-friendly people think that the keyboard is faster than mouse while the GUI-friendly people think that the mouse is faster. A research by Apple shows that actually it is the mouse that is faster in most cases although people think the keyboard to be. However, it is not the metrics that matter; but the mentality that is developed.

A programmer typing in full flow is very unlikely to break his flow and hold the mouse. He probably would prefer the whole window to be controllable from the keyboard. That way the interface is letting the programmer do his job without being distracted towards using a mouse. Emacs is a classic example of this.

However, people who work primarily with the mouse like desktop users who are copying files or playing music can use the mouse with ease letting the other hand rest.

Apple and Microsoft provide a nice GUI interface and are doing good business because most of their users are GUI-friendly. However, linux allows choice. There are great GUI windows managers like Enlightenment and there are also tiling window managers like awesome.

Wednesday 22 June 2011

Commandos II: Men of Courage multiplayer mode glitch

Recently I have been playing Commandos II: Men of Courage, with my brother, in multiplayer mode. We have played the game in single player mode numerous times; but this was out first multiplayer experience. We found synchronizing glitches in the game.
In the following image you can see two views: one on my screen and one on my brother’s. The same enemy soldier has different positions on the two screens.
comd1
Moreover, when I killed the enemy soldier using the Green Beret my brother’s system would show that a fellow Commando has died and mission failed. The same was shown to me if he took the soldier down with the Sapper. We tried to let the game recover by continuing the game trying to get the Green Beret meet with the Sapper. Interestingly as the Green Beret was alive on my system, he showed up with the Sapper and Lupin while on my brother’s system it was only the Sapper and Lupin.
comd2
When we had encountered a similar error within a closed room, I thought it was a glitch in coordinate calculation. However, I was wrong as proved by this incident. Clearly there is a concurrency issue here.

In the mission "Is Paris Burning?", there was another glitch where an enemy soldier picks up a cigarette from a distance. Look for the 14th second and the 57th second in the video.


Monday 20 June 2011

Installing Google Talk plugin in Gentoo linux

Google provides Google Talk plugin as rpm or deb packages for 32-bit and 64-bit architectures. To get it on Gentoo when you try

emerge -pv google-talkplugin

you can see that it is masked by license. It means you have to accept the license before installing. You can find all licenses at /usr/portage/licenses. To get a specific license try

ls /usr/portage/licenses | grep google

You can read the license and if you accept it then add a line to /etc/portage/package.license to reflect it. In this case, the line would be

www-plugins/google-talkplugin google-talkplugin

and in general it is:

<full package name> <license name>

Now when you try emerging it you get a message saying that the license does not allow mirroring. This is why the fetch restriction is in place. The message also tells you to download the .deb package suitable to your architecture and put it in /usr/portage/distfiles. The problem is Google provides you current version and not the version considered stable by Gentoo. Moreover, the version 1.8 which is considered stable by Gentoo is not available according a Gentoo bug [I wish I had found that out earlier].

So the 1.8 version ebuild is for those who have a copy of the older Google Talk plugin. All others have to unmask the newer version according to their architectures. I had to add the following line to /etc/portage/package.keywords.

=www-plugins/google-talkplugin-2.1.6.0 ~amd64

Now portage can fetch it for you. However, if you have already downloaded latest version of the plugin then you can use the command as root to copy it to you distfiles folder and portage will not have any checksum error either if the versions have not changed.

cp -v Downloads/google-talkplugin_current_amd64.deb /usr/portage/distfiles/google-talkplugin_2.1.6.0-1_amd64.deb

Now portage will not have to redownload the package.

Saturday 18 June 2011

Bootcharting Gentoo baselayout 2

In this post I shall share my experience of yet another Gentoo installation. I keep coming back to this distribution for its stability, wonderful package management and the experiencing fine grained control.

I have been using KDE for over six years now. I wanted to try GNOME 3. However, as I found out GNOME 3 is not yet stabilized in Gentoo so I had to be content with GNOME 2. They are stabilization by the next release. I believe that it for good reason. Well GNOME 3 does not support Compiz. There are no multiple timezone clocks.

Having prior experience in installing Gentoo linux, I knew that following the handbook strictly you have to wait for downloads while there is compilation going on and vice versa. So this time I chrooted not from a single terminal but from multiple terminals. I could run package downloads separately using

emerge -f <package name>

and compile concurrently on a different terminal using

emerge <different package>

After installation, when I booted the system hung up.

Hung up Gentoo bootscreen

I read a line saying

Ext3-fs: couldn't mount because of unsupported optional features(240)

Adding the following to the kernel line solved the issue.

rootfstype=ext4

However, I was still getting a hung up system. If I inserted or removed USB drives, I was getting appropriate messages printed on screen; but the system was not responding to any keystrokes or mouse, neither was it loading X. Only the error line was gone. So, I understood that it was not the filesystem issue that was causing it. Asking on #gentoo I found that it was a common issue caused by the switch to baselayout 2. Instead of old init scripts Gentoo had started using openRC. Last time  heard about it was about a couple of years ago. It was a nice project started by Roy Marples. However, now it was stable and I was happy to be using it. My issue was solved following Alex's suggestions for the issue.

I wanted to see the boot time with baselayout 2 and openRC so after I had other installations I did a boot chart to find much faster boot than my previous installation on the same machine.
Also noteworthy was the fact that X worked out of the box and I was surprised to see Firefox 3.6.17 in stable tree. I was expecting Firefox 4.0. Well I hope it is stabilized soon.

Tuesday 7 June 2011

Reading extended file system partitions in Windows

Ext2 and Ext3 partitions can be read in Windows using the open source driver available at sourceforge. However, windows does not treat files in a case sensitive manner as does linux. So if you have two files "data.txt" and "DATA.txt" on your linux partition, Windows will only be able to show you the contents of "data.txt".

Monday 6 June 2011

Getting nice fonts embedded in Blogger

Recently I have been hearing and reading a lot about typekit. So, I decided to find out how it can be useful to me. It basically is about getting nice fonts across browsers. It is a web service that provides font. The idea is really cool.

So I decided to try it out. They offer 25000 page-views per month and two fonts per site. I don't like either of these restrictions, especially the second one. So, I looked for alternatives and I found Google Web Fonts.

Using Google web fonts is very easy. You just need to select a font and then click on the Use this font tab and you have the instructions about how you can use it in your web page.

Font-face backed out because Google entered this market. However, you still have other alternatives like WebINK.