Thursday, February 4, 2010

Skeinforce

Well it all started with iMac. Hypnotised with its beauty we bought one in May last year. One problem we had was our password management program Zippylock was Windows only and required .NET. I know this because I know who wrote it (bloggerboy)!

Earlier my mate Ricardo showed me a wrapper he wrote around Skein hash functions which grabbed my attention. Skein is a piece of beauty. Well it is small, coded in C, portable, very fast, and very powerful. You can go up to 1024-bit encryption with Skein. Behind Skein there is a good-looking team of security gurus and my security idol Bruce Schneier.

So I said OK. How about I write a little utility like Zippylock, this time x-platform though. So I wanted a x-platform GUI and x-platform compatible binary serialisation with locale support. What this means in short, I wanted to be able to transform my database file across Windows and Mac. Say I come to work, and enrol to a new professional forum. Then I add my user credentials into the database, save the database file in my USB drive, and use it on my iMac at home.

I also wanted to have a much simpler user interface. So the idea of designing something like Google suggest popped up. Google suggest has been introduced by Google recently, you know the thing, as you type you see a list of most popular options and the list narrows down with your typing.


Miraculously the x-platform development kit Qt from Nokia had a sample code of a widget on Google suggest metaphor.

I kicked off project Skeinforce here in Negative Matter on the 18 November 2009. Luckily all pieces of the jigsaw puzzle joined well and I've just finished the project earlier than I anticipated. It was great fun despite my wife’s fair protests of me neglecting house work and not communicating (as always she was right.)

Along the way I learned Qt (what a brilliant toolkit!), kept my programming mojo alive (I can’t live without coding), learned a few Unix and Mac tricks and in the end I had a nice little utility that I dreamed for. I guess the best part of being a developer (who doesn’t have kids;) you can design your own thing.

Anyway this is a free tool, and could be useful to many. You can download it from the following location (I'll also make the source code available soon.) Feedbacks are welcome.

http://members.iinet.net.au/~coruh/skeinforce/