User:Florianschmidtwelzow/Wikimedia Hackathon 2018

Like in the last year in Vienna, I already had the opportunity to be part of this years Wikimedia Hackathon, which took place in the Autonomous University of Barcelona (Spain). On this page I want to give everyone interested the chance to recap my impressions :)

First of all, which I should note here: I haven't selected any topic I want to work on during the hackathon this time. Normally, that's one of the things that are essential in the "preparing the hackathon" for me, as this gives me kind of a goal I want to achieve. There're many reasons why this didn't happen this year, however the most obvious is unfortunately not enough focus to get the required time to do it :(

First day, Friday
After arriving the hotel the day before much later than expected (thanks to a delay of my flight from Germany), my first day started with the usual opening session in the UAB. The session was quite interesting, however a lot of short announcements of projects and ideas from people who requested support was a bit hard to follow after having not enough sleep, but quite interesting things were mentioned, though. After going to the hacking venue: Let's start hacking (after lunch :P). After getting thorugh my e-mails with a lot of requests for reviweing stuff and doing a lot of code reviews (which, btw., was one of the main things I did in the hackathon), I started a task I wanted to do for a long time already: Randomly going through the code coverage report of the php code in mediawiki/core and select one class to give it more test coverage. The happy candidate to get some unit tests was the WatchAction class, a small class which handles the processing of when you click on the little watch star in the top right corner. So, basically a pretty simple thing to do, but still very important. Unfortunately, the class had absolutely no unit test for any of the function (see the screenshot of the coverage report from before my changes) :(

After getting into writing phpunit tests again (oops :P) I worked thorugh the methods and it's underlying working and even made some things better in the actual implementation itself (including deprecating one method which was not used everywhere and is pretty pointless in keeping around). For some things made in the class it was pretty hard to write tests, though, however, after the whole afternoon (it took longer than expected), I was finished and happy with the result, see the coverage report at the right with 100% coverage, *yay*.

Second day, Saturday
After getting out of the hotel in a quite normal time ) I went to the venue, tasks for today: Reviewing changes in gerrit and finding the person who pinged me with asking for help about SpecialPages. After reviweing a change in ConfirmEdit, where I suggested to add unit tests for a newly created method, I took the advantage to do this together with someone who was the first time at the hackathon and had not written any phpunit test so far. It was amazing to work together to get the method covered and merged into our codebase :)

A very interesting thing I disucusses this day was an idea of how to go further with the ArticlePlaceholder extension and how to integrate neural networks to do fancy and valueable stuff for smaller communities. I'm really interested in getting more information about that and I'll stay in contact with the creator of this extension :)

After a long coding day, a main thing was the party at the end of the day (until the next day) with music, drinks and a lot of fun. However, one thing was quite weird: The music was already ended 20 minutes after 12pm, which is a strange time for a hackathon party :(

Last day, Sunday
Already the last day of the hackathon. The closing session had a lot of really cool stuff created during the hackathon, like (these are my personal favourites, in no specific order):


 * Real-time editing together on a MediaWiki article together with other people: https://phabricator.wikimedia.org/T195180
 * Working with ContentTranslation on mobile pages - https://phabricator.wikimedia.org/T192067
 * a lua module which generates infoboxes out of wikidata items: https://nds.wikipedia.org/wiki/Modul:Databox
 * Image labeling and category suggester: https://phabricator.wikimedia.org/T155538

Apart from that, I worked into how wikidiff2 can be used on one of my personal wikis and other things about maintaining a MediaWiki instance in general, however, there's unfortunately nothing to really share :(

Conclusion
This hackathon was kind of different than the other ones I had before (personally), I might have forgotton a lot of things already as there're so many impressions, discussions and coding stuff in these three days that it's impossible to keep all of it. However, even that my main topic this hackathon seemd to be "testing", it was quite a lot of fun and I would be happy to be able to got to next years hackathon in Prague, too! :D