Wikimedia Hackathon 2021/Outcomes

Hackathon feedback
Full raw feedback backed up at Wikimedia_Hackathon_2021/Feedback. Next follows a categorization from the organizers:

"Untangling MediaWiki" by Daniel Kinzler
MediaWiki has grown into a "big ball of mud" in which everything depends on everything. This makes it hard to understand and hard to modify. The Platform Team has set out on an "expedition" to untangle that knot. On the way, we will have to fight some monsters, and every now and then we'll find ourselves in a dead end. This session will focus on our work replacing the User and Title classes, why and how we are doing it.


 * Videos:
 * https://commons.wikimedia.org/wiki/File:Wikimedia_Hackathon_2021_-_Untangling_MediaWiki.webm
 * https://www.youtube.com/watch?v=DbZyBiwcuxU
 * T282111

"Wikibase, starting from scratch" by Luca Mauri
This presentation will explain how to setup a Wikibase client / server installation on two existing MediaWiki instances. It will explain all the basics of the process.


 * Videos:
 * https://commons.wikimedia.org/wiki/File:Wikimedia_Hackathon_2021_-_Wikibase_from_scratch.webm
 * https://www.youtube.com/watch?v=7kUUarBN2vM
 * T282313
 * Additional resources:
 * https://meta.wikimedia.org/wiki/ItWikiCon/2020/Programma/WikiBase,_partendo_da_zero

"Lua modules training" by tohaomg
There are two principal ways of creating templates in Wikipedian and related projects. First is the old-fashioned parser language with a lot of curly brackets, which is hard to read, has limited functionality, but has low entry threshold. The other way is Lua modules, which are written in the full-fledged programming language of Lua. Entry threshold of this, second, way is quite high, but I will try to help the participants to overcome it. I will try to teach participants to create and edit such modules, create and edit templates so that they use Lua modules, or at least understand how it all functions.


 * Videos:
 * https://commons.wikimedia.org/wiki/File:Wikimedia_Hackathon_2021_-_Lua_modules_training.webm
 * https://www.youtube.com/watch?v=pcpdKmxPuJg
 * T281467
 * Additional resources:
 * https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual
 * https://www.lua.org/docs.html

"Converting an extension to the new hook system" by Daniel Kinzler
Converting hook handlers from static methods to handler objects and introducing dependency injection.


 * Videos:
 * https://www.youtube.com/watch?v=ZOj44Rbh0tM
 * Commons upload issue: T284244
 * T282110
 * Additional resources:
 * https://www.mediawiki.org/wiki/Manual:Hooks#Handling_hooks_in_MediaWiki_1.35_and_later

"Where can I run this? An introduction to Wikimedia Cloud Services" by andrewbogott & bstorm
Wikimedia cloud services provides free hosting, storage, and compute services for any project associated with the Wikimedia movement. This will be a quick overview of the services we provide and pointers to new users about how to get started.


 * Videos:
 * https://commons.wikimedia.org/wiki/File:Wikimedia_Hackathon_2021_-_An_introduction_to_Wikimedia_Cloud_Services.webm
 * https://www.youtube.com/watch?v=RcZvwKEgDV4
 * T282273
 * Additional resources:
 * https://wikitech.wikimedia.org/wiki/Help:Cloud_Services_Introduction

"Intro to Toolhub for tool maintainers" by Bryan Davis
A brief introduction to the Toolhub project with a focus on the ways that Toolhub hopes to help tool maintainers publicize their work on bots, web services, user scripts, gadgets, complex templates, lua modules to other Wikimedians.


 * Videos:
 * https://commons.wikimedia.org/wiki/File:Wikimedia_Hackathon_2021_-_Intro_to_Toolhub_for_tool_maintainers.webm
 * https://www.youtube.com/watch?v=iMEATSNBSa0
 * T282039
 * Additional resources:
 * https://commons.wikimedia.org/wiki/File:Intro_to_Toolhub_for_tool_maintainers_(wmhack_2021).pdf
 * https://meta.wikimedia.org/wiki/Toolhub
 * https://meta.wikimedia.org/wiki/Toolhub/Progress_reports
 * https://phabricator.wikimedia.org/tag/toolhub/

"Intro to PAWS/Jupyter notebooks for Python beginners" by Chico Venancio
Most folks may not know that we have a powerful Python execution environment in the Wikimedia PAWS installation at http://paws.wmcloud.org/. It allows ordinary folks to write interactive scripts to work with Wikimedia content.

It's a great first-step for anyone who wants to get started in hacking and coding.

An introductory session could provide a quick overview of PAWS/Jupyter notebooks as a way to play with Wikimedia content may be a good way to help break down the barriers. We won't be able to make full "coders" out of folks in two days, but we can try to demystify things for those new to coding and show them we have a great environment for experimentation.


 * Videos:
 * https://commons.wikimedia.org/wiki/File:Wikimedia_Hackathon_2021_-_Intro_to_PAWS-Jupyter_notebooks_for_Python_beginners.webm
 * https://www.youtube.com/watch?v=AUZkioRI-aA
 * T281420

"Wikidata Live Querying" by Lucas Werkmeister
In this session, we will spend an hour writing SPARQL queries against the Wikidata Query Service, to see what kind of useful or interesting data we can get out of Wikidata. Participants can bring their own suggestions for things to query, and we’ll see if we can figure those queries out.


 * Videos:
 * https://commons.wikimedia.org/wiki/File:Wikimedia_Hackathon_2021_-_Wikidata_Live_Querying.webm
 * https://www.youtube.com/watch?v=EA9sLTEdcSo
 * T282382
 * Additional resources:
 * https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:SPARQL_query_service/Wikidata_Query_Help

Project showcase
Full showcase information published at Wikimedia_Hackathon_2021/Showcase.

16 projects were presented in the video call. Here is a list of the projects mirrored from the Showcase page.

Ranker batch mode

 * Speaker: Lucas Werkmeister
 * Links: https://ranker.toolforge.org/ https://www.wikidata.org/wiki/User:Lucas_Werkmeister/Ranker
 * Phab task: https://phabricator.wikimedia.org/T283409
 * Description: Finished and announced the batch modes for the Ranker tool, allowing users to edit the ranks of statements in Wikidata or Structured Data on Commons in bulk

Translate Link tool

 * Speaker: Lucas Werkmeister
 * Links: https://translate-link.toolforge.org/ https://meta.wikimedia.org/wiki/User:Lucas_Werkmeister/Translate_Link
 * Phab task: https://phabricator.wikimedia.org/T282383
 * Description: Built the Translate Link tool, which generates a link to translate a single message into a certain language on TranslateWiki.net

Some bots for maintaining links and references in Wikipedia

 * Speaker: Tohaomg
 * Links: https://github.com/Tohaomg/wikipedia_bots
 * Phab task: -
 * Description: During this and last month I have developed and ran in ukwiki some bots which were doing such tasks:
 * look for sets of completely identical references on a page, and if found, leave only one of them with full text and replace other references with links to the first.
 * remove 'fbclid' and 'igshid' tokens from links.
 * remove percent-encoding from links.
 * turn links to other Wikipedia articles, written as external links, into internal links.
 * During those two days of the Hackathon I have prepared those bots to be used by other users in other projects:
 * Published source code, compiled executables and other necessary files on GitHub.
 * Wrote a detailed 'readme' file.
 * Added English comments to the source code.
 * Edited source code so that it can be used by users other than me and in projects other than ukwiki (those were hardcoded before).

Edge cases of last mailing lists on mailman2

 * Speaker: Amir Sarabadani
 * Links: https://phabricator.wikimedia.org/T280322#7104240
 * Phab task: https://phabricator.wikimedia.org/T52864
 * Description: The last blocker for shutting down mailman2 was these 98 mailing lists that were edge cases and had all sorts of issues. I checked them one by one and fixed their issues.

Enhanced look and feel of VideoCutTool

 * Speaker: Gopa Vasanth
 * Links: https://videocuttool.wmflabs.org/ ; beta: https://videocuttools.herokuapp.com/
 * Phab task: https://phabricator.wikimedia.org/project/view/4054/
 * Description: Enhanced the look and feel of the VideoCutTool for the better user experience while editing videos.

Wikidata Lexeme Forms: Portuguese modal adverb

 * Speaker: Lucas Werkmeister
 * Links: https://lexeme-forms.toolforge.org/template/portuguese-adverb-modal/
 * Phab task: -
 * Description: Deployed support for Portuguese modal adverbs in the Wikidata Lexeme Forms tool

Piano concert

 * Speaker: Lucas Werkmeister
 * Links: https://www.twitch.tv/videos/1030661521 (CC BY 4.0)
 * Phab task: -
 * Description: I played a one-hour piano concert on Friday evening; join the other one tonight! (17:00 UTC)

OpenRefine, RStudio and Dashboards on PAWS

 * Speaker: Yuvi Panda (Chico if Yuvi is unavailable)
 * Links:
 * OpenRefine on PAWS: https://hub.paws.wmcloud.org/hub/user-redirect/openrefine
 * RStudio on PAWS: https://hub.paws.wmcloud.org/hub/user-redirect/rstudio
 * Dashboards (with Voila): https://hub.paws.wmcloud.org/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Ffuzheado%2Fjupyterkg&urlpath=voila%2Frender%2Fjupyterkg%2Fwikidata-kg-browser.ipynb&branch=main
 * Phab task: -
 * Description: PAWS now supports additional user interfaces, not just Jupyter Notebooks! Including Dashboards for building quick UIs that can be shared with others. (and 24 hours server timeout, from 1h)

AddSenseImage

 * Speaker: Jon Harald Søby
 * Links: https://www.wikidata.org/wiki/User:Jon_Harald_S%C3%B8by/addSenseImage.js
 * Phab task: https://phabricator.wikimedia.org/T283390
 * Description: User script to add images to sense statements on lexemes

Wikimedia Accessibility (yep ;)

 * Speaker: psychoslave
 * Links: https://etherpad.wikimedia.org/p/wmhack21-accessibility
 * Phab tasks:
 * https://phabricator.wikimedia.org/T282561
 * https://phabricator.wikimedia.org/T283448
 * https://phabricator.wikimedia.org/T283447
 * Description: Structuring a working group around accessibility to coordinate efforts on this theme
 * Current result:
 * a functional Telegram group with >13 people
 * and you're invited! https://t.me/wikimedia_accessibility
 * Several phabricator tickets
 * one great logo proposal by Ainali
 * Partnering with wikiBlind.org user group

Shape Expressions for Wikidata Lexemes

 * Speaker: John Samuel
 * Links: https://shexstatements.toolforge.org/
 * Example: https://www.wikidata.org/wiki/EntitySchema:E310
 * https://github.com/johnsamuelwrites/ShExStatements/tree/master/examples
 * Phab task: https://phabricator.wikimedia.org/T283370
 * Description: The goal of this project is to create shape expressions for different lexical categories in different languages.

Fixing a bug in CollabPad

 * Speaker: Fisch (Christoph Jauera)
 * Links: https://www.mediawiki.org/wiki/VisualEditor/Real-time_collaboration
 * Live demo: https://collab-wmde-templates-alpha.wmcloud.org/wiki/Special:CollabPad/WikimediaHackathon2021
 * Phab task: https://phabricator.wikimedia.org/T283458
 * Description: CollabPad is still cool, let's fix all the issues and replace Google docs \o/

Fixing a bug in IdentifierInput.js gadget for Wikidata

 * Speaker: 1Veertje
 * Links: https://www.wikidata.org/wiki/Wikidata:Tools/Enhance_user_interface#identifierInput.js
 * Phab task: https://phabricator.wikimedia.org/T283412
 * Description: better handle when a property has no format restraints

Writing pywikibot script which would upload fFnnish museum of architecture photos from Finna to Wikimedia Commonsa

 * Speaker: Zache (Kimmo Virtanen)
 * Links
 * https://commons.wikimedia.org/wiki/User:FinnaUploadBot
 * Source photos: https://finna.fi/Search/Results?lookfor=&type=AllFields&filter%5B%5D=%7Ebuilding%3A%220%2FMFA%2F%22&filter%5B%5D=%7Eusage_rights_str_mv%3A%22usage_B%22&dfApplied=1&limit=20
 * Example result: https://commons.wikimedia.org/wiki/File:Tallinnan_asemakaava,_kilpailuehdotus,_nimimerkki_Bebaungsplan_fur_Reval,_Viro,_ajoittamaton_(mfa.153f3f6e-dcd2-4a0f-be1f-bddc580368be).tif
 * Upload script : https://github.com/zache-fi/FinnaUploadBot
 * Phab task: -
 * Description: Update legacy FinnaUploadBot PHP code to pywikibot

Collaboratively creating a notebook for reconciliation

 * Speaker: Andrew, (Susanna)
 * Memo https://docs.google.com/document/d/1TJuYWkM6bybMuOQocIc9YNF3fU-NH74h69P3R1OQ2m0/edit#
 * Phabricator https://phabricator.wikimedia.org/T282875
 * Colab experiments https://colab.research.google.com/drive/1VeYRMXNd2du58jQscg7WVSra6RrgBDNs

Wikimedia Accesibility logo

 * Speaker: Jan Ainali
 * Phab task: https://phabricator.wikimedia.org/T283447
 * Not uploaded to Commons yet, will share screen