On 08/22/2012 05:43 PM, Platonides wrote:
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/
Thanks for the wrapup, Platonides.
I decided to mentor this project because several engineers sounded
enthusiastic about the idea and because Platonides had such a strong
reputation as a past contributor. I tried to find a mentor with more
domain knowledge, but no one accepted. I decided that all Platonides
needed was project management, and that I could provide that. I was
wrong. I now know that I can't mentor a GSoC student, especially not
while I'm also the organizational administrator, and that if we can't
find an enthusiastic, technically knowledgable mentor for a student then
we simply shouldn't accept them at all.
(In my defense, I did ping and email Platonides many times during the
summer, but sometimes we both lagged, a lot, in our responses. I
already knew it was best practice to have a weekly check-in call, and
it's my fault that we didn't set this up first thing, in May.)
On a more positive note, I'm glad the prototype is out, and I hope other
folks will try out SUBE and that it, along with
https://commons.wikimedia.org/wiki/Commons:Up! and the new WLM Android
app, will aid this and future mass-uploading to Commons. I also hope
the localisation team can give Platonides pointers on what he needs to
do to make this truly internationalized.
--
Sumana Harihareswara
Engineering Community Manager
Wikimedia Foundation