My GSoC project was developing a program for uploading Wiki Loves Monuments photos to Wikimedia Commons [1]
Timing seemed great, chaining the end of my previous task with the beginning of GSoC and the end of GSoC with WLM 2012. Maybe it would be a little adjusted at the beginning, but not being a too exigent GSoC project, there would be plenty of time for completion. Or so I thought. The work in the Real World delayed, pushing down the Google Summer of Code, which by its own nature had lower priority. I also made another appreciation error when considering how much I would advance with a "foreign" computer. I ended up sprinting the last days to get a deliverable by the deadline, something that seemed impossible at times, while I was regretting signing up.
I should also talk about my relationship with my mentor, but it was pretty much non-existant. With little to no advance to report, I wasn't motivated to contact her, and she was too busy with other duties to contact me. So we failed from both sides. :( I'd love to work with her in the future, but under different conditions. In the given circumstances, I feel it was an error for her to accept me as student. The mentor slot should have been assigned to someone else. Had a student new to mediawiki, with a project needing more support, received this level of mentoring, I doubt he could have finished / it would have been a mergeable result. OTOH, if someone was going to receive this, I guess I wasn't that a bad election. :/
Despite the smashed planification, results weren't too bad. I completed a prototype [2], which implements the core functionality, asking the user all the needed information and performing the uploads. It misses one dialog, and has the big drawback of not being internationalised: the application is hardcoded in the mixture of languages I used (for distributing as mockups) when developing. I had envisioned a translation method which involved making a new translatewiki backend, but it was clear pretty soon that translations would need to stay out of the 'release'. Another point I had planned that was not fullfiled was preference-handling and load/save of sets of monuments. All preferences are hardcoded right now. Those are easy to add, though. Currently, the program has a functionality similar to the Upload Wizard, in that you need to be online to work with it. However, I feel it is superior in the usecase of uploading a full folder, both in selecting and preparation (plus uploading in the background while preparing new files). I plan to slowly be adding -outside of GSoC- some of those missing features and dealing with the (previsible) feedback.
Although short of time due to the above mentioned issues, it was refreshing to do some C++ coding. I had only worked with dynamic languages recently, or with lower-level C. C++ provided enough class magic to make for comfortable coding, with enough pointers to crash your program (and a framework complex enough to discard valgrind usage) :) I was disappointed with wxWidgets HTTP support, though. There were a couple of problems I had to overcome by myself and had to patch a third one on the library.
I have uploaded at [2] the source, windows and linux binaries. Everyone is welcome to play with them and test the application. Following the lead of the mobile team with beta uploading, those binaries upload to http://test.wikipedia.org/ instead of Wikimedia Commons. It doesn't have many of the commons templates the program expects (you can preview in Wikimedia Commons if you wish), but it doesn't disrupt the project.
Best regards
1- http://thread.gmane.org/gmane.org.wikimedia.wikilovesmonuments/2641 2- http://toolserver.org/~platonides/sube/