It’s been more than a month since this competition started, but the time ran very quickly. Today I’m going to summarize what I’ve used to create my entry and what I’ve learned.
Final application available at http://winphp.juokaz.com:82/.
Goal was:
My project will allow people to upload huge collections of photos (probably archived in one zip file) and get nice online gallery.
I decided not to use archived files and simply allowed to upload multiple files using Silverlight control, but pretty much everything left the same. My approach to this competition was to focus on technologies and not on functionality. That’s why I spent huge amount of time creating abstractions and making parts of application to be very customizable and not adding a lot of functions.
Functions in my app are really easy to add and in a matter of some lines one can add various parameters to images (tags, name etc.) and then sort/filter them – a lot of hard work is done under the hood. Silverlight based gallery is also absolutely independent from whole application and will work as long as front-end supplies correct gallery xml file, hence it can be easily customized.
Rules had 4 criterias:
- Application originality – I think I passed this one
- Completeness – I have done everything what I’ve wanted
- Use of Windows specific features/services – uses COM objects, Silverlight
- Documentation of the process – articles in this blog and a lot of tweets
I think I have done everything that was required and now will try to push this application even further. Maybe Microsoft itself will show interest in it, because what I’ve done and used has been key topics in MIX 09.

Silverlight part and images processing is based on Jellyfish library. At first I used Microsoft libraries, but soon I got stuck because of lack of documentation and functionality. However Jellyfish is far from perfect – a lot of things are hardcoded, made private and hard to change. Also, it has some functions which are useful only in rare cases and need to be removed. For example, each mouse move, click and scroll used to look through all images in scene (using loop) and detect which one is under the mouse cursor. Very inefficient (especially if you don’t need it).
Zend Framework was used to power whole website. I didn’t find any difference running it on Windows from running on Linux, so I can’t say much about anything specific. However, I decided to use the new Sql driver implementation for PHP, but it wasn’t included in Zend Framework supported adapters list. That’s why me and Rob Allen started a project at codeplex to create an adapter for sql driver. It’s almost complete and at least both of us use it for our projects – everyone is free to test it and suggest changes though.
Windows was good enough. I haven’t used Windows for any development for more than two years, but it worked surprisingly good. NetBeans works the same in all platforms, but Visual Studio was almost a new thing. Nevertheless, both have done their job. IIS was a new thing too, but I didn’t find a big difference for a developer, only that it allows to change everything without touching config files – I found it faster when settings are in multiple places.
Community is outstanding. Stuart Herbert, Rob Allen, Alton Crosslen and organizer Bram Veenhof were all chatting on Twitter and it felt more like a community project and not a competition. Also the level of entries, from my point of view, is really high – this competition doesn’t had a lot of entrants (only slightly more than 10), but all of them are really competitive.
It was really a great time.







