Today I had to write an assignment for my Evolutionary Algorithms course, which was to implement a genetic algorithm to solve the Traveling Salesman Problem. I wrote the Python code, it worked well but it took a while to find a good solution with 100 cities, and I realised it would be a few days before I could get a solution for the dataset with 3000 cities. I definitely needed to speed up my program somehow.
I decided to give Cython a try.
A few days ago, I tried to switch to BuySellAds to do my advertising. I figured that if I could get enough money to give the server a bit more memory, everyone’s experience would be improved. You may also have noticed that I changed the site’s domain from poromenos.org to korokithakis.net.
I tried to join the site a week ago and they turned down my application. When I asked them, they said that I didn’t have enough views.
In case you didn’t know, the default WPA key in Thomson/SpeedTouch routers is generated from the router’s serial. By some strange coincidence, so is the router’s SSID, which means that if you know the SSID (which is public knowledge), you can brute-force the serial.
There are programs to do this already, but they were not future-proof or open enough to work now, so I wrote a small Python script to do it. Just enter the last part of the router’s SSID (e.g.
These days I am trying my hand at a rewrite of Dead Man’s Switch, to add more features and generally improve the service.
One of these features was being able to add multiple emails in the “recipients” field, and I wanted to do this as cleanly as possible, so I decided to create a Django model with custom validation. This was not immediately obvious, as the docs didn’t mention much.
Well, I just got an Intel X25-M 160 GB SSD for my laptop (a MacBook), and I wanted to migrate all my partitions (I was triple-booting OS X, Ubuntu Linux and Windows 7) to the new disk.
This turned out to be less than a breeze, since there are a few caveats and the entire process takes time, but I will detail it here and maybe save some of you some time.
**WARNING: Don’t try any of this if you don’t know what you are doing!
A while ago I stumbled upon GitHub, which calls itself a “social coding” website. Initially, it seemed to me a code repository like all others (Google code, Launchpad, Sourceforge, etc), but using it more and more I came to realize there’s a pretty interesting twist to it.
You see, with the advent of distributed VCSes, people don’t need to work on a central server any more. They can just commit their changes to basically wherever they have write access.
So, yesterday I took a day off and decided to create something. I wanted to use a new web framework and various other things to create a service, so I decided to create an IMDB API for accessing shows’ episode names.
For my web framework, I used Bottle. It’s very easy to write in (the whole thing took a minute to learn) and very light (only one file to include).
If you are a Greek Cypriot, you will be glad to learn that my company, Spoon ltd. has launched our latest creation, aggeliesnow.com.
It is a classifieds site for Cyprus, and it’s free! So go add all your classifieds in there.
Still here? Go!
As you are probably aware, there is a lot of Windows malware that makes your PC load more slowly, have annoying popup windows or even steal your data and files.
Recently, I discovered a fantastic program that can help you get rid of all this. It is Sandboxie. Sandboxie allows you to run programs in a protected area of your computer (a sandbox), so they can’t write anywhere.
Those of you who have been following this blog know that I like web development, so it was only natural for me to start my own company. Together with a friend, we founded Spoon ltd.
Spoon is a design company that specialises in web/print design and software development. We're just starting off, so we're only now getting our first jobs. We're expecting to have a nice portfolio soon, so visit once in a while.
If you have any design work you need done, we'd be happy to give you a quote, just contact us from the contact page. Thanks!