Amsterdam Hackathon 2013/Topics

=Suggested Workshops=

The following are suggested workshops for the Amsterdam Hackathon. From this list we'll select 6 workshops based on your feedback and run those twice during the course of the hackathon.

Set up your development environment for MediaWiki
We’ll explain how to get set up so you can work on code and suggest your improvements to the MediaWiki maintainers -- this will include Git, Gerrit, an easy development environment via vagrant, and coverage for Mac, Linux, and Windows.

How to get your code deployed on Wikimedia

 * Timo Tijhof and Roan Kattouw will explain how to write great MediaWiki code
 * Chris Steipp will show you how to prevent falling into often seen security holes and improve your skill level.
 * Tim Starling explains why caring about performance of your code is important if 23 billion pages per month have to be served by a website, and where to look to improve the performance of your code.

Using Wikimedia Labs, migrating from Toolserver (2x25 min)
Labs and Toolserver - In this part of the session, you will be informed about the latest on migrating Toolserver projects to Labs, and on what changes you might need to make in your bot or web tool to take advantage of the Tool Labs environment.
 * Wikimedia Labs - In this part of the session, you will be guided through setting up your first labs project.

Converting templates to use Lua
This session will feature a short introduction to Lua, and after that you will work on actually converting those pesky expensive templates to use Lua, and make your wiki faster. The experts will help you take the hurdles you cannot take alone.

Maps
How can you use Wikimedia’s Open Street Maps tileserver in your tools, or to improve Wikivoyage, Commons, Wikipedia, and all the projects? In this session you’ll learn how, and you’ll see what needs help to improve our map-related infrastructure.

Bots
The Python Wikipediabot Framework is a collection of tools that automate work on MediaWiki sites. How can you use pywikipedia to write a simple bot? And how can you help improve pywikipedia and its documentation to help make bots better?

Interface design solutions for 5 problems in one hour / Pau Giner, Trevor Parscal, Arun Ganesh
In this session, designers and user interaction experts will help you solve 5 interface design problems in one hour. The session will start with a 10 minute introduction of the methodology, and then, at a rapid pace, you will contribute to solving five interaction and design problems in 10 minutes each.

Automating integration tests
All you need to start contributing to browser testing is a browser :) and knowledge of plain English. Yes, it's that simple. Acceptance Test Driven Development starts with a clear description of how a feature should behave. These plain-language specifications are the most important part of the whole project. The better the specifications of the behavior of particular features, the better the automated tests will be! Željko will explain how you need to write tests, and after that you can help make Wikipedia regression free by writing tests. This session does not require you to write any code.

=Potential topics= This page is to gather possible topics for the Amsterdam Hackathon 2013. The hackathon is a open-structured. If there's something you intend to work on, please add to the list or chime in your support on a particular topic. Based on the suggested topics we can all decide what to work on and define goals for the Hackathon.

Tutorials/Workshops
Include if you're volunteering to give one or would like to follow one
 * Workshop: How to move my Toolserver tools to Tool Labs? Note: We would like to do this rather early in the programm so that people have time to come and meet us in the Hacking corner. Covered: Quick intro "How does Tool Labs work?", account creation, The projects "Tools" and "Bots" in Tool Labs. Which is the right one for my tool(s)? How to migrate web tools and bots? Q&A. Ideally, participants should have requested Tool Labs accounts beforehand, but we'll explain the process.
 * Scribunto/LUA tutorial/workshop
 * Parsoid Talk
 * talk Visual Editor
 * talk/workshop labs
 * tutorial local configuration messages
 * tutorial/workshop bug managment
 * talk secure coding
 * talk limn graphs
 * workshop browser test automation - I can run this - Zeljko.filipin(WMF) (talk) 10:52, 12 April 2013 (UTC)
 * pig/oozie/machinelearning/wikihadoop workshop
 * release management Q&A
 * microformats (I can run this - Pigsonthewing (talk))
 * talk SOAP/XML web service

Mediawiki

 * MediaWiki - Of course
 * ContentHandler -- new in MW 1.21
 * MediaWiki API
 * 2.0 RFC / cleanup RFC
 * Wikidata API RFC.
 * Lua/Scribunto scripting
 * complete/extend pr0n : a module to convert Indo-Arabic numerals to locale prononciations strings.
 * A security training
 * Writing "acceptance test" criteria for use in automated QA
 * Implementing the tests
 * Editor Engagement tools like Echo, Flow
 * Skinning system / Vector cleanup & migration to core / Outdated documentation
 * Design:
 * Designs for mobile versions of existing projects.
 * Usability testing for Wikimedia projects.
 * Contribute components to Agora
 * Structured data push support for recent changes
 * Maps/geocoding
 * Mobile web performance
 * Gnome desktop integration of the mediwiki environement
 * desktop integrated login service
 * wiktionary and gnome-dictionary
 * wikimedia projects and the gnome-shell search bar
 * WMF platform/ops joint tasks e.g.: Bug 40025 - unfortunately needs specific permissions
 * Translate extension
 * I18n: How to make interface messages dependent on wiki configuration or user-created content translatable via Translate extension. (??)
 * Auto-generation of image credits; seeen:Wikipedia talk:Manual of Style/Captions
 * Developping a Getting Things Done task mananger within mediawiki?

VisualEditor

 * Integration with MediaWiki, skins
 * Integration with non-MediaWiki platforms
 * Visual template editing for fun and profit
 * Writing plugins for new features
 * Non-Wikipedia needs from VisualEditor

Parsoid

 * HTML storage
 * DOM-based templating with support for visual editing
 * Fragment caching
 * Data models for extension content

Wikidata

 * Wikidata

Labs/Tools

 * Toolserver and tool labs: Ongoing hacking corner for people interesting in migrating tools to Labs, accompanied by hands-on help and on-the-fly improvements to the documentation
 * Pywikipedia
 * sync.py, a synchronization tool
 * simple PHP front end, to make bits of pywiki power available to non-shell folks
 * Integrate dictionaries for translation tools, Wikisource
 * Wiktionary tools
 * Advanced word search (such as these).
 * w:WP:ACC/w:WP:UTRS migration to labs, code cleanup, restructure core code, etc.

Promotion/Interaction

 * MediaWiki promotion
 * Outreach to IT schools
 * Country and regional developer conferences
 * MediaWiki Camp
 * Promote MediaWiki as free alternative for corporations, small and medium companies
 * Promotion and outreach: how to engage better with the Wikimedia community and other groups out there.
 * WMF devs vs. communities
 * IRC bots in developer channels (we've wanted to move "spamming" bots out of #mediawiki for a long time, maybe it's finally a time to sit down together and sort this out) / eventually discuss some improvements regarding IRC
 * Documentation structure

GLAM/WLM

 * Some kind of Wiki Loves Monuments sprint that includes photo upload from mobile devices
 * Wiki Loves Public Art tooling
 * Wiki Loves Monuments tooling
 * GLAMwiki toolset project
 * QRpedia: where now? (I can lead this discussion - Pigsonthewing (talk))

OpenStreetMap

 * production tile server
 * OSM tools in labs / toolserver
 * OSM gadgets
 * other OSM hacking

Math

 * future of the extension math
 * math for mobile devices
 * making math accessible (for disabled persons)
 * search

Uncategorized

 * RENDER
 * Cosyne: Multilingual Content Synchronization with Wikis
 * mediawikixml2meteor2phonegap, tool to turn an MW XML dump into a meteor.com app and consequently a phonegap app (that can be used while offline)
 * Kiwix
 * making a tool to make epub containing a dump of all current featured articles of a wikipedia chapter

Off topic

 * It would be really cool if someone could give a small guided tour / walk around Amsterdam!