About Kyriakos Anastasakis

I was born on the beautiful island of Chios, Greece, where I received my primary school and high school education. At the age of 18 (in 1997), I moved to Athens to attend the Department of Informatics at the T.E.I. of Athens. In 2001 as part of a six month industrial placement, I joined Ulysses Systems, Piraeus as a junior Software Developer. In 2002 I received the degree of Informatics Engineer (Mihanikos Pliroforikis) from the T.E.I. of Athens. I continued to work for Ulysses Systems until the end of July of 2003. In 2003 I moved to Birmingham to study for the MSc in Advanced Computer Science at the School of Computer Science, at the University of Birmingham. In 2004, after I finished the MSc studies, I decided to stay in Birmingham and pursue a PhD degree in Computer Science. Since then I have been working towards the PhD in Birmingham under the supervision of Dr. Behzad Bordbar. Since 2005 I have been a part time self-employed software consultant. An interesting project I was involved in, was the development of a small scale CRM software for the Birmingham branch of MLP Private Finance. Since 2004 I have also been responsible for development and maintainance of the website of the Hellenic Society of the University of Birmingham.

I wanted to add a new device to my wireless network, but I had forgotten the wireless key. My network uses WEP encryption. So, I used aircrack to recover the key. Basically what I had to do was:

    • use airodump to save a large number of  transmissions between the wireless router and a device that is already connected to the network.
    •  use aircrack to analyse the file produced by airodump and find the password

In particular, I managed to recover the key in the following simple steps:

  1. Download BackTrack Linux Distribution and burn it on a DVD.
  2. Boot my laptop using the live DVD
  3. On command prompt type:
    ifconfig to see the available network interfaces in Linux. Doing this I was able to find my laptop’s wireless interface.
  4. Type: airodump-ng -write afile.cap wlan0 , where afile.txt is the file that airodump will save all communication and wlan0 is the wireless network interface of my laptop as discovered in step 3. Let it run and collect packets for quite some time. It may a few hours (in my case it took 6 hours) for this step to collect enough packets. The time it will require depends on the traffic of the network. The more traffic the better. Once enough packets have been collected press Ctr+c to kill the process.
  5. Type: ivstools -convert afile.cap afile.ivs to convert the captured packets to ivs format compatible with aircrack
  6. Use aircrack-ng afile.ivs. Aircrack will pop up a menu to ask you which network you want to crack. Select the SSID of your network and if enough packets have been collected in step 3, you will have the key of your wireless network in no time!

I run into an investment advice book printed in 2002 (i.e. before the recession) and the preface starts like this: “(The US people should be) positive about buying or refinancing a home at historically low interest rates or buying a new car under new no-interest offers”. Obviously the recession came later on and everyone who invested in homes (and cars) lost a good deal of money.Moreover, many articles about the recession and its effect on the housing market mentioned that when interest rates are so low, there’s one way to…UP.

So..I was wondering whether I should spend my valuable time to read the rest 280 pages … I guess not… 🙂

Zenbe Lists has been down for the past few days and I am losing track of my things todo. Had a huge list of things to do on my days off, but…  Anybody got any suggestions for a TODO lists program that works with iOS 3.0.1 and will sync with a PC? Guess I could always try a pen and a piece of paper, but I am afraid it will take me some time to remember how to use this archaic user interface.

Recently I’ve been playing around with a webbrowser control to automate my interaction with a website for testing purposes. I am using C# and DOT NET.

I found it a bit difficult to change the value of an HTML combobox (i.e. dropdown), but as it turns out it’s rather easy.I used the following code to change the value of a combobox named: “test” to the value 12.

This code was used for the following HTML:

Finally the following code was required to press the “Submit” button.

I have a Windows XP installation on a VMWare hard disk. Today I tried to boot it, but… OOPS (no.. I don’t mean Object Oriented Programming and Systems… I mean..crap!). It seems I forgot the password of the installation. So a little adventure started…

1. After a bit of research I found out that there is ophcrack. I downloaded the live CD as an ISO image and set VMWare to load that CD.

2. When VMWare starts and before windows starts booting I clicked on the VMWare screen and pressed ESC. This gives me the menu to select the device I want to use to boot.

3. I chose to boot from the CD.

4. The ophcrack live CD starts loading, but when it finishes I get a:  “No partition containing hashes found” error.

5. The problem seems to be that the Windows installation is on a SCSI virtual disk that is not recognised by this distribution of linux. Tried “fdisk -l” on a terminal from within the ophcrack live CD and it didn’t return any results.  To be able to crack the password I need to have access to the “WIndows/System32/config/ folder of my virtual hard disk. So…

6.  I created a second virtual hard disk in the same VMWare virtual machine. I downloaded an ISO image of Ubuntu

7. Installed Ubuntu on the newly created hard disk.

8. Boot using Ubuntu. Ubuntu was able to access the virtual hard disk of the windows installation. I copied the folder “WIndows/System32/config/” on my local Windows 7 installation.

9. Downloaded ophcrack for Windows and installed it on my Windows 7. Also downloaded the XP Free Small Table.

10. Launched ophcrack and clicked on “Tables”->Install and selected the folder where I had downloaded the XP Free Small Table file (if it is a zip file you need to unzip it).

11. Select Load->Encypted SAM and select the “config” folder I had copied from the VMWare installation (through Ubuntu).

12. Got my password in 45 seconds!!

I have developed a component in Java that requires an HTML parser. The component goes through around 2000 webpages and gets some data.

It was quite easy to implement it using the org.htmlParser (http://htmlparser.sourceforge.net/). Even though some of the webpages are quite big (some of a size of up to a few hunders of MBs) the memory of the component seemed to grow inexplicably leading to a Java heap out of memory error. I spent a good deal of time trying to figure out the source of the leak thinking it was my code. After a few attempts to identify the problem, I used the IMB Support Assistant workbench and took a heap dump using the command:

jmap -dump:format=b,file=heap.bin processID

I was able to identify a lot of Finalizer objects referencing the org.htmlParser.lexer. This looks like a memory leak, where the garbage collector can’t collect the objects properly?

Well.. the fact of the matter is I haven’t spent an enormous amount of time reading the documentation and/or source code of the project.  It seems there is a close() method that can be called on the Page reference of the lexer and I haven’t used it. So, at the end of my method that does the parsing I added:


The first statement closes the Page object. I added the second statement just to be on the safe side, even though it’s probably redundant.

And the “Memory Leak” seems to have vanished…

I keep this blog (which I don’t update very often, but that’s another story) and I post both personal and professional (in the sense that it will appreciated by Computer Scientists) content. I would like to import all blog posts automatically from this blog into my facebook and linkedin profiles.

The thing is that I don’t want to post Computer Science related content into facebook and I don’t want to post into my (professional) linkedin profile all kinds of rubbish. I found out that it is easy to selectively syndicate content depending on the tags that I will add to my post.

So I added two tags, an import_facebook for posts that I want to be imported into my facebook profile and an import_linkedin tag for posts that I want to be imported into my linedin profile.

Then I installed the “WordPress” application for linkedin and I set as a feed url of my blog the following: http://kyriakos.anastasakis.net/tag/import_linkedin

I also installed RSS Graffiti for facebook and I set as a url of my feed the following: http://kyriakos.anastasakis.net/tag/import_facebook/feed

From now on any WordPress post I tag as “import_facebook” will be imported into my facebook profile, while every WordPress post I tag as “import_linkedin” will be imported into my linkedin profile. Before installing the WordPress and the RSS Grafiti apps on your linkedin and facebook profiled respectively, you need to have at least one post tagged “import_facebook” and a post tagged as “import_linkedin” for the applications to pick up the links properly.

I use a virtualbox virtual machine to run Ubuntu from within Windows (yes, I know I am a masochist). Anyway, every time I resume the virtual machine Ubuntu loses connection with the internet and I have to reset the interface. In windows from the command prompt you have to do an ipconfig /release and an ipconfig /renew. Similarly in Ubuntu all I had to do was the following:

1. sudo ifconfig to get a list of all the network interfaces. There you can see the name of the networking interface that you need to reset. In my case I wanted to reset interface “eth3”. So I did:
2.sudo dhclient -r eth3 to ipconfig /release
3.sudo dhclient eht3 to ipconfig /renew

That’s it! Got a new IP and I can access the internet!

This morning I came out of the shower and found my iPhone on the floor. I had forgotten the alarm on and since it’s on vibration, the alarm was ringing for quite some time until the phone fell on the floor. I picked it up and the home button wasn’t functioning, the speakers were dead and it wouldn’t charge. The phone has been like that for the whole day.

I just came back from work and I decided to use a novel approach based on strict scientific/engineering reasoning. I let it fall down again. I picked it up and it didn’t recognise the Sim card. Ooops… I switched it off, removed and re-inserted the Sim card and turned it on. It’s back to normal! The home button works, the speakers are loud and clear and it charging at this very moment!