Ok, the title sounds like what happens on developer conferences when you ask a technical question and suddenly the speaker pulls out a t-shirt or a book and hands it over to you. No, this one’s bigger… much bigger.
Back in summer, I participated in the Microsoft Visual Studio Extensibility Contest with my add-in GhostDoc (did I just hear somebody yawn in the background? I’m sorry ;-). I thought to myself “Hey, GhostDoc is a valid entry according to the rules, it has a working setup, nice documentation and people like it, why not give it a try. Version 1.9.5 is almost finished, entering the contest shouldn’t be much effort”.
Ok, forget about the “not much effort” part. The organizers wanted the projects as source code, to compile the projects and pass the result to the judges – I guess to be able sort out at least some of the more obvious trojans that jokesters would send in. Releases of GhostDoc are built using a combination of a commercial tool (Visual Build) and a couple of custom-built tools and I couldn’t/didn’t want to give out my complete build environment, template-based documentation generation, CHM-builder, etc.. So most of the work consisted of building a package that could be copied on a fresh machine and would successfully build the MSI. Sounds easy, but it’s the small details that cost way too much time.
Please don’t get me wrong, I’m not complaining; my colleague Jens Schaller wrote an add-in (SonicFileFinder) specifically for the contest from scratch and he definitely pulled some all-nighters and others have invested a lot of time as well.
Anyway, when I was notified I didn’t win I wasn’t too disappointed – I was happy that I received an USB stick for participating and left the contest behind me.
But of course I wanted to know which cool add-ins won, so I visited the website from time to time. Yesterday I saw the winners were announced. The projects of the participants that didn’t win (including me) were listed on the site as well, but without a description, just with a download link. Interested in the other add-ins I wrote a mail to the organizers suggesting to add description texts as I didn’t feel like downloading all add-ins just to find out what they are doing. And out of curiosity I asked what had happened to the third place in the add-in category, suspecting some sort of mixup during the authoring of the page.
Well, some time later I received a mail telling me that one of the first three contestants was “no longer eligible” and that the next of the runner-ups moved up on third place – and that was me! Wow, what a surprise… An hour later the website was updated, with GhostDoc now on third place. Unfortunately the list of the runner-ups are still without description texts, but I guess that’s coming later.
Even though it has been fixed in version 1.3.0, the infamous "Toes the string" comment generated by GhostDoc remains a running gag among long-time users. So let's use Google Code Search to see if there's somebody out there who has used (an early version of) GhostDoc to create comments without even bothering to give them a quick look: Search Now*
*) Note that this is a live search; at the time of this writing there were indeed three results, but this may of course change in the future.
Yesterday was the first home game of the Telekom Baskets Bonn, a team in the first division of the German Basketball League (BBL). Before you even think of a comparison to the NBA or let’s say some other European leagues keep in mind that other sports like soccer, ice hockey and handball draw much larger crowds. In Germany, basketball games played in front of audiences of around 3000 up to 8000. This is my 10th season working for the team as the second DJ. My work includes preparing music and sound effects (cutting, (re-)mixing, recording sound bites and player’s voices, etc.) and writing the software used for playing some of the music.
Another thing I have to explain is that while the Baskets have a medium-sized budget compared to other teams in the league, we’re not exactly a rich club. So everything not directly related to paying players and fixed costs is done on a very tight budget and the level of professionalism we achieve is mostly the result of a lot of people working very hard for very little money or - in my case – a season ticket for my wife.
Only a few weeks ago the sponsor decided that two back projection screens would be a nice thing to show their image trailer and commercials on. So we got the screens, the beamers, a notebook and two clips on DVD we should play… and the rest was up to us.
We collected ideas, one guy whipped up a couple of good looking PowerPoint presentations, another one came up with a Flash-based solution for showing scouting data, and we had some other clips we wanted to show. What was missing was some software that would combine all this together in one solution – that’s what I did. After burning some midnight oil (after all, there’s a day job and some other stuff to do) and some frantic last-minute coding my software – called RemoteCanvas – had its big moment yesterday. A dashboard-like app communicating with a viewer app covering the whole screen, I had it running on a single notebook yesterday, but as the name implies it’s intended to be used across a network. Things went pretty well, but of course I was pretty nervous during the whole game as one thing you don’t want to happen is something going wrong on two large projection screens in front of 3400 spectators…
There’s a lot of work left to do and I have two home games coming up the next weekends, but when things calm down a bit I’ll blog about a thing or two I’ve learned during the development of the software.
Here are some photos of my workplace near the sideline: