Tuesday, November 1, 2011

Project Genesis: Report 7

Oops! Forgot to write the report yesterday. Got caught up in all the exciting work. But here it is.


Last week
Last week I took some time off the Genesis Project so I could prepare and release our Shang update. It was really fun. I updated the website with an awesome new tour feature. I also managed to polish the code some extra before the release. I actually moved pretty much all of the startup code around. I managed to get the startup time down to just a forth of what it was before. Stoffi had actually started to see a longer and longer startup time during the development of Shang in the summer. This little update got rid of that and we have actually landed on a better startup time than Xia.

One big part of the startup is the scanner. So I also had to improve the scanner. It had also been getting slower and slower during the development of Shang and was about 10 times slower than Xia. But I moved some code around there as well and cut some updates. One really neat trick was to only update the progressbar every 100th scanned song. Since each update of the progressbar requires the seperate scanner thread to make a call to the main GUI thread and have it update the GUI the overhead was quite large. With these smaller tweaks I managed to make scanner faster than Xia.

Challenges
The biggest challenge was to get the upgrade mechanisms working. I successfully created a proper upgrade DLL for the settings and also got all the code working which was supposed to upgrade Xia to Shang. But as I was about to do a test on the stable channel (all upgrade tests are performed in the special test channel) I noticed that quite a few installations did not have the UAC prompt. Why this is I have no idea, but some people must have gotten them, since I actually got a feature request asking for its removal.

Without UAC Stoffi doesn't get administrator rights. Without those rights Stoffi can't upgrade itself.

But this is actually good. Since the Xia installations are in the protected Program Files folder and I won't be able to support them for very long (Zhou will be their last version, then they will all lose admin rights and won't be able to get Qin). So I urge everyone to reinstall Stoffi and I promise you that I will make sure that one of our most awesome features will shine fully the next upgrade.

This week
This week started with a merge of all current trunk code into the beta branch. This means that our Zhou version is now in beta - a place where we only apply polishes, bugfixes, performance improvements and smaller tweaks. No new features.

I did manage to sneak in two new features though. The first one is a really cool playlist generator which I am pretty fond of. It is a feature request from Olle Gällmo, whom is the "Stoffi Hackathon Overseer". With it you can generate a playlist by letting Stoffi select a number of random tracks from a given list of tracks. The second feature is the ability to see all similar YouTube tracks.

So what I will do this week is to polish up the code, make it stable. I will also merge in our experimental reverse turing test into the registration procedure.

I hope that I will be able to release a beta (and an alpha) update this week as well.

Challenges
The main challenge will probably be to get the network code more stable and predictable. I have a few tricks up my sleave so we'll see if I will manage to get everything going really good before the end of the weekend.