Friday, December 22, 2006

Found a job

I found a job!
I am working as software developer for EasyTime International.

I am not very good at describing, so I will let you watch a mini cartoon explaining the advantages of the use of EasyTime services.

The EasyTime software is already up and running, but it is in old asp. Now, the company decided to transfer the whole project into .Net. In order to do that, we will implement everything from the scratch. That will allow us to create a more flexible and solid system, follow and implement the requested by the customers features, have a better understanding of the total project.

One of the disadvantages of the old system is that it couldn't afford a company with more than 50 employees. With the new implementation we are going to overcome this limitation. This is very important bacause very large companies have already shown interest to the new version, before even installing the new server ;)

The company used to aim at Scandinavian customers, but lately has set up goals for Germany and England, and we are always seeking for opportunities anywhere.

Monday, December 11, 2006

Πώς να κερδίσετε 200.000€..

Ο zkeramid έβαλε ένα quiz. Μπορείτε να πάτε στο blog του και να το διαβάσετε.
Εγώ θα δώσω ένα μικρό hint.

Η "πόρτα" στην πληροφορική, δεν έχει καμία σχέση με την πόρτα του σπιτιού. Αυτό που σας νοιάζει, είναι ότι η "πόρτα" στην πληροφορική έχει σχέση με τον τρόπο επικοινωνίας υπολογιστών σε δίκτυο ή διαδίκτυο.
Όταν μιλάμε για "άνοιγμα πόρτας", μιλάμε για ρυθμίσεις που κάνουμε στον υπολογιστή μας, ώστε να του δώσουμε την δυνατότητα να ενώνεται με κάποιους υπολογιστές, με κάποια συγκεκριμένα προγράμματα, να μην αφήνει άλλα προγράμματα να συνδεθούν σε αυτόν κτλ κτλ.. Για όλα αυτά, υπάρχει κάτι στον πίνακα ελέγχου.. Κάπου εκεί κρύβονται τα 200.000€

Saturday, November 25, 2006

Hacker Puzzle

A friend told me about this Hacker Puzzle and I found it interesting enough to post it..

OK, it might/probably be very easy for people of our area,
but it's worth trying..

22 levels.. Good luck..

Wednesday, November 22, 2006

PocketPC application with WebService

After spending about 2 days of my life trying to create a PocketPC application that connects with a database through WebServices, I finally made it!

The main problem was that the articles/guides/how-tos that I found on the net, where misleading me instead of helping me. The reason is that some of them didn't mention to which versions they were referring to, and persuaded me to do things that I didn't have to.. So, if you are working with Visual Studio 2005 beta 2, there are some problems that I am not going to discuss. The same goes for VS 2003. What I am using and going to talk about, is Visual studio 2005 and PocketPC 2003 Emulator.

Below I am listing the steps you need to follow and the reason for each one of them. If you don't understand much, just follow the steps and ignore the reason :)

To start with, I need to have a webservice that contains at least a method that returns a Dataset. That dataset is supposed to be filled with a Table from a database.

Then I create a PocketPC project. I add as web reference the webservice to the PocketPC project and then I call the method.. Then I try to build.. Up to here, everything looks normal. But, there are several issues..

1st. The emulator doesn't have internet by default.
The problem is that the emulator considers the device being on hand and not on it's base. What you have to do, is go to Tools->Device Emulator Manager, select "PocketPC 2003 SE Emulator", right click and select Cradle. Now, the Pocket PC device is considered connected with the pc.

But, still that's not enough. You need to download a software the will allow the sharing of your internet connection with the the PocketPC Device (Emulator). This software is freely provided by microsoft, and it is called ActiveSync.

2nd. The Emulator even though is connected to internet, cannot access the webservice.
The problem is that the webservice is running at the localhost(your pc) and your pocketpc is trying to find it at its localhost(the pocket pc).. So, the problem is that both webservice and pocketpc are trying to communicate at localhost, but each one of them mean something different when they say localhost. To fix this, you should define at your pocketpc project, that the web reference that you are using is at your ip and not at localhost. That has to be done in two places. One is the properties of the web reference, and the other one is at reference.cs (at the constructor).

Then everything should work smoothly..
Hopefully :)

Tuesday, November 21, 2006

Get Date from DateTime in SQL Server 2005

Since I spent some time searching for that and I realized that it's not easy/fast to find the solution, I post it here.

SQL Server 2005 with a table that contains at least a DateTime column.
What you want to do, is to check a given date('21/11/2006') with the values of the DateTime column. The problem is that the column contains DateTime (which means Date and Time) data.

This problem could occur (occurred to me) when you implement a flight booking system. You have to save the flights with DateTime because you need the time as well, but when the user searches for flights, you need to create an sql command that checks the date entered by the user with the ones in the database, an ignore the time.

So, what I used is (almost) the sql below
string sql = "SELECT * FROM Flight where "+
"(CONVERT(char(10), DepartureTime, 103)='" + depDate + "')";

I recommend you to read the msdn article about the Convert function in order to understand what it's parameters do..

Monday, November 20, 2006

Je Vais Bien, Ne T`En Fais Pas

This is the next movie I am going to watch..

And that's only because of this..

And because it is French..

Sunday, November 19, 2006

html pre tag

As I was trying to create the previous post, I had a small problem. I couldn't copy-paste the code from Visual Studio to the blogger and keep the formating. The problem is that html do not keep the whitespaces, which are very important to make source code legible.

So, what I did, is that I copy-pasted the code, and wrapped it with a pre tag.
What pre tag does, is forcing the browser to preserve the format of your text.
A nice example and definition could be found here, and at the html source code of my previous post :)

Saturday, November 18, 2006

A simple algorithm

After Lipis's comment on my previous post about the words with shuffled letters, I thought it might be nice to post a simple algorithm for that.

The C# method below takes as argument a string and returns a string that contains the same letters but only the first and the last are guaranteed to be at the right position.

private string shuffle(string word)
Random rnd = new Random();
int index;
string temp = "";

int loop = word.Length - 1;

//loop the word without the first and last letters.
for (int i = 1; i < loop; i++)
//get an int from 1..word.Length-1.
index = rnd.Next(1,word.Length-1);

//add the char at this index to the temp.
temp = temp + word[index];

//delete the char at this index from word.
word = word.Remove(index, 1);

return word[0] + temp + word[word.Length-1];

With the definition I gave, this method is almost correct.
There are some known bugs but I didn't want to make the code difficult to grasp.
Now that the code is easy to understand, I can talk about the bugs and the solutions.

1. If the word is only a letter (such as 'a'), the method returns this letter twice.
The solution is to check the length of the word given. So after initializing loop variable, write:
if (loop == 0) return word;

2. There is a possibility that the word returned is the same with the one given.
As the length of the word increases, this possibility becomes smaller. But for 4-letter words, it's 50%. What one could do, is to check if the word about to return, is the same with the one provided, and loop until they are different.

Friday, November 17, 2006


I couldn't find if this was really a product of a research, but still, I find it quite interesting..

"Aoccdrnig to a rscheearch at an Elingsh uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist and the lsat ltteers are at the rghit pclae. The rset can be a toatl mses and you can sitll raed it wouthit any porbelm. Tihs is bcuseae we do not raed ervey lteter by it slef but the wrod as a wlohe."

It's already very famous as I realized..
Some info could be found here.

Wednesday, November 15, 2006

I found out my problem

After talking with some friends and listening to the opinions of some people, I found what my problem is.

* I talk too much. Others get bored, others get lost, others think it's too deep, others think it's self-explanatory. The point is that I talk too much..

* I don't have a standard way/level of talking. I am trying to say something in simple words, and suddently I get excited and go deeper. Some other times I talk more professionally, and once in a while I start explaining in simple words, which might result in some of the above.

So, let's try a new approach..
I will be as short as possible..

Visual Studio 2005 Rockz!!
-- Great intellisense, Great debugging information..
-- And much more.. But if I start, nobody will follow :(

Tuesday, November 14, 2006

Should I change topic?

Thanks to Google Analytics I saw that there were many people that visited my blog yesterday. Then I checked at the comments and I realized that maybe they all had the same comment as Nikos: "Nice things, but I don't understand them"..

Maybe I am not very good in describing..
One problem is that I don't know how deep I should go and how much explanation on what I am saying I should give.
Another problem is that I am starting to be convinced that I am not very good in describing(maybe because of the first problem).

So, should I start talking about something else? I think I have made about 7-8 posts about programming and projects and most of the comments were something like "nice, but I don't understand"..

Maybe I can start writing about god. It seems more easy to grasp and discuss about it..

So, I don't believe in god.
There is no reason for god to exist. Reasons such as "how we were born/came to earth/evolve" can be answered by science.
I don't believe in miracles. They can or will be answered by science(and that goes to all miracles such as "I clinically dead and doctors said that only a miracle could save me, and suddenly I was alive!").
I believe in free will. If god knows everything, then he knows what we are going to do, so we don't have a free will.. That goes against what I believe for free will, so I don't believe in god(at least he shouldn't know everything:D)

I guess I will go back to computer science now.. I cried enough :)

Sunday, November 12, 2006

Merge vs Hashing

Last semester I did search engine project. That included the implementation of a search engine and a report where I had to do some theoretical analysis of the problem and describe my methodology and implementation. My previous post about this project could be found here.

I went to the exam and I got about 8(with base 5 and maximum 10). I didn't like the grade and the external examiner wanted to defend his opinion. So, he told me why I didn't get a higher grade. Let me explain the problem first.

Suppose that we have two sorted tables with integer values. At one part of the implementation I had to write an algorithm to find all the common integers at the two tables.

What I did, was something like the implementation of Merge algorithm. That algorithm is used in Merge sort in order to take two sorted tables and combine(merge) them into one, that will still be sorted. The complexity of this algorithm is O(n), where n is the total number of the elements(the sum of the lengths of the 2 tables).

What he said that I should have done in order to make it faster, is to use hash tables. What he suggested was that I can use hash tables instead of arrays, then check which one is the smaller, then take it's elements one by one and check if they exist at the other table. That will result at maximum half "operations" comparing to the Merge algorithm, because it will check only the n/2 elements and each check can be done in O(1) since we use Hash tables. The complexity in terms of big O notation is still O(n), but if we want to be a bit more precisely, we could say O(n/2).

Unfortunately for me, I didn't know much about branch predictions at that time and I couldn't defend my algorithm, which seems slower at first glance. But since they are both linear complexity algorithms, one could go more into comparisons.

Now, at my thesis, I am working again with these, and I can show by experiments and by theory based on branch predictions that my algorithm was faster. The cpu's architecture benefits predicable loops instead of accessing random blocks at the memory.

Below I have a graph of the results of some of my experiments.
The first raw of the table is the number of elements at each table(1.000,2.000..)
The numbers in the table is the time in milliseconds that each algorithm spent to find the amount of common elements.

Monday, November 06, 2006

Shivaree - I Close My Eyes

Το video clip το έχω δει πάνω από 7 φορές και κάθε φορά ανατρίχιαζα..
Τι να πω;
Φωνάρα! Στίχοι που σε αγγίζουν.. Βλέμμα που μιλάει μόνο του.. Τέλεια συνδεδεμένη μουσική..

I'll dream of ways to keep you occupied
So I can lock you up we'll call it classified
So right
You're mine tonight love when I close my eyes.

Saturday, November 04, 2006

Multiple booking

The project that I am working with at the moment is a flight booking system that could allow the user to book many seats at once. That means that the user should be able to select the flight and the number of seats that he wants to book, book these seats, and then start filling the details of the passengers one after the other.

The obvious problem is that if you don't lock some tables somehow, it is possible that while the user fills in the details, another user could book his seats, and that could cause that there are no more seats available even though the user has entered his information and thinks that he booked..

The table that are used here are [ Passsenger, Flight, Booking ]
Where obliviously Passenger has the details of the passengers, Flight has the details of the flights and Booking has the PassengerID and FlightID to uniquely identify a booking.

The only "nice" solution that I found is the following.
When the user presses the button to book( s seats at f flight), I create s Passengers with only temp data(actually only firstname='temp'). Then I create s Bookings of these Passengers. Then the data layer returns a List that contains the newly created PassengerIDs and BookingID. This list will be used to fill in the data of the passengers and some more data about the booking(delivery address, meal choices etc)

Do you have any better solution?
Mine is working, but I don't like it a lot. I need to access the database many times and that costs when we are talking about a web application. However, I think that you have to access the database at least twice if you want to do something like that since you want to book in advance and fill in the data later.

I am working with aspx and c# with .Net Visual Studio 2005 and SQL Server 2005.

Friday, November 03, 2006

FireFox 2 (updated)

I like FireFox 2.

There are many many improvements and new features in Firefox 2.
The official website describes them better than I could possibly do :)

The only (but important for me) thing that I didn't like, is that opening many tabs would cause a scroll bar to appear to "help" me navigate thought tabs. That will result in preventing me from having an overview of my tabs.

Since most web pages have an icon(logo) that appear on the tab, even with very small tabs you can see where is what you are looking for(from your own reading history). Furthermore, with the old version you could know how many tabs you have opened(how much more you have to read :D)

For these two reasons, I thought it was worthy to spend some time trying to find how to switch to the 1.5 view of the tabs(without tab scrolling). And I found it.
Maybe you agree with me and you also want to do the same, so, here is how you can do it.

To disable tabs scrolling do:
- Enter "about:config" in the url bar and press enter
- Type at the filter "tabm"(the only result should be "browser.tabs.tabMinWidth")
- Double click on it and change the value from "100" to "0"
- Restart Firefox


You will need the above only if you open more than (screen width / 100) tabs..
And that's because the default width for each tab is obviously 100.
And what I like very much, is that you can "undo close tab", which is REALLY good if you are a person like me (you open a lot of tabs and close them before the information of the tab is sent from your eyes to your brain :D )

Sunday, October 29, 2006

Μας διαβάζουν από τον Republic

Ω, ναι.. Ήρθε και απάντηση με email.
Εν ολίγοις, από την απάντηση μπορεί κανείς να διακρίνει έναν άνθρωπο αγανακτισμένο και εκνευρισμένο από τα blogs και τον τρόπο με τον οποίο κάποιοι κάνουν κριτική.

Λογικό. Τον τελευταίο καιρό που διαβάζω blogs σχετικά με τον republic, έχω διαβάσει διάφορα υβριστικά σχόλια κατά του Κομνηνού. Εντάξει, μπορεί ο άνθρωπος να μην καταλαβαίνει τι λένε τα computers και οι αριθμοί. Μπορεί να μην ξέρει από design, usability, website development. Δεν είναι όμως αυτοί λόγοι για να του μιλάει ο κόσμος με τέτοιο ύφος.

Ο Κομνηνός έχει ένα ύφος υπεράνω, προσπαθεί λίγο να μειώσει ότι δεν τον ανεβάζει(όσοι κατακρίνουν τον republic και την ιστοσελίδα δεν ειναι republic-ανοι και δεν τους αξίζει αυτός ο σταθμός, λέει). Αλλά και πάλι, και ας έχει αυτές τις απόψεις, σχόλια του στυλ "Κομνηνέ να πας να γαμηθείς", "Μαλάκα Κομνηνέ" κτλ, με θλίβουν. Βρήκαμε τα blogs στα οποία μπορούμε να γράφουμε ότι θέλουμε, και το έχουμε ξεφτιλίσει νομίζω. Μπορείς να εκφράσεις την δυσαρέσκεια σου και την αντιπάθεια σου με πολλούς τρόπους. Γιατί να διαλέξεις αυτόν της βωμολοχίας; Κρίμα.

Όσο για την ιστοσελίδα του republic, θα περιμένουμε καμιά εβδομάδα να δούμε αν θα αλλάξει τίποτα και μετά τους ξανακράζουμε.

Friday, October 27, 2006

Απογοήτευση από το website του Republic Radio, αλλά και από τον υπεύθυνο του σταθμού

Επειδή τυχαίνει να είμαι ένας από τους πολλούς fan του σταθμού, ενδιαφέρθηκα λίγο παραπάνω από το απλώς να ανακοινώσω εδώ τα προβλήματα του σταθμού..

Έμάθα ότι ο Νίκος Κομνηνός(Διεύθυνση προγράμματος) έχει blog και διαβάζει και μερικά blogs που αναφέρονται στον σταθμό (Lipi, Ζαφ).
Βρήκα λοιπόν το blog του Νίκου Κομνηνού και του άφησα ένα comment και link στο προηγούμενο post μου. Περίμενα λοιπόν ένα σχόλιο του ή μία αλλαγή στο site. Σχόλιο δεν έκανε σε εμένα και από ότι έμαθα, στους zaf και lipi, έβγαλε χολή αντί να πει ευχαριστώ. Είναι απογοητευτικό να βλέπεις ότι κάποιοι άνθρωποι δεν εκτιμάνε την κριτική και αντιδρούν με τον τρόπο "αν δεν σου αρέσω ελαττωματικός, μην με παίζεις". Κρίμα για αυτόν(και για τον σταθμό που έχει αυτόν).

Η ιστοσελίδα παραμένει εκεί με τα υπάρχοντα λάθη και προβλήματα.
Για να μην τα ξαναγράψω, τα προβλήματα 1-6 του προηγούμενου post, είναι ακόμα εκεί..
Για το 7 ακούσαμε υποσχέσεις και περιμένουμε την εβδομάδα που έρχεται για να δούμε αν θα υλοποιηθούν.
Η πρόταση μου για mailing list είναι σαν να μην έγινε ποτέ..(Να σας το κάνω εγώ σε 30λεπτάκια να τελειώνουμε;)

Στην λίστα με τα προβλήματα θέλω να προσθέσω και μερικά που βρήκαν οι lipis και zaf

1. Έτσι για την ιστορία, αν θέλει κάποιος να επαναλάβει το bug που εικονίζεται στο post, ας πάει στο link της επικοινωνίας (τον φάκελο), και ας πατήσει κατευθείαν το submit (αν το δει, γιατί η σελίδα είναι σχεδιασμένη για 1280x1024). Από εκεί και πέρα όλα τα κείμενα εμφανίζονται στα ΞΟΞΟΞΞΩΏΩ.
(comment του ζαφ στο post του)

2. Αν μεταφέρεσαι από το ένα εικονίδιο στο άλλο χρησιμοποιώντας τα βελάκια, τότε δεν ανανεώνεται το content του εικονιδίου. (screenshot στο οποίο το εικονίδιο είναι αυτό του pong, αλλά δίπλα έχει τα στοιχεία για επικοινωνία!) Αυτό δεν είναι προχειροδουλειά;;;

3. Ας μην εκφράσω την αγανάκτηση μου όταν συνειδητοποίησα ότι έχει ήχο το pong!

3.5 Το παιχνίδι λέγεται pong και όχι ping pong!!(Lipis)

3.9 Δεν καταλαβαίνω γιατί το πρώτο εικονίδιο αφού μπεις στο site, είναι το pong!

Και λογικά τι έχει να πει ο Νίκος Κομνηνός για όλα αυτά;
-"en pasi periptosi osoi den pianoun tin filosofia tou site malon den inai republicanoi" (απόσπασμα από comment του στο post του lipi)

όσο για τους BeetRoot, νομίζω ότι ο Tyxod τα λέει καλά. Στο site τους έχουν μία λίστα από πελάτες. Μην μπείτε στον κόπο να πατήσετε πάνω σε έναν από αυτούς, γιατί φυσικά δεν υπάρχουν links. Υπάρχει επίσης και μία λίστα με βραβεία, αλλά πάλι δεν παίζουν links. Λες και έχουν κάποιο πρόβλημα τα παιδιά. Πάντως, βλέποντας λίγες από τις δουλείες τους, οφείλω να παραδεχτώ ότι είναι πολύ καλοί designers. Αλλά ως εκεί.. Τώρα που το σκέφτομαι, παίζει να μην ξέρουν πώς να φτιάξουν mailist και να στέλνουν εκεί τα news..

Wednesday, October 25, 2006

Απογοήτευση από το website του Republic Radio

Ο καλύτερος σταθμός της πόλης μας(Θεσσαλονίκη) και ίσως της ολόκληρης της Ελλάδας, είναι ο Republic Radio 100.3. Φυσικά είναι προσωπική άποψη.

Επειδή τα τελευταία 2 χρόνια ζω στο εξωτερικό, η σχέση μου με τους ελληνικούς σταθμούς περιορίζεται σε αυτούς που είναι καταχωρημένοι στο e-radio, οι οποίοι είναι πολλοί. Έτσι μπορώ να πω ότι έχω και άποψη για το τί παίζεται στην Ελλάδα γενικότερα.

Το θέμα του post όμως δεν είναι το πόσο καλός είναι ο Republic Radio(πράγμα που εύκολα επιβεβαιώνεται τώρα που κάνει και broadcast), αλλά η απογοήτευση από την ιστοσελίδα του. Συγκεκριμένα, πράγματα που με πείραξαν/χάλασαν/εκνεύρισαν/ενόχλησαν είναι:

1. Το mouse στο welcome screen δεν έχει καμία σχέση με τον σταθμό. Το μόνο που καταφέρνει είναι να κάνει δύσκολη(την πρώτη φορά) και αργή(τις επόμενες) την είσοδο μας στην ιστοσελίδα. Δεν είναι απλά ένα loading screen, αλλά πρέπει ο χρήστης να πατήσει και το flash-mouse για να μπει. Ποίος ο λόγος;

2. Το ότι όλα κουνιούνται, είναι μεν ευχάριστο και όμορφο την πρώτη φορά, αλλά κουραστικό στην συνέχεια.

3. Στο Republic's Line up(που είναι το πρόγραμμα του σταθμού), θα έπρεπε να δείχνει την ώρα Ελλάδας, και όχι την δικιά μου(Δανίας).. Την δικιά μου την βλέπω και στο pc μου.

4. Τα djpicks, airplay, news θα έπρεπε να μπορούν να γίνουν copy (να είναι σε plain text) είτε για να τα βάλω στο calendar μου, είτε για να τα μοιραστώ με τους φίλους μου, είτε για να τα κρατάω κάπου στο pc μου καταχωρημένα.

5. Το κουτάκι που πρέπει να πατήσεις για να έρθει το Links σε πρώτο πλάνο, είναι πάρα πολύ μικρό και όταν όλα κουνιούνται, καταντάει εκνευριστικό.( Άσχετα που κανένας δεν το χρησιμοποιεί)

6. Το website είναι τρομερά βαρύ. Αν το αφήσεις 5-10 λεπτά ανοιχτό χωρίς να κάνεις τίποτα, αρχίζει να "σέρνετε" ο browser(firefox χρησιμοποιώ) και δεν μπορείς να συνεχίσεις το surfing αν δεν κλείσεις το site του republic. Αυτό και αν είναι εκνευριστικό!!!! Έχω την εντύπωση ότι ο λόγος που γίνεται αυτό είναι ότι εν μέρει ο garbage collector του Flash 8 δεν δουλεύει το ίδιο καλά με τον αντίστοιχο του 7(benchmarks), αλλά κυρίως γιατί έχω την υποψία ότι κάποιο bug έχει το website.

Τέλος, κάποιες γενικότερες αλλαγές που θα βελτίωναν την ποιότητα του internet radio.
7. Το bitrate του internet radio είναι πολύ χαμηλό και χάνει πολύ σε ποιότητα ο σταθμός. Οι περισσότεροι ελληνικοί σταθμοί εκπέμπουν από 48kbps και πάνω. Επιπλέον, ο server γεμίζει συχνά και δεν μπορούμε να συνδεόμαστε κάποιες φορές.

επιπλέον, αυτό που λείπει απο τις υπηρεσίες του site είναι ένα mailing list στο οποίο θα στέλνονται τα νέα και τα events. Δεν είναι δα και τόσο πρωτότυπο ούτε τόσο δύσκολο..

και να σημειώσω οτί χρειάζεται να αφήσετε κανένα 20λεπτο(εξαρτάται και από το pc) ανοιχτό το site του republic για να παρατηρήσετε αυτό που περιγράφω παραπάνω. Αλλά το θέμα είναι ότι το πρόβλημα υπάρχει

Sunday, October 22, 2006

Multi-Touch Interaction Research

Multi-touch sensing enables a user to interact with a system with more than one finger at a time, as in chording and bi-manual operations.

The guy that coordinates the project is Jeff Han

Friday, October 13, 2006

New Home

And finally I have a new home!
I am living in Øresundskollegiet!!

I now have my own kitchen (small but ok for one person) and my own toilet(of course).
The good news is that I will have some space to host friends!!
Many friends and relatives have told me that will come to visit me..
Let's see.. I am expecting and hoping to see all of you (the ones I have talk about it.. don't come uninvited :P )

I just bought my new bed, desk, room lamp and many many smaller stuff and I am very happy :)

( and a small secret.. maybe I will get a job.. I will go for an interview in two weeks.. I just applied for fun and they said they want to see me.. :D )

By the way, my thesis is going as planned and everything is fine :)

Friday, October 06, 2006

Internet Radio

Since the time I came here in Denmark to study, I have always been trying to find a good internet radio station. In the beginning I was using shoutcast. At that time I was listenning mainly ambient and house. It was then that I found out about Station Ripper and I made consecutive posts about it and about a tool that I developed that helps you to organize the ripped mp3s.

Station Ripper part 1
Station Ripper part 2
Station Ripper part 3

After some time, I started using the itunes interface for internet radio and I found some nice internet stations but nothing great..

But, since yesterday I am amazed by Pandora. It's not a simple internet station. You type the artist that you like and you can be sure that it will play similar music to the one of your favorite artist's. It's great. You can vote if you like a song or not, to bring the station closer to your expectations.

I guess that the developers of pandora utilized the same information as the guys that developed the music plasma.

Saturday, September 30, 2006


New Wave Of Heavy Metal Blogging is on the air..
Guess what.. It's a new blog created by me and some friends of mine and we are going to talk about heavy metal.
You can see the bands that I like and I will probably talk about, at my profile :)
and if I discover another one nice band, I will probably say it.. It's not a secret :)
Fell free to add the blog at your atom/rss reader :)

Friday, September 29, 2006

Music is the answer

New blog about Music!
DJ GiNikolos just created his blog and he is posting about music.
Mostly he is going to talk about tribal/progressive/electro house and trance.

Wednesday, September 20, 2006

Wind Mills

Every time I was seeing wind mills I was getting more and more curious..
I remember myself making wind mills with paper and I was making the wings very big..
I remember the old wind mills with very big wings as well..
But why the new wind mills have soooo thin wings?
I couldn't resist searching for it.. And what I found was nice :)
Actually, a simple search on how stuff works, revealed the answer :)
I just had to type "wind power" at the search box and voila!

So, as far as I understood, it is not the wind's mass that moves the new wind mills.. It's the aerodynamic forces. The wings are now like blades and they have the shape of the wing of an airplane. It's the same power that makes the airplane take off.

This nice image shows what I mean..

More stuff here
YEEESS!! (It's been a week now I am trying to remember why I have heard about aerodynamic principles before.. And I just remembered!!)

I know from sailing!! Yeah.. Now I remember.. It's the same power that moves the sailing boats. The racing sailing boats and all the sailing boats I guess.. This analysis is nice.. The front sail is like the wind of the airplane and the second(if exists) creates a path for the air between the sails in order to get all the advantages from the wind and get this power while being able to turn! And as I remember, this power from aerodynamics, is much more powerful than just the power of the wind mass. I won't say more..

About sailing, you can read this and this.

I am very happy that I remembered these :D
I want to go for sailing again :(

Anyway, the subject was wind mills and how they rotate nowadays :)
By the use of aerodynamics..

Thesis Paper

Last week I started my Master thesis. I didn't start writing anything yet of course, but I am doing a research on the relevant theory. What I am going to write about is Hash tables.

My supervisor, Rasmus Pagh, has already published his research and his proposal on better hashing algorithms. An easy to read version of his idea and proposal could be downloaded from here.

We will now go further and investigate other benefits and advantages of his proposals. In particular, we are going to use his algorithmic idea to make comparisons of two sets for duplicated words faster if possible.

The problem could be described as the following. Suppose that we have 2 sets with words. We want to find words in the first set that appear in the second set as well.

The two main competitive algorithms are the Merge algorithm and the use of hash tables. The Merge algorithm is the same one that merge sort utilizes. The use of hash tables, allows us to use one hash table for accessing words and the other one for searching for existence of words.
Both algorithms run in linear time. The proposed algorithm also runs in linear time, but I am trying to make it faster than the others by avoiding branch mispredictions(take advantage of branch predictions) and decreasing cache faults.

Wish me good luck :)

Sunday, September 17, 2006

Fotos is back!

Welcome back to the blog community Fotos.

We are excited waiting to see your new style and read all you have to say about your new life :)

(Fotos used to write about big constructions and edge technology and architecture buildings. From now on he is going to write mostly about himself and his life.. That's as far as I can understand from his blog)

Monday, September 11, 2006

Command & Conquer Generals VS Warcraft III

Lately I have been playing CC Generals Zero:Hour and I was trying to compare it with Warcraft III. After spending some hours at lan parties with my friends playing CC, I concluded that there is no comparison at all!!

* In CC you have unlimited money!!! (Come ooooon...)
* In CC there is no army limit!!!
* In CC you don't need micro(and it's not easy to do it), since you have HUGE army and you can just "attack ground".. And, you always have the money to build more :)
* In CC you don't have hit points(in points), attack speed(in any form), attack damage(in any form), armor, movement speed.. Come ooooon..

What kind of strategy game you play if you cannot calculate some basic things?
And you can play forever, because you have have unlimited money...

Even more,
You don't breath with your ghoul..
Your heart doesn't beat with your ghoul's...
You don't believe in Mitsos..
You don't "cry" for losing Mitsos..
You don't shout ("Oxi to mitso re gamwtoooo!!")

Maybe on day I will meet a guy that is a pro gamer at Zero:Hour and I will recall everything I said :)

( I will update this post if I remember more disadvantages of CC )

Friday, July 14, 2006

Tennis Scoring

Every time I was watching a tenis game I was wondering why they are not counting like all the other sports that I know..
In case you didn't know or didn't notice, in tennis, the counting is: love, 15, 30, 40, game. And then you start the next set.
My friend Google, helped me to find some answers.

Probably the counting is based on a clock face, and 45 was abbreviated to 40, probably because it is easier to pronounce. About "love" which means 0, there are 2 scenarios. It comes from "l'oeuf" French for 'egg' (The use of 'goose-egg' for a zero score is common in baseball), or it just means that the game is for love and peace in the world and stuff like that.

This counting system seems reasonable for that time, when the number 60 was considered "good" and "complete" number, in about the same way we consider 100 a "good" and "round" number. I still don't understand why they keep it and they don't make it 0, 1, 2, 3, 4. Actually, currently, you can use both counting systems, but the official is the old one.

Tuesday, June 06, 2006


A friend remind me something that I was trying to forget for years now..

Today is the day that antichrist is visiting our world..
I want to ask for forgiveness from anyone I hurt and anyone I made suffer with any of my actions or words.

See you hopefully in paradise, but I will probably be in hell :(
(if it is not this year, it might be in 10 years and so on.. )

Thursday, May 18, 2006

Ας ξυπνήσει κάποιος τους επιστήμονες επιτέλους!

Αν και όλοι ξέρουμε οτι ο θεός έπλασε τον άνθρωπο απο λάσπη και νερό, ο θεός έφτιαξε τον κόσμο κτλ, οι επιστήμονες συνεχίζουν τις έρευνες τους..

Μα γιατί; Σε αυτούς δεν το είπε κανείς οτι έχει βρει η θρησκεία τις λύσεις για όλες τις απορίες του ανθρώπου;
Συμβαδίζουν μωρέ η θρησκεία και η επιστήμη(ή αλληλοκαλύπτονται), αλλά η θρησκεία τα λέει απλά για να τα καταλαβαίνουμε, ενώ η επιστήμη κοιτάει το πρόβλημα στα μάτια..

Τί σχέση έχει όμως η κυριαρχία του ανθρώπου ώς είδος απο την μέρα της δημιουργίας του και η αγάπη του θεού για το τέλειο δημιούργημα του, όταν είμαστε ζώα και έχουμε κοινό πρόγονο με τον πίθηκο; Ήταν πιο εύκολο για τον άνθρωπο τότε να συλλάβει οτι είναι λάσπη και νερό, απο ότι να καταλάβει ότι ήταν κάποτε κάτι σαν πίθηκος το οποίο στον κατακλησμό του νώε μισοπέθανε και ότι έμεινε έγινε σιγά σιγά άνθρωπος;

Όταν λέω ότι κάποιος πρέπει να ξυπνήσει τους επιστήμονες, μιλάω για τα παιδιά που ασχολούνται με την εξέλιξη και για αυτους που ασχολούνται με την αρχή του σύμπαντος..

Παλιότερες μελέτες πάνω στα ίδια θέματα εδώ και εδώ

Sunday, May 07, 2006

Search Engine Project

Last week I started my last project before my thesis. It's about implementing a search engine and consider the complexity of searching algorithms. So far, what I have realized is that it is more about choosing the right data structure to store your data, than optimizing the search algorithm.. At least up to now, the only thing I was doing to optimize the search was to change the data structures.. This week I will focus on the search algorithm and some extra features..

My personal motivation is to make the search faster than the one's implemented by other students. I have a friend that did this project a year ago and I have some measurements from some other students that did it 2 years ago.. Let's see.. I have 3 more weeks..

Thursday, April 06, 2006

Station Ripper, part 3

I guess that is the final update for this topic.

I just fixed most bugs I could find and I made it nice and easy.
Also included the possibility to delete automatically all the folders that have one mp3, so that you don't get "empty" folders.. That could be done either when you create the folders(and delete only the currently created folders with one mp3) or to the existing folders(and delete even previously created)

In that way, you can get the most played artists and keep only these( keeping in mind that at least in chill out(the one I am ripping at least) most popular might possibly mean best, since there is not much business involved(compared to house/dance music))

Currently I have about 10GB mp3s of chill out and flamengo :)
and still in the beginning..

Oh, and very important, ripping stations is legal!
So, you can create your legal mp3 collection!!

"Fortunately, recording Internet radio still remains in legal limbo, and there's some precedent for it being legal, since you can record regular broadcast radio." <source>

Wednesday, April 05, 2006

Station Ripper, part 2

As I wrote at my last post, I was planning to do something to organize the mp3s that you can rip from StationRipper. So, I made an attempt..

I made a very simple program, at which you define the folder that contains the mp3s from a specific station(could even be other mp3s that have the same naming format), and it automatically(of course, that's the point of doing it..) creates the necessary folders and puts the files in them.. So, if a station broadcasted 3 songs of Muse, you will have them in the same directory, which will be Muse :)

I have uploaded the source files (in Visual Studio 2005) and an standalone .exe file.

Don't expect any extreme intelligent programming..
I just finished programming and it is 6.30 in the morning..
But still, it is working fine.. I have tried it at about 2000 mp3's :)

Friday, March 31, 2006

Station Ripper

You have found an online radio station that you like very much and plays great music?
I have great news for you!!
(sounds a bit like telemarketing, right? :D)

Last week a friend talked to me about StationRipper and I found it interesting enough to try it..
It is program that can rip/make mp3s from the online radio stations. It can "listen" to many stations simultaneously and rip. It automatically separates the songs and puts them in different mp3s and separates mp3s from different stations in different folders. It is very nice.. I have already 1 GB of new music and I have it only one night ripping from 3 stations :)

You can select your favorite stations from shoutcast of course and from a preselected list suggested by StationRipper.. Maybe more.. I didn't explore everything, but still I like it :)

I recommend to try it at least..

I am planning to write a program to go into the folder of the station, and group all songs from the same artists in separate folders. Then I will have artists collections of specific genres (since the stations usually broadcast music of one or two genres).

Saturday, March 25, 2006

Windows Update

I was amazed/impressed/happy when I learned how to bypass windows cdkey authentication to download windows updates from the official windows site!!

And especially because it is sooooo easy :)

Description here
Thanks to Poul

Wednesday, February 08, 2006


If you have ever been at casino, you have probably seen the table of the last occurred numbers at roulette..

Also, at Lotto and other games where the player selects numbers, some people keep track of the latest results..

There are 2 totally contradicting points of view.
There are the people that believe that it is meaningfully to keep track of the results
and there are these people that say that it is stupid..

Let's use a perfect dice to explain the two ways of thinking..
(by perfect I mean that you cannot foresee the result of rolling the dice.)

The defenders of the first opinion, say that if you roll the dice A times(A should be BIG number), the number of times you get the "1" should be about A/6. And as A increases(we roll the dice more and more times), the “probability of getting "1" A/6 times gets higher.
So, If we have rolled a dice 20 times and we see that all the times we got "1", it is very likely that "1" will not come the next time, because the other numbers have to occur as well with about the same probability if we were to roll the dice 100 times for example.. And if we get "1" again, then the probability to get any other number, increases comparing to the probability to get "1" again.

But, others believe that all the above analysis makes no sense since the experiments are independent from each other. That means, that the rolling of a dice one more time, has nothing to do with the result of the previous rolling..

I hope I made myself clear.
I guess that the second view is the correct one..

Saturday, January 28, 2006

Evaluation of last week

So, I followed some of my friends suggestions..

I met new people,
I played poker,
Went for shopping
Went for coffees and beers,
Drank Beers,
Drank some beers more,
Drank white wine..

Difficult life :)

I didn't have to learn C# since I will take the course
Business programming with the .NET framework

Tuesday, January 24, 2006

[30] Exams (Complete)

I was expecting to do a bit worse, so I am pleased with the result.. Although I don't have the grades yet, I guess(at least hope) that I pass both courses.

* Object Oriented Programming
* Efficient AI Programming

And I passed the project I did about
Programming Context-aware Mobile Systems (Bluetooth on Mobile Devices)

So, I have one week now free.. Until 1st of February I think..
What can I do?
Learn Photoshop?
Learn Flash?
Learn Visual C#?
Become Alcoholic?
Meet more people?
Learn more about the city I live?
Play WOW?
Play another game(Command and Conquer for example)?
Relax and just sit and chill and think about life and who we are and where we are going?

I am more anxious now than when I had exams..
What to do when you have nothing to do?

Wednesday, January 04, 2006

Back to Denmark

When I left Greece, the temperature was about 17C and the sun was shining.
After 5 hours of traveling, I arrived to a white/dark Copenhagen of 0C..
It is not snowing, but there is snow everywhere :)
And it is still getting dark very early :(

And after about a year of having my desktop computer on my desk, I finally made it work!! I hope at least(it is still installing windows.. You never know..)
But I have great excuses for being so late..

1. I couldn't find a good, cheap and easy to carry tower(tower, only the metal thing).
- solution: check and buy online and they bring it home :)
2. Windows couldn't recognize my SATA drive
- solution: download motherboard's drivers for SATA.
3. I had to put the drivers in a floppy disk and then put them at the desktop, while neither my laptop nor my desktop have floppy disk drive.
- solution: buy a USB floppy disk drive.

Anyway, the thing is much more difficult to face it than to describe it :)
At least now I know exactly what you need to do..
So, if you have Asus motherboard(I have a7v600-x), go to asus download website and download the latest drive for RAID controller. The zip that you will download, contains a folder DriverDisk and inside this folder you can find the utility MakeDisk.exe, which will create the floppy disk that you want.
Then you go to the problematic pc, put the floppy in the pc, boot from the Windows CD, in the first 5 seconds you press F6(you can see at the bottom of the screen a message saying that if you want to install RAID or other drivers press F6(or something like this)). After pressing F6, life is easy :)

I think that I can see my Windows XP log in screen now :)