Zürich Hackathon 2014/Topics

Add a topic you want to work on at the next Wikimedia Hackathon!

Template:

Galleries for topic pages
Create the concept of a gallery for any type of topic page (Article, User, Wiktionary, Wikivoyage) where a user can search and contribute images from commons.

Interested persons:

= Sprints =

Regular contributors plus some newcomers hack together with a shared goal.

Recommendation engines
A lot of regular users end up reading one article on Wikipedia (through Google Search) and other articles which they need as pre-requisites. It would be interesting to have a recommendation engine for Wikipedia, Wikiquotes and Wikisource.

Interested persons:
 * 1) Aarti Dwivedi
 * 2) Maximilianklein

Production-like Vagrant
Our goal is to make a handful of high-priority puppet roles available to MediaWiki-Vagrant to make developer instances of Vagrant closer to a production-like environment. The ultimate idea is to provide a uniform developer-focussed instance to Mediawiki engineers to facilitate better testing of new and existing code, while also making it easy for new engineers to get started hacking on Mediawiki and Mediawiki with minimal friction for bringing new features to production. The first hurdle will be to provide some crucial production services in MediaWiki-Vagrant, which will be our focus for the Hackathon. Possible services to focus on include
 * Varnish
 * SSL
 * MariaDB
 * Memcache/Redis
 * CentralAuth
 * Possibly multiversion support?
 * configure MW and set of apps in a way to mimic production but for performance tweaks (cf https://gerrit.wikimedia.org/r/#/c/119216/)
 * Prepared XML dump import

For more information, view our notes from initial conversations about this project as well as notes from our followup conversation.

Interested persons:
 * 1) Arthur Richards
 * 2) Yuvi Panda
 * 3) Ori Livneh
 * 4) Matt Flaschen
 * 5) Bryan Davis
 * 6) Andrew Otto
 * 7) QChris
 * 8) CSteipp
 * 9) Tony Thomas
 * 10) Mglaser
 * 11) Swidmann
 * 12) Robert Vogel
 * 13) Bruno Perel
 * 14) Smuggli
 * 15) Faidon Liambotis

Maps integration
The idea is to bring pin map templates, geohack, wikiminiatlas, openstreetmap, Extension:Maps, Special:NearBy, mobile, coordinates extension etc etc etc, more together in a way that works for mobile, desktop, micro and macro contributions. It would be handy if before hand we can do some exploratory work to create a more focused effort during the hackathon: Zürich_Hackathon_2014/Geo_Namespace.

Interested persons:
 * 1) Jdlrobson
 * 2) TheDJ
 * 3) MaxSem
 * 4) Duesentrieb
 * 5) Kolossos
 * 6) Susannaanas
 * 7) Yug
 * 8) Aude
 * 9) TheDJ
 * 10) Micha L. Rieser Maps can also be generated with the data of the open government data portals and QGIS.
 * 11) Bruno Perel
 * 12) Dan Andreescu
 * 13) Faidon Liambotis

Wikimaps project
There are topics for meetings/sprints with a wider developer/designer/GLAM advocate community with the Wikimaps project. Anyone interested? --Susannaanas (talk) 09:43, 10 March 2014 (UTC)
 * Template:Map for archival metadata, geolocation and temporal properties of maps. For inclusion in the GWToolset.
 * Spatiotemporal properties of places. The structure of a historical gazetteer. (OpenHistoricalMap - Wikidata). Informed by academic research.

Züriplan
It is possible to get the Maps of the open government data portal under CC0: www.stadtplan.stadt-zuerich.ch. Maybe it would be a good task to "milk" that map and store the maps in Commons. --Micha 11:18, 2 April 2014 (UTC)

= Workshops =

Experts meet novices to share knowledge in hands-on tasks.

Intergration of Open Government Data in Wikidata and other Wikimedia projects
There are a lot of open government data developing with interesting data which can be used for wikimedia projects. For example: The data of polls and referendums, the populations of cities and municipalities, the public art in cities (interesting for Wiki Loves Public Art). How can the data of that portals be transfered automatically to the wikimedia projects. For example generating a script on the tool server which checks daily if some numbers have changed. If yes, it transfers the data to wikidata and from there the data is included in the infoboxes of the Wikipedia articles. Or how can the list of public arts or of other objects (ex. fountains) in wikipedia be updated automatically if there is a new object or an object has been removed.

Interested persons:
 * 1) Micha L. Rieser

The RACHEL Project
RACHEL (www.rachel.worldpossible.org) is now reaching over one million users worldwide who lack access to reliable internet. The project was a weekend prototype by just a few Cisco employees years ago. Please consider lending your web development, perl skills (dev.worldposible.org), or linux ideas to help us enhance this fantastic product (as seen on BBC, CNN, RaspberryPi.org and much more). Currently, foreign language wikipedia inclusion requires running a second webserver dedicated to wikipedia, an inefficient use of resources in places where these are scarce. Help us integrate foreign language wikipedia without running a second server (biblioteca.worldpossible.org).

Interested persons:
 * 1) Jeremy Schwartz 

Wikibase architecture overview
An introduction to the Wikibase architecture and components aimed at potential new contributors. Wikibase is the software behind the Wikidata project. In this session you will get a high level overview of the wider wikibase codebase, which functionality can be found where, and how the different parts interact. Novice developers can attend, no special knowledge is required.

Interested persons:
 * 1) Jeroen De Dauw
 * 2) Mglaser
 * 3) Robert Vogel
 * 4) Maximilianklein
 * 5) Bruno Perel

Clean Code
Full title: Clean Code, and other requirements for contributing to Wikibase

This is an introduction to the topic of clean code. It covers basic design principles, effective use of tests, and many general best practices. Want to know how to write code that is easier to maintain? Want to avoid spending so much time in the debugger? Want to write code that reads like well written prose? Want to become more effective at the craft of software development? Then this session is definitely for you.

This introduction is broad and covers a lot of ground. While many topics will not be covered in the depth they deserve, references to other material will be provided. The focus on the most common problem points and practical solutions.

A lot of the topics that will be covered are part of the contribution guidelines for the Wikibase software. Examples from Wikibase will also be used in places, though this session is by no means Wikibase specific.

Interested persons:
 * 1) Jeroen De Dauw
 * 2) Mglaser
 * 3) Swidmann
 * 4) Robert Vogel
 * 5) Tpt
 * 6) Smuggli

Mobile walk-in and talk-in
Is mobile a mystery to you? Can't get MobileFrontend setup? Don't understand why your favourite desktop features don't work on mobile? Want to know how to work on the latest Wikipedia apps? Do you want to make mobile things and don't know how? Does one of your projects look great on a desktop and terrible on a mobile device?

This workshop will be an unstructured session where you can ask all these questions and get some answers. Members of the mobile team will be available to answer your questions and give you hands on help on anything you need.

Interested persons:
 * 1) Robert Vogel

mediawiki.ui for developers


implements the evolving "Agora" visual style for buttons and forms in MediaWiki software. Learn how to apply it in your extensions and gadgets to deliver attractive consistent appearance. Actual real-life visual designers will be on-hand to give you advice and get feedback about what controls would be useful.

Interested persons:
 * 1) S Page (WMF)
 * 2) May Galloway
 * 3) Shahyar Ghobadpour
 * 4) Tpt
 * 5) AalekhN
 * 6) Peter Coombe
 * 7) Swidmann
 * 8) Robert Vogel

Flow for bot and tool developers
Flow is a modern discussion and collaboration system for WMF wikis. However, Flow pages aren't talk pages, so bots and semi-automated editing tools (e.g., Huggle, Twinkle) will have to adapt to handle them. Come explore the new Flow API and help us make improvements that will support some of the most important processes on our projects!

Interested persons:
 * 1) S Page (WMF)
 * 2) Benny Situ
 * 3) Mlitn
 * 4) Shahyar Ghobadpour
 * 5) Maryana (WMF)
 * 6) Ladsgroup
 * 7) Duesentrieb
 * 8) Robert Vogel
 * 9) Maximilianklein
 * 10) Bruno Perel

MediaWiki-Vagrant Bootcamp
Introduction to using MediaWiki-Vagrant to manage a development environment for hacking on MediaWiki. We'll do a really quick high level look at what Vagrant is and how MediaWiki-Vagrant uses and extends it. Then we'll learn just enough Puppet to understand what "roles" are and how to use them to configure your MediaWiki-Vagrant instance. Participants will then get hands on by creating roles to install and configure extensions used on Commons that are not yet available in MediaWiki-Vagrant.

Interested persons:
 * 1) Bryan Davis
 * 2) Greg Grossmeier
 * 3) Andrew Otto
 * 4) Tony Thomas
 * 5) Swidmann
 * 6) Robert Vogel
 * 7) Bruno Perel
 * 8) Faidon Liambotis

Learn to work with Zuul and Jenkins Job Builder
A tutorial with User:Hashar and User:MarkTraceur about how to add and maintain jobs in Jenkins on the WMF infrastructure.

Interested persons:
 * 1) QChris
 * 2) Greg (WMF)
 * 3) Andrew Otto
 * 4) Nikerabbit
 * 5) Seb35
 * 6) Tony Thomas
 * 7) Bryan Davis

Tool Labs workshop
An event-long workshop with Coren; hands-on migration, debugging and creation of tools on the Tool Labs. Join in and leave at any time; there will be impromptu and planned breakaway tutorials on various related topics as interest demands (planned: using gridengine tutorial, database query optimization (including federated tables), how to deploy web services).

Interested persons:
 * 1) Tony Thomas
 * 2) Swidmann

OAuth Workshop
Tutorial and opportunity to pair with CSteipp to get your tools/bots using OAuth for authentication and/or authorized access into MediaWiki.

Interested persons:
 * 1) Waldir (for Primerpedia)
 * 2) Stwalkerster (for ACC)

How to help pywikibot
Pywikibot is the most popular framework for running bots but how we can help improving pywikibot? There are several ways to help including solving and reporting bugs, wrangling bugs, bug triage and areas of developing including support of Wikibase and Wikidata, porting functionality from compat to core, and or network optimization (in order to reduce pressure on WMF servers)

Interested persons:
 * 1) Ladsgroup
 * 2) Maximilianklein

Translate extension workshop
Nikerabbit is there to explain how the Translate extension works. Let's fix your most wanted (or hated) Translate bugs together or work on new features.

Possible bigger topics to work on, depending on the interest:
 * Repository management. Translatewiki.net is using a collection of shell scripts to manage all repositories where translations are exported to and imported from. Lack of better repository management is blocking further progress on areas like automation of imports and exports.
 * How will page translation work with Parsoid and VisualEditor.
 * Let's provide more useful statistics about translation activity in nicer format.
 * Translation memory improvements.

Translate extension provides an translation editor, support for many different types of content, translation memory, statistics ad lots more. It is also very old and big extension, while also adopting new technologies like composer and CSS grid based interface.

Interested persons:
 * 1) Nikerabbit
 * 2) Nemo
 * 3) Siebrand
 * 4) Duesentrieb
 * 5) Seb35
 * 6) Thiemo Mättig (WMDE)
 * 7) Peter Coombe
 * 8) Bruno Perel
 * 9) Smuggli

ContentHandler
Using the content handler facility for managing structured content on wikis. This is aimed mainly at extension developers who want to handle non-textual content on wiki pages.

Interested persons:
 * 1) Duesentrieb
 * 2) Nikerabbit (If time permits)
 * 3) Thiemo Mättig (WMDE)
 * 4) Swidmann
 * 5) Robert Vogel
 * 6) Addshore
 * 7) Smuggli

Refactoring Core for Fame and Profit
This session will show how to refactor parts of MediaWiki core in order to improve modularity. The focus will be on backwards compatibility and testability. The TitleValue RFC will serve as an example.

Interested persons:
 * 1) Duesentrieb
 * 2) Robert Vogel
 * 3) Smuggli

Working with Historical Monuments Data
In this workshop we will look into ways how to work with data concerning historical monuments in the context of Wikipedia/Wikidata. Aspects that could be covered are:


 * Transfer historical monuments data from lists on Wikipedia to Wikidata;
 * Import historical monuments data from third party data sets to Wikidata;
 * Generate monuments lists in Wikipedia based on data stored in Wikidata;
 * Find easy ways to edit monuments lists in Wikidata;
 * Use historical monuments data stored in Wikidata in a mobile web application (How does it work in practice? What are the requirements regarding the data in Wikidata?);
 * Document the workflow and estimate the resources (volunteers, competencies, etc.) needed to include historical maps from Switzerland into the Wikimaps project framework;
 * Use historical maps from Switzerland, prepared by tools provided by the Wikimaps project, in a mobile web application focusing on historical monuments.

Interested persons:
 * 1) Beat Estermann (talk) 11:46, 14 April 2014 (UTC)
 * 2) Metaodi (talk) 12:45, 14 April 2014 (UTC)

= Meetings =

Complex questions are discussed in depth until reaching a decision.

Future of version control, bug reporting and other developer tools

 * ''See also Project management tools/Review.

It's been 2 years since we setup the current infrastructure around developer tools with Gerrit and Jenkins. Not everyone's happy and things break more often than we like. Additionally there's been rumblings for years about getting rid of Bugzilla. I think it's high time we have a discussion about what we envision our ideal development environment to be and figure out what it would take to get us there. Are there any tools (hint hint: Phabricator) that can help get us most of the way there?

Interested persons:
 * 1) Chad
 * 2) AKlapper
 * 3) guillom
 * 4) S Page (WMF)
 * 5) QChris
 * 6) Jdforrester (WMF)
 * 7) Greg (WMF)
 * 8) Maryana (WMF)
 * 9) Duesentrieb
 * 10) Tony Thomas
 * 11) Waldir
 * 12) Bryan Davis
 * 13) Mglaser
 * 14) Swidmann
 * 15) Faidon Liambotis

Architecture discussion
A continuation of our past architecture meetings where we discuss the future of MediaWiki's internal design.

Interested persons:
 * 1) RobLa-WMF
 * 2) Jdforrester (WMF)
 * 3) Hoo man
 * 4) Nikerabbit (depends on the topics)
 * 5) Duesentrieb
 * 6) Aude
 * 7) Bryan Davis
 * 8) Mglaser
 * 9) Robert Vogel
 * 10) Addshore
 * 11) Smuggli
 * 12) Faidon Liambotis

Tech People meeting Regular Users
A workshop (preferably in the early evening) to invite local users, beginners but also power users, who want to learn more about MediaWiki, our infrastructure and more. Kind of a "Ask the Developers" session but more informal.

Invite the local Wikipedia meet-up.

Interested persons:
 * 1) Manuel Schneider
 * 2) Hoo man Did similar things before, also am de-n
 * 3) Jdforrester (WMF)
 * 4) Duesentrieb
 * 5) Tony Thomas
 * 6) Swidmann

OpenPGP/GnuPG key signing party
A OpenPGP/GnuPG key signing party to strengthen the Web of Trust. There is no central key registry for this key signing party. Instead it will simply be a paper slip exchange. Bring
 * paper slips with your key id, fingerprint, name & emails, and
 * something to identify yourself (usually a government-issued identification, such as a passport).

If you need to make paper slips, you can for example use generators, or print copies of the output of

Interested persons:
 * 1) QChris
 * 2) Nemo Why not.
 * 3) Duesentrieb
 * 4) Mglaser
 * 5) Swidmann
 * 6) Robert Vogel
 * 7) Stwalkerster
 * 8) Faidon Liambotis

Wikidata in 2020
Let's talk about the long-term plans and ideas you have for Wikidata.

Interested persons:
 * 1) Lydia Pintscher (WMDE)
 * 2) Thiemo Mättig (WMDE)
 * 3) Mglaser
 * 4) Maximilianklein
 * 5) Daniel Mietchen
 * 6) Addshore
 * 7) Bruno Perel
 * 8) Tpt

= Unclear =

Proposals that seem to need clarification. Feel free moving them in any of the categories above.

Local Wikipedia forks
"Semi-autonomous instances of localized Wikipedia". Expand on the work of SOS Children, the Rachel Project to create packaged snapshots of Wikipedia contents that can be deployed on local storage e.g. SD cards in a tablet computer, 3G WiFi router, etc. and on a Raspberry Pi, etc. Ideally there'll be bi-directional updates from the local instance to Wikipedia and from Wikipedia to the local instance - asynchronous synchronization. People using one of these snapshot instances would be able to create new content and revise existing contents. One of the main goals is to help extend the reach locality and relevance of Wikipedia for people throughout the world.

I've been doing some work in this area already and will bring hardware, etc. to demo and test our work.

There's lots of known-unknowns for this project. With your help I hope we'll be able to

Interested persons:
 * 1) Julian Harty

Possibly interested:
 * Not interested if it's yet another offline Wikipedia work, but I'd be interested if this was focused on Kiwix/ZIM incremental updates + the ability to edit locally (and then submit changes). --Nemo 14:29, 6 February 2014 (UTC)
 * Except for the "edit feature", what you mean seems to exist already. At least two Kiwix developers will be there during the 3 days. 188.61.123.117 09:11, 7 February 2014 (UTC)
 * Only interested in the bi-directionality (i.e. "edit feature"). cf. Distributed Wikipedia. --Waldir (talk) 01:56, 18 March 2014 (UTC)

Extend VisualEditor
VisualEditor has been around for quite a while. As an extension developer, it's time to think about how you can integrate your extension. There are several topics that we'll need to talk about: We as a developer community need to explore the workings of the VE, this session is intended to be a starter.
 * How can my extension make use of / add to the VE?
 * Does my code survive the round trip?
 * How is my extension's code displayed in the VE?
 * How can I write dialogs that allow the user to easily edit my tags?
 * How can I add functionality to the VE in general?

Interested persons:
 * 1) Mglaser
 * 2) Jdforrester (WMF)
 * 3) Thiemo Mättig (WMDE)
 * 4) Swidmann
 * 5) Robert Vogel
 * 6) Tpt

Possibly interested:
 * 1) Bruno Perel

The new face of MediaWiki.org
There's an initiative to rework MediaWiki.org. We should discuss the plans and outcomes in order to make MediaWiki.org a site that is easy to use and valuable to all of us, be it users, site maintainers, core and extension developers and any other intersted parties. Let's go over the new design and make this a state-of-the-art site a so wide spread software like MediaWiki deserves!

Interested persons:
 * 1) Mglaser
 * 2) Waldir
 * 3) Peter Coombe

Performance guidelines
Let's get a draft of the performance guidelines nitpicked and approved.

Interested persons:
 * 1) Sharihareswara (WMF)