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 have received an Email with the top 50 programming quotes. Here are my favourites:

  • “Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning.” – Rick Cook
  • “Walking on water and developing software from a specification are easy if both are frozen.” – Edward V. Berard
  • “They don’t make bugs like Bunny anymore.” – Olav Mjelde
  • “A C program is like a fast dance on a newly waxed dance floor by people carrying razors.” – Waldi Ravens
  • I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone.” – Bjarne Stroustrup
  • “In the one and only true way, the object-oriented version of ‘Spaghetti code’ is, of course, ‘Lasagna code’ (too many layers).” – Roberto Waltman
  • “For a long time it puzzled me how something so expensive, so leading edge, could be so useless. And then it occurred to me that a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match.” – Bill Bryson
  • “Good design adds value faster than it adds cost.” – Thomas C. Gale
  • “Perfection [in design] is achieved, not when there is nothing more to add, but when there is nothing left to take away.” – Antoine de Saint-Exupry
  • “The best programmers are not marginally better than merely good ones. They are an order-of-magnitude better, measured by whatever standard: conceptual creativity, speed, ingenuity of design, or problem-solving ability.” – Randall E. Stross
  • “To iterate is human, to recurse divine.” – L. Peter Deutsch
  • “The trouble with programmers is that you can never tell what a programmer is doing until it’s too late.” – Seymour Cray
  • “Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.” -Linus Torvalds

And my favourites:

  • “You can’t have great software without a great team, and most software teams behave like dysfunctional families.” – Jim McCarthy
  • “Beware of bugs in the above code; I have only proved it correct, not tried it.” – Donald E. Knuth
  • “Sometimes it pays to stay in bed on Monday, rather than spending the rest of the week debugging Monday’s code.” – Christopher Thompson
  • “First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack.” – George Carrette
  • “Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.” – Alan Kay
  • “Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.” – Martin Golding
  • “There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies.” – C.A.R. Hoare

I recently wanted to get the usage of my CPU in C#. After searching the internet I found a way of doing it using the PerfomanceCounter class. I made a couple of changes and I created the following class, which seems to work.

Using the statement: SystemUtils.getCpuUsage() you should be able to get an integer number showing the CPU usage.

From time to time I develop something on Eclipse. Apart from the usual Eclipse operations (build and test) that I do with the Eclipse Ant and JUnit plugins (they ship with Eclipse for Java), I also wanted to carry out some dependency analysis on existing code. Of course JDepend is the obvious option, but I found a nice article from IBM that suggests some additional plugins that help the coder carry out day to day tasks such as Complexity monitoring and Coding standard analysis.

The following is a summary of the plugins proposed by the article. Of course all of them are opensource/free.

Tool Purpose URL for Eclipse plugin
CheckStyle Coding standard analysis http://eclipse-cs.sourceforge.net/update/
Coverlipse Test code coverage http://coverlipse.sf.net/update
CPD Copy/Paste detection http://pmd.sourceforge.net/eclipse/
JDepend Package dependency analysis http://andrei.gmxhome.de/eclipse/
Metrics Complexity monitoring http://metrics.sourceforge.net/update

The full IBM article can be found here: http://www.ibm.com/developerworks/java/library/j-ap01117/

I was reading an article in the Computer Weekly magazine the other day. The article features the 10 worst inventions from apple (so far) and the 7 worse inventions from Microsoft (so far). Such articles prove one thing that has been well documented.. it takes many failures to become successful! The articles from the computer weekly magazine are the following:

We had a storm a few months ago and before the storm a number of lightnings struck the area close to where I live. I recorder a video of the lightnings and I noticed something weird…

The first image shows the view from our house. The second and third images show two lightnings. The third image is quite interesting, because the closest building on that image is around 20 meters away from where I was standing; and the lightning trajectory appears all the way to the bottom of the picture. It’s been ages since I last studied physics, so even if I knew how to explain how this happened, I have now forgotten! My thoughts so far:

  • either the lightning struck less than 20 meters away from where I was. It doesn’t seem likely, because I assume I would have felt it striking so close. Moreover the clouds where the lightning started its trip [sic] appear to be far away close to the mountains.
  • or the camera was able to capture the trajectory of the lightning behind the trees and buildings!
  • or…
Image1
Image1
Image2
Image2
Image3
Image3

…?

I tried using the Apache XMLConfiguration to save the settings of an application I am developing to XML format. When I used it with Java 1.5 it all worked perfectly; however if I tried using it with Java 1.6 I was getting the following exception.

After doing some search on google I found that this can be a problem with the xerces XML library (xercesImpl.jar). Checking the 3rd party libraries I am using in my project, I found a library that was using and distributing an earlier version of xercesImpl.jar.

I downloaded the latest version (2.91) of xercesImpl.jar from the Apache xerces project (http://xerces.apache.org/mirrors.cgi#binary) and replaced in the 3rd party library I was using the xercesImpl.jar file with the one I downloaded. Now everything seems to work fine, even in Java 1.6.  🙂

Update: The method described in the following proved to be useless in the summer, when the laptop became too slow (almost unresponsive). I guess setting the CPU Fan Control level to quiet does not work well when the environment temperature is relatively high. So, I removed the fan cover (all you need to do is remove 6 screws on my laptop) and injected some sewing machine oil on the fan! Now the laptop is TOTALLY silent again! Hurrah!

The noise level of the CPU Fan of my Sony Vaio VGN-SZ71E laptop was driving me crazy for the past few days. When the laptop was on, you could hear the fan operating even in the room next door. The fan was also producing vibrations, which I could feel when I had my arms on the keyboard palmrest! It’s needless to say you can’t work properly (i.e. concentrate on your work) under these circumstances.

I tried removing the chassis to see if I can replace the fan, but in order to have access to the CPU fan on this laptop model you need to disassemble pretty much everything! Luckily there is a workaround.

I had installed the Sony VAIO Power Management utilities, which allow me to manage the CPU Fan speed (Control Panel -> Power Options->VAIO Power Managent -> CPU Fan Control ). I set it to level  “1-quiet” and I have to say it is much better now.  Probably this has some impact on the performance, but this comes second to the peace of mind when working 🙂

When I saw the comic on the new google chrome browser I was very excited. It seems to promise that I will never have to restart the whole browser if just one of the 10 open tabs crashes. No more 100% utilisation for heavyweight javascript sites?

My first experiences (I’ve only been playing with it for 10 minutes):

1) Doesn’t import my huge firefox visited sites history. If during the installation I ask it to import the history it just doesn’t proceed, without any error. The third time I tried to import my firefox settings I unticked the “import history” and it worked.

2) It seems to take longer to initially load up a page (I guess because it spawns a new process each time a new tab is opened and because of the javascript VM).  But once Continue reading