The first page of the CS website of the Uni. of Birmingham displays random images οf the links to the undergraduate/postgraduate and research sections of the site. I visited the website today and the following is a screenshot of the page I viewed.

So, the experience of a CS undergraduate in Birmingham=Pub drinking/eating/socialising…whatever… I don’t mind the message the image is trying to put across (even though I should probably mind)! However, I think the moment you visit the website this image strikes you as contradicting the site’s look and feel. What do I mean? In general the page is what you would expect to see in a CS department’s page… nerdy stuff! On the top there is the brain with the monitor to emphasise the strong AI background of the department. The image for the research is full of post-it notes. The image with the undergraduates in the pub… well it just doesn’t fit!

YAP (Yet Another Post) on iPhone Annoyances

A couple of months ago I decided to become the proud owner of an iphone. The one I got is the UK version with the 1.1.4 firmware. I am also still using my old (really old) nokia 6210, which is an (almost) 8-year old phone. I became annoyed that my 8-year old phone has certain simple features the iphone doesn’t have. So:

Things nokia 6210 can do, but the current version of Iphone (firmware 1.1.4) can’t (at least without installing any additional packages):

  1. View how many characters you have typed in your SMS message. This is really important.. Continue reading

I recently went back home for a few days. A neighbour’s cat had given birth to four little kittens. Once I woke them up and one of them was really pissed off. I have never seen so much anger and a look of annoyance in a cat before! (S)He looks like he is saying: “why did you wake me up you*&%$?”. By the way, from another picture, it seems that this particular kitten has a mustache!

For the past 3 hours I have been cleaning up my desk and sorting out the papers I had printed out (yes, when I talk about spring cleaning, I really mean it)! Anyway, I was listening to, while cleaning up. I asked it to play similar artists to Mikis Theodorakis, who is an excellent Greek composer of hmmmm… “metasymphonic music” (the term is borrowed from Wikipedia). After a couple of songs of similar to Miki’s music, decided to play a necromantia song! Necromantia is a Greek black metal group. What is the similarity between “metasymphonic music” and black metal? Well both artists are Greek, but apart from that.. none I would dare to say! FAQ on the “similar artists” functionality says:

The list of artists which you may see on an artist page as being “similar” is based exactly on our user’s listening habits. If a lot of users listen to Artist X, but also Artist Y and Z – Y and Z artists will become similar to X.

With a few added constants and other functions thrown into the equation to help make it more accurate, you’ll find that’s how Similar Artists are made.

The screencap follows:


This is another script I found while cleaning up my hdd. Now, we all know that java .class files can be decompiled to (a version) of their source code. The first java decompiler out there is jad. I tried to decompile some of my class files using jad.exe, but I couldn’t find a way of decompiling multiple .class files at the same time. So instead of digging into the documentation, I decided to quickly create a script that allows me to decompile a number of .class files at the same time.

Here’s how it works! I created a VBScript that goes through a directory (and subdirectories) of .class files and creates a dos batch file. The dos batch file can now be used to run and actually decompile all the .class files!

The VBscript can be found under this link: Decompile_vbs.

You need to edit it and change the paths to the .class and source directories.

When you execute this file, it will create a dos batch file like this one: Example_decompile.batPlease note this batch file will be generated under the directory where jad.exe exists! You can now run this batch file, which will actually decompile the .class files.

It is time for spring cleaning my hard disk at home. I am sorting/deleting files that I no longer use. I will post here files that I do not need now, but might need in the future.

So… I found a small linux shell script  that individually compiles every java file in a directory and all its subdirectories. The code is:


for d in ls
javac $d/*.java > $d/compile.txt


The text file can be found here:  batchcompile

Kaspersky antivirus and comondo firewall have rendered my windows 2000 laptop to be very slow. So I decided to give it a try with linux.

My set-up: A Toshiba 2450-S203 laptop (P4@2.8), an nvidia video card (don’t remember the details of the chip) and a wireless pcmcia linksys WPC11 version 4.

My experiences:

Mepis 6.5

First I tried Mepis 6.5. It worked very well out of the box and the wireless card connected to our router without a problem. However since Mepis 6.5 is based on an older version of ubuntu its repository has reaaaaly old versions of software. This was a problem and since Mepis 7.0 is coming out, I decided to try version 7.0 RC2.

Mepis 7.0RC2

Installed well, but I couldn’t make the wireless card work. I sent a post to the mepislovers forum and received a number of useful answers. It could be the version ndiswrapper that comes with Mepis 7, or the driver. So I had to either download the latest source code of ndiswrapper and compile it, or try different version… Too much work for a RC version.

Kubuntu 7.1

As I have been a windows user, I decide to go for another kde distribution, kubuntu. The installation went smoothly. However I couldn’t connect the wireless card to our router. Kubuntu would recognise it, but as soon as I tried to connect to the router… kernel panic! The caps lock light flashed and the system was unresponsive. I tried to blacklist the native drivers and use ndiswrapper with my windows drivers… but to install ndiswrapper it asked for the installation cd! (Even though I was already connected to the internet with my ethernet cable).

I managed to make it word with ndiswrapper and the system was quite stable. So, now let’s try ubuntu for a change…

Ubuntu 7.1

As expected I had the same problem with the wireless card and  resolved it using ndiswrapper again. I have to confess that I liked the interface better than KDE. It was quite fast and stable. The problem is that I need windows anyway (some .NET development, software which don’t have a linux version) . I can use virtualization (vmware) to run windows from within linux, but to do that I need more hard disk space and probably I will need again the firewall and antivirus installed.

The verdict?? I might try to switch to linux after I finish writing up, but right now I don’t have the time, resources (i.e. hard disk space) to do it properly. However there are some things I didn’t like. First of all in (k)ubuntu, when the native wireless card drivers crashed, NOTHING was logged in the log files, no warning, no nothing (at least a windows blue screen gives you a message with the address/module that caused the crash.).  The other annoying thing… why do you need the installation cd if you are already on the internet and the package manager can find the binaries on the internet?

I mean ok… you blaim windows for the blue screens of death, you blaim them for asking the installation cd all the time… so people say switch to linux (or get a mac).. you switch to linux and see things are not much better there.

Having said that I hope that some day I will have the time to be actively involved in a linux distro.

I recently created a new profile in Miktex to generate PDF files from latex through DVI (similar to the Latex=>PS=>PDF) profile that comes with the TeXnicCenter distribution. The new profile is a shortcut to what I was usually doing (i.e. latex => dvi and then dvi=>pdf).

The profile is called Latex=>DVI=>PDF. The profile file (which contains my other profiles as well) can be found here: TexnicCenter Profiles

Please note this profile file contains also the build-in profiles that come with the texniccenter distribution. Using this profile file, will override your current settings.