Page MenuHomePhabricator

Wikimedia Hackathon 2018 Showcase
Closed, ResolvedPublic


Showcase recording:

Archive from

Wikimedia Hackathon 2018 Showcase & Project list - Barcelona - on Sunday from 16:00 - 17:00 in Auditori de la Facultat de Filosofia i Lletres de la UAB, run by Siebrand and Rachel


Greg: October 22-25, next iteration of what was called Dev Summit. Focused on Platform Evolution. ?? Future iterations of this event will probably focus each on a specific topic. (Shows vision statement in the page). Program Committee (shws members in page).

TheDJ : about 50 attendees. Wikipage explain who we are looking for. You can suggest people. We want diversity of skills. We will handpick stakeholders. Timeline next week announcements. Next will come a nomination form.



Pau: Prototype interface to explore how it works on a sentence by sentence basis instead of paragraph by paragraph. Once you complete everything, you can mark it as completed and ready for proofreading. Next steps are: [??]


Monte: Wikipedia app, it can be a pain to switch your language & taking captures in different languages. This tool capures about 1500 images and this is only one device.


Ryan: Created tool because I like infographics, and tedious to make by hand (opening SVG etc). Hard enough to do at all, and definitely not often. SO I built a tool on Toolforge. You can click the areas to add colors, and add gradients. Show all the territories, including showing that Puerto Rico is actually part of the States. [laughter]


  • Expanding stub articles using Content Translation -
  • Content translation is mainly for creating new articles by translation. But if that target article exist as a Stub article, it should be able to expand that without loosing the stub content
  • Can use the below screencast
  • A gif video https://phab.wmfuser
  • @santhosh, @Pginer-WMF

Santhosh: Content Translator, screencast. Start translation Instead of doing paragraph bynparagraph you can cut / add paragraphs.


Amir: Co-devs had to leave early. On translatewiki we made... New project-scale watchlisting feature. New "Star" next to project that you're actively translating, so that when new strings arrive in the project you'll get a notification.


JamesH: Paws, Jupyter Notebook as a service. Write Python, share code. Gadgets are JS can run in MediaWiki. A notebok listing all the gadgets, if two gadgets exist with the same name, we will know.


Aaron: [whilst i'm logging in... Who is an admin here who has not enabled 2FA? You don't need to admit it, you know who you are... [laughter] New feature at top of page showing page thinks topic is about visual arts. [Shows very short code] It's really easy to build code on top of ORES, go check it out. Item quality prediction on top of item in Wikidata.


  • Import an article into Special:CollabPad (Multi-user / GoogleDocs-style collaborative editing) -
  • Special:CollabPad in a work-in-progress technical demo of a multi-user editing environment. We have added the ability to import an article from the wiki, so you can work with your friends on an article in realtime.
  • We should be able to use the laptop provided.
  • TBC
  • @Esanders, @dchan, @Catrope, @DLynch, @Ryasmeen

Dchan, Catrope: Real-time editing. Imports existing article to that editor, and you can edit with your friends. David imports one article. Creates a random doc in Collab space. You can share the URL with others (demos with two screeens, concurrent editing). When you finish you can copy & paste export (we haven't finished that yet).


Nicole: Here to talk about Movement Strategy process and Technology Working Group - high level questions to tackle, who to be in the group, and how they should operate. These [image] are the inputs I got during the sessions. People should be doing outreach all over the movement and beyon. Need aspiration and vision beyond. Should focus on [????]. Platform Evolution plan can provide starting point.


Tpt: Challenge to make a lua module on wikidata with minimal code and configuration, that works with all types. Wrote ~200 lines, which gets use this fully automated infobox, including maps. Useful for smaller wikis. Also made [?] to work with SPARQL code, and [?] to [?] with Restbase[?].


jsamwrites: Tool part of Wikidata contributor. You are a new Wikidata contribute, you ask yourself how to contribute. Often asked. Suggestions to start. For instance, translate labels. Some languages have many tranbslations, some don't have many. Items without properties. Navigate properties and datatypes to see if there are translations. Discover gaps and where to contribute translations.


Reading web released Page Previews on Wikipedia. How could these be used outside of Wikipedia. Took the code from the extenstions (front end) made it independent from mediawiki and jqueury. include the .js and add markup and now you have page previews. Demo examples of how this might look on journalistic sites.


Catrope: On RecentChanges on a number of wikis we have these ORES filters for goodfaith and likely problems, but what does this mean? What percentage of thie things that it finds are actually problems? How many of the actual likely problems does it actually find? We had these probablity ranges, and there's an API for this. I previously had hacked up a script that generates a TSV output into a spreadsheet, and that would immediately get out of date. Now made a specialpage to display with recall. E.g. on Enwiki there are probability ranges showing that 45% of items will likely have problems, This lets editors know what to expect. [[?]]


  • Image labelling and category suggester
  • Phab: (not exactly all of the things this ticket wants).
  • User script that finds labels for the image and suggests categories
  • I will use the provided laptop
  • Niharika

Demo a user script that uses a Google (?) image recoginition API to detect contents of an image and suggest possible categories. Works, but not perfect. (hilarious skeleton example) you can play with it yourself -


Part of the gamification of our app, it will give you random images from Commons in sequence and ask questions, one at a time. ("Is this image out of scope for Commons?" -> "why? [the use can use a default answer or write his own]") You can flag images for deletion, (checking the result from recentchanges). If it is not out of scope, you can get another image manually. If it is a copyright violation you can report that. If everything looks fine, you can thank the contributor. Lastly, working on categories to [??]


  • Progress on Wikimedia Developer Support -
  • After some testing, we have removed local account creation to Now users can only sign up / log in using their Wikimedia Phabricator and/or GitHub login. This was a simple task! Merit goes to yana_agun (not at the hackathon), who developed a Phabricator login plugin for Discourse.
  • Replying to topics via email is possible now.
  • Also, we run a BoF session where we agreed to focus on the following priorities: adoption, visibility (template in relevant pages), Matrix/IRC plugin, discuss deprecation of Support Desk, define success criteria to the pilot.
  • I will use the provided laptop
  • (@yana_agun), @Tgr, @Samwilson, @Qgil

Quim: Much done before the event, but started the pilot with local account creation only, and now we have login through your Github account OR your Wikimedia Phabricator account. This weekend we removed local registration. We also added reply-by-email - please help with testing! This morning we had a discussion session about it, and decided to move forward on this, with work on adoption, visibility (template in relevant pages), Matrix/IRC plugin, discuss deprecation of Support Desk, define success criteria to the pilot.


A tool to record pronunications, using your Wikimedia account. We've worked at supporting more languages - now all languages which have a Wikidata items are supported. [Demonstration of how to use the tool] Record auido and the software parses the words. Uses a Wikibase instance to store linguistic data.


Palancana: The university here is covering people, recovering historical context from census data. We wanted to make link to Wikipedia to provide more context. Implementation built in website. Also built an app in [?] frmaework, and did some testing here. Using [?] API because we didn't have access to [?] API.


Demo of the CLI tool installing MW, depedencies, skins, extensions using composer. Installs the dependences of dependencies. :)


  • Huggle - support for extensions written in JavaScript -
  • Implement JavaScript execution engine into Huggle's C++ code using Google's V8 engine, so that users can write extensions to Huggle also in JavaScript
  • I need to use my own laptop (huggle is an application which needs to be installed on laptop) / if no laptop can be connected then I can just play the video from link
  • @Petrb
  • I need to lend projector adaptor for MacBook Air 2017 (thunderbolt) - I would also love it if someone who understands MacOS or macs in general was around to help me if I ran in troubles setting projector up (I never did it in past)

Petrb: [per above, and demonstration of live enabling of an extension] Now people can add extensions to Huggle without needing to know C++.


Benin has around 10 million people, but no WIkipedia currently in Fon, language spoken by 4 mln people. I decided to fix that. Some special letters in that language, so I had to implement support for that. I started translating the special messages/interface in preparation for that Wikipedia. Thank you to Odder Amir and Santosh for all your help on this.


JeanFred: Locally you can't use certian things. Want to test against production. Using Docker to create containers. SSH tunnel to query db. Local development with remote images. Memeing.


  • Article Helper (user script)
  • A quick wizard to help newcomers start articles with pre-set skeletons
  • Allows each wiki to fully customize the introductory texts and the repository of "skeleton" articles by categories
  • @Mooeypoo

Moriel: on Enwiki there's a tool for creating a new page based on templates. Some wikis asked about porting it. It's very localized and based on templates, so it didn't scale. Instead I created a userscript, which lets you create an article from a box, shows introductory text in the wiki which can be edited, adds appropriate templates/infoboxes, validity-checks the title, and more! With 2 or 3 configuration options this can now be ported to any wiki.


Dmitry: Working on mobile editing in near-future, but for now.. When you edit you get the viirtual keyboard, and customizable keyboard... this led to a customized Wiki-focused keyboard!!! Any app can now use this, where it find an edit box, to show wiki-specific buttons. Even includes undo/redo. This is just a first iteration, and I would appreciate feedback on which elements to include.


Isarra: The ghost of Monobook haunts us. Echo (notifications) now work with Monobook and display in the top right on Mobile. Modal to see notifications. This exists.


Jon: Using the API that Page Previews uses to create page previews for other projects. Demoing how it works.


  • ORES -> Docker
  • First take at dockerizing ORES. Scope is contained to get test & validation URL working on a dockerized ORES
  • T183410, T195077
  • @Oriolsoriano

Orio: First time working with ORES. 4 services (api, score cache, job queue, and worker). Working on getting these services working on Docker. Getting all services up and running and connected.


jsamwrites: See the number of statements on items. See references across properties for wikidata items.


akosiaris: Following on sesssion for this morning. Could not do demo this morning, sorecorded it. Kubernetes cluster already running. Graphoid as service is now in a container. Deployed in kubernetes-mini cluster. Now watching for changes locally. Querying info endpoint. [?] Changing a file. Changing the description to something else. Here it's taken ~15 seconds to be fully-deployed!

Not presenting, but here's some info documenting our project

Implement searching of 'depicts' on commons with the 'quantity' qualifier

Selectable sort orders were added to search some time ago, but never appear to have been used. Expose them in ApiQuerySearch.

Action API parameter type refactor -

  • Refactoring the API parameter type handling for better extensibility
  • @Anomie

Citationgraph bot

  • For a while I have been working on importing citation relationships between journal articles that are described on Wikidata. For months this process stopped working but now it works again. Now currently applying for bot approval.
  • Sample page
  • @Harej

Wiki Edu Dashboard -

  • I've learned how to use git, github and other things to contribute to Wiki Edu Dashboard project, some "coding" in javascript and i18n
  • big thanks to mentors sejal_ and medha
  • @Urbanecm


  • Email on activity of particular IP - is useful for network administrators who receive an abuse report about vandalism from their network. The tool was completely rewritten and it's working now :D
  • @Urbanecm

Tasty hackathon tapas

commit-message-validator -

Rewritten Magnus Manske's Drag'N'Drop Wikidata gadget

Wikidata in VR 🕶

Selenium browser tests for Newsletter extension

Let's build a WordPress plugin to embed Wikimedia content! Update: Wait, there already was one! Let's update that. -

  • Make it easy to embed Wikimedia content in the popular content managment system. Learned about APIs and how we might create something with support for better attribution. Maybe even create an oEmbed provider as a WP plugin.
  • I need to use my own laptop
  • Ckoerner, Husky, Krinkle, PeterTheOne, jgleeson


Query constraint violations with WDQS -

Page previews on Wikidata

  • Page previews working with wikidata!
  • (wifi pending) - 64mb - please start downloading prior to me being on stage.
  • @Jdlrobson
  • Also worked on Reading Lists for Desktop and Mobile (incomplete)


  • The “namescript” Wikidata user script can now run on the command line as well, to simplify fixing many items at once. Reusing the same code for both scenarios (browser and CLI) avoids that two different codebases diverge with future changes. I’ll put up a blog post describing the setup at some point (probably tonight?), so that others can use the same approach for other user scripts if desired.
  • Demo: open, run importScript('User:Lucas_Werkmeister/namescript.js') in the browser console, click the “add labels and descriptions” link on the first statement (below the table with labels and descriptions), reload the page, see that descriptions were added
  • Source code:
  • @Lucas_Werkmeister_WMDE, @Harmonia_Amanda

Refactoring in ConfirmEdit

  • Extension:ThrottleOverride should provide a way to have users skip captchas, which it currently can't because ConfirmEdit doesn't provide any hook to manipulate this. Some refactoring was needed to finally add the hook.
  • @EddieGP

MediaWiki support in ScribeJava

Edit summary in QuickStatements v2 CSV format

Reading Lists for Desktop and Mobile (incomplete)

  • Making use of the Extension:ReadingLists API on desktop and mobile web
  • N/A right now
  • @Jdlrobson

Train/test article quality model for euwiki

Special page to disable OATH-

  • Right now, it's only possible using a maintenance script called disableOATHAuthForUser.php which requires production access which is not scaleable and it's one of the reasons preventing from allowing role out of 2FA for everyone.
  • I need my laptop to show it
  • @Ladsgroup

Centralised SSL certificate (Let's Encrypt) secret management system -

  • Secure redirect service (protect the users of various 'junk' domains that are owned by Wikimedia and redirect into the canonical Wikimedia domains that have had HTTPS protection for years), and potentially supporting a vastly wider rollout of Let's Encrypt usage in the distant future
  • no demo, WIP code exists in the HEAD commit at deployment-puppetmaster02.deployment-prep.eqiad.wmflabs:/var/lib/git/operations/puppet so far (please don't edit without coordination)
  • Alex Monk (Krenair) with a lot of help and ideas from Brandon Black and Valentín Gutiérrez

Telegram Bot -

  • I've been working on the Telegram bot for translating at since the Hackathon in Jerusalem. I made a lot of progress since then. This time it's ready for wider testing
  • @Amire80

(Add more in the comments, if you didn't have time yet!)

<Name of project - (Phabricator task)>

  • <Brief description. The problem you were trying to solve / what was done / final solution or next steps.>
  • <URL of the demo, if available.>
  • <Team (list Phabricator usernames, i.e. @Rfarrand).>

Event Timeline

I'm wondering when this task is ready for being marked as "resolved"... :D

@Esanders Just added a link to the description :)
I believe it should be somewhere on commons as well

For easy access:
Video currently on youtube:
Pictures on Commons:
No video on Commons yet, though I imagine @bcampbell is already in the process of doing so. :-)
I've added links for those and more at

Vvjjkkii renamed this task from Wikimedia Hackathon 2018 Showcase to kkcaaaaaaa.Jul 1 2018, 1:08 AM
Vvjjkkii reopened this task as Open.
Vvjjkkii removed Quiddity as the assignee of this task.
Vvjjkkii triaged this task as High priority.
Vvjjkkii updated the task description. (Show Details)
Vvjjkkii removed a subscriber: Aklapper.
JJMC89 renamed this task from kkcaaaaaaa to Wikimedia Hackathon 2018 Showcase.Jul 1 2018, 7:34 AM
JJMC89 closed this task as Resolved.
JJMC89 assigned this task to Quiddity.
JJMC89 raised the priority of this task from High to Needs Triage.
JJMC89 updated the task description. (Show Details)
JJMC89 added a subscriber: Aklapper.