San Francisco Hackathon January 2012/Teams



Join a team! At the hackathon, what do you want to work with others on?



= Top teams so far =

These teams currently have a critical mass of members:


 * Automatic categorization: 6 members
 * Unit testing: 4 members
 * Visualize effects of the blackout: 4 members
 * Wikisource / ProofreadPage: 3 members
 * Wiki family management: 3 members

If you're not in a team with at least two other members yet, please consider signing up. These teams have two members:


 * Messaging in MediaWiki
 * Using Puppet to create Junos firewalls
 * Geolocating contributors
 * Reusable taxonomy

Updated: --Eloquence 18:07, 21 January 2012 (UTC)

= Web API =

Pretty Wikipedia references
Play with this cute toy that generates pretty references to Wikipedia.
 * existing code

Central Notice API
Central Notice powers almost all of the banners that you see on Wikipedia and the sister projects. The recent fundraiser exposed some limitations in the interface that would we greatly alleviated by having a read-only API to query information such as:
 * which campaigns are enabled and where are they targeted?
 * what banners are associated with a campaign?
 * what are the banner allocations in a certain country/project/language?
 * etc

In addition to providing resources for fundraising and other campaigns, the API would allow for mashups with services such as Google Earth enabling geographic visualizations of enabled campaigns and banners.

Interested participants are:
 * Peter Gehres

Resources:
 * enhancement request

(Your team)
Who & what

= Mobile =

For a full list of feature ideas, see Feature corral.

For all things mobile, go to the Mobile Projects page.

SMS and Twilio (see below) - demo

 * Judy
 * Romy
 * Neilk
 * Deeb
 * OpenVBX, open source alternative to Twilio

Nearby map view in mobile site - demo

 * anon. contributors like WikiTrip, sonetlab.fbk.eu
 * ClustrMaps for viewers
 * IP2location
 * Rupa
 * Rosemary

Nearby articles to an article-demo

 * Jeroen De Dauw

Android tablet homescreen widget (see below) - demo
WikiTabletWidget project on GitHub
 * Elizabeth Mezias
 * Kenneth Ng

Geolocation data missing in articles robot - demo

 * Shervin Afshar

Android app integration into QSP (Google search on home screen) - demo

 * Bob

iOS app (see below) - demo

 * Brion
 * Suyash Joshi
 * TheDJ Derk-Jan Hartman

"Did you mean" addition to search - demo

 * Arthur
 * Patrick

Wikipedia to Twitter or RSS - demo

 * Jesse, embeddedlinuxguy

Article slideshow on iOS

 * Suyash

Related pictures slideshow

 * Paul

WinPhone7 PhoneGap app

 * IE problem
 * Daniele
 * Ben
 * Doug

Browser or app links to our app via Android Intents

 * Yuvi

Save app to SD card

 * Tomasz

Proofreading, Wikisource extension

 * TheDJ Derk-Jan Hartman

Category prompt when editing - demo

 * Adam Souzis
 * Adam White

UI and usability

 * Slideshow
 * Make images in Wikipedia and Commons come alive!


 * Wikipedia Menu
 * Help design the way Wikipedia looks and works on mobile!


 * "Did you mean" suggestions for search
 * Surface the search alternatives on mobile


 * Access map link in articles
 * There is a little-known link in many place-related articles that could be a mobile-friendly map view


 * Wikipedia on a tablet
 * Rethinking how users interact with the projects


 * Accessibility
 * Checking and improving accessibility of Mobile website and applications

Tomasz Finc and Patrick Reilly can teach and hack on this.


 * Resources
 * Feature Corral page
 * Mobile Projects workspace
 * Feature Corral and Hackathon topics
 * MobileFrontend extension for MediaWiki (the code that powers Wikimedia's mobile sites)
 * MobileFrontend API
 * Live API

Participatory features and apps

 * Photos near me missing photos
 * Wouldn't it be awesome to contribute a photo to an article of a place you are near?


 * Geo-location stuff in general
 * We are defining our GPS API right now, take a look here

Many more participatory ideas are here.

iPhone, iPad, Android Tablet Apps
We're working on bringing our newly-released Wikipedia Android application to Android tablets and to the iPhone and iPad. Got one? Bring it to test with, or help us hack on the code directly!

The app is built mostly using HTML web technologies and PhoneGap to make porting to new platforms easier.

Brion Vibber and others will be able to help with this.


 * Resources:
 * This is the tracking bug for Android app v 1.1
 * Feature Corral page
 * released Android app (not yet tablet optimized)
 * Mobile/PhoneGap build instructions for Android, iOS, and web testing
 * source on GitHub

Mobile Web app for Wikipedia
I plan on making a mobile optimized app for Wikipedia using HTML5, CSS3, JavaScript, Zepto intead of jQuery and PhoneGap. + Zepto
 * Notes by Romy

Team:

 * 'Suyash Joshi' - HTML5 Developer
 * Romy Ilano - beginning HTML5 Developer. (see skills) romy.ilano@gmail.com
 * 'Node.js' - Hey inez why don't you add your team here?

Wikipedia SMS + IVR on Twilio

 * Summary: An SMS Application in which the user texts a wikipedia entry to a phone number, then is called up by the service and read the Wikipedia entry.
 * Github: https://github.com/judytuna/SMS-Wikipedia
 * Complete Notes to SMS Product

Product

 * Status: Works in Twilio sandbox with preapproved numbers.
 * User texts a Wikipedia entry request to a phone number.
 * Here we used Judy's pin + the Twilio sandbox phone number: MO: Text 39406402 to +1415-599-2671
 * Note: this is a test Twilio number so only select phones can call at the moment.
 * Example: Ballet to a phone number such as 415-599-2671
 * Our service calls back the user
 * Our service reads the user the requested Wikipedia entry
 * Example: Our service reads the end user the wikipedia entry for ballet
 * Example: Our service reads the end user the wikipedia entry for ballet

Try it out!

 * (415) 599-2671 Pin: 1514-2249
 * * this is only a simulation using OpenVBX, not a working model.
 * * Prototype assumes that user has called in and vocally requested: "Ballet" entry



Team

 * Totally interested in this NeilK 03:42, 21 January 2012 (UTC)
 * Romy Ilano - Snowyla - Snowyla 11:41, 21 January 2012 (UTC)
 * Judy Tuan Judytuna
 * Note: Judy is busy during Chinese New Year's. Happy New Year!

Glanceable display for mobile & editorial tools for tablet UI
Build on the existing Phonegap app, adding homescreen widgets that give people a glanceable display, make the content more browseable. Maybe add additional editorial tools for tablets. Start with Android, move on to Blackberry, Windows Phone 7, etc.


 * Elizabeth Mezias
 * Kenneth Ng

Nearby for mobile site
Created a standalone web app usable via any mobile or fixed device (desktop, laptop, smartphone, tablet, etc.), which can access the webpage and search for nearby Wikipedia articles within a radius of 5 miles (this is configurable). The articles are then mapped via Google maps with custom markers and clicking on the markers will direct the user to the respective Wikipedia article on the browser.

Demo'd and tested via smartphone (iPhone 4, HTC tablet, various laptops). Not tested with IE.

To setup and use as a standalone app:


 * 1) Set up a LAMP stack - fire up your browser of choice
 * 2) Get the php and image files from Github (see below)
 * 3) Put them in the appropriate places in your LAMP setup
 * 4) Go to "http:////search_nearby.php".
 * 5) Click on the big button and see the map with your current location and nearby Wikipedia articles.
 * 6) Click on the article markers for summary information and click on the title to go the full Wikipedia article in the browser.

Code: Github repo here

Note: Uses geonames.org API to retrieve nearby article information.

Acknowledgements: Roan (for providing API help for my first project - which got toasted on Saturday afternoon since it was already done), Yuvi (for telling me about geonames.org), Tomasz (for helping me debug XAMPP on my windoze laptop which was causing much network trouble).

Currently, in the process of being incorporated into the mediawiki open source repository with direction from RobLa and PReilly.

Team

 * Rupa Dachere -- rupa@undefinedcodechix.org - Everything except making the big button and the custom marker images
 * Rosemarie McKeon -- rosemarie.mckeon@undefinedgmail.com - Graphic design

= User scripts/Gadgets =

Keep track of Bugzilla bugs
Rob Moen worked on a gadget to help inform users about the status of bugs they care about. It might be good for pages which use bug templates like mw:Template:Tracked. If you polish it, we might promote it to default gadget or site script.


 * Source: User:Robmoen/bugStatusUpdate.js

List pages I edited recently
It would be nice to have a link that opens a small pulldown list of the last pages the user edited. This is kind of like a ajax version of the user contributions page, but lists pages, not edits. -- Duesentrieb ⇌ 22:41, 19 January 2012 (UTC)

List the last x editors of the current page
It would be nice to have a link that opens a small pulldown list of the last users who edited a page (excluding minor edits and pots). This is kind of like a ajax version of the user history page, but lists users, not edits. -- Duesentrieb ⇌ 22:41, 19 January 2012 (UTC)

Automatic categorization
Automatically categorize Wikipedia articles by first identifying candidate articles based on similarly categorized articles, then presenting these candidates to logged-in users by way of a Special page. These users can commit or reject the change without leaving the page. The target article's history reflects the change under that user's username. We do not plan to support automatic article modification.

Candidate article identification happens in a separate process (not an extension or Gadget) that tentatively uses data dumps to create a graph representation of articles and category trees. We search for anomalies in clusters while filtering out semantically inappropriate suggestions.

Project name, in-depth technology discussion, and Github repo are forthcoming.


 * Mahmoud Hashemi
 * Kurt Rose
 * Daniel Kinzler
 * with special guests, Stephen LaPorte, Ben Plowman, and Sarah Nahm.
 * Interested:
 * Jeroen De Dauw

Accessibility: skip content to make screenreaders happier
A blind reader wants a feature to remove image galleries, big information boxes, and so on from articles for use with a screenreader. Here's the more detailed feature request.

Visualizing article quality
We will build a tool to automatically evaluate the quality of an article, combining manual article assessment with other metrics. This tool should guide readers on improving articles, help educators understand the nature of collaboratively-created content, and illustrate the evolution of article quality from new perspectives.
 * - Stephen LaPorte (talk) 18:20, 20 January 2012 (UTC)

Source

 * Github repo
 * Demo code User:Slaporte/common.js on EN WP

Embed musical score in Wiki pages
Work on features, bug fixes, and security for the Score extension, to allow easy embedding of sheet music in Wiki pages.
 * Talin Salway

(Your team)
Who & what

= Other =

Reusable taxonomy
Improve the reusability of Wikipedia's user-generated taxonomy by extending the Category API to support, for example, a third-party website's tag autocompletion widget.


 * Adam Wight
 * Adam Souzis

Integrating Wikia code
Owen Davis and Tomek from Wikia are going to see if they can figure out how to systematically make Wikia’s code more integrate-able into MW installs.
 * Resource: Wikia code

Automatic patch tester
We have patch-tester (a Ruby on Rails hack) to automatically go through all the MediaWiki patches volunteers have uploaded to Bugzilla and test them. Help improve or replace it.
 * User:GICodeWarrior (author of tool)

Wiki family management extension
Sites like Wikia, Occupy MediaWiki, WikiHow, and others have dozens or hundreds of MediaWiki installations running off the same databases. They'd like a wiki family management extension so they can store and load configuration sets in a database.
 * User:GICodeWarrior
 * mglaser
 * Jeroen De Dauw

Google Docs integration
Provide upload, search and embed functionality for arbitrary files
 * User:GICodeWarrior

Unit Testing
Implement unit testing with PHPUnit, Selenium and QUnit.

The extension has been added to the mediawiki repository:

https://www.mediawiki.org/wiki/Extension:UnitTest

Interested participants:
 * Jeremy Postlethwaite
 * Alolita Sharma
 * mglaser
 * claire Desombre

Visualize the effects of the January 18th blackout - TENTATIVE
We blacked out English Wikipedia to protest SOPA and PIPA this week. Now we have an data set and would like to visualize it across the world.

Data we have: millions of entries with timestamp + ZIP code that was looked up, and possibly the timestamps of clicks on social media buttons (e.g. Facebook & Twitter).

We'd like to map out strong nodes of participation, visualizing what happened over the course of the day (changes). Perhaps we could add an ability to hover/click to get names of Representatives & Senators. Additional timelines it would be cool to cross-reference: other sites' protests starting and stopping, and the numbers of pro-PIPA Senators and pro-SOPA Representatives decreasing over the course of the blackout.

This activity is very front-endy. We might employ technology like jQuery/JavaScript, Python, jqplot or d3, etc.

This is slightly tentative because Nimish and Ryan need to get the aggregated, Privacy Policy-compliant data set ready for everyone to play with by Saturday afternoon.

Interested participants:
 * Nimish Gautam
 * Ryan Faulkner
 * Andrew Clarkson
 * Karen Rustad

How we blacked out Wikipedia
Do any participants want to hear the behind-the-scenes story of how we designed, tested, and deployed the anti-SOPA/PIPA blackout over the course of a few days?

Participants at the hackathon could include Brandon Harris, Ryan Lane, Patrick Reilly, Yuvi Panda, Ryan Kaldari, and other key developers and systems administrators who worked on the blackout.

Using Puppet to create Junos firewalls
We need to use puppet exported resources to create SLAX statement for the Juniper firewalls to understand.

Anyone who knows puppet, Python, or Junos would be incredibly helpful! Help make wikipedia more secure!

Background reading - https://www.juniper.net/us/en/community/junos/training-certification/day-one/automation-series/applying-junos-automation/

http://docs.puppetlabs.com/guides/exported_resources.html


 * Leslie Carr
 * Ryan Anderson

Messaging in MediaWiki
Short-term messaging is a feature missing in MediaWiki. There is a prototype of StatusNet integration with MediaWiki which was developed by Daniel Kinzler and Hallo Welt!. I'd like to discuss the usability of this prototype and figure out what's needed to make this a cool collaborative tool. Also, there are still some integration issues that need to be tackled :).


 * User:mglaser

I'm interested in generating RSS feeds and "activity streams" (e.g. tweets) from MediaWiki pages.


 * User:Jdz (JesseZ)

Gerrit UI improvements
Suggested by Roan Kattouw

We're trying to move MediaWiki development from Subversion to git. We're going to use Gerrit for code review.

But Gerrit's UI sucks. It's written in Java. Roan has a laundry list of items he's going to add to this wiki. If you aren't afraid of Java and want to help, find Roan...

The list of Gerrit internals bugs that we care about is at https://labsconsole.wikimedia.org/wiki/Gerrit_bugs_that_matter. More generally, we're also interested in improving Gerrit's UI which has lots of UX issues.

WorkingWiki API + Ajax/jQuery interface
Adding an API to the WorkingWiki extension would be very useful. That's what I'm here to start on - and moving on from there to giving it an attractive, extra-usable Ajax/jQuery interface for the 21st century. - Wonder 04:00, 21 January 2012 (UTC)

No more edit conflicts
A rejected edit can be discouraging to *pedia contributors (see "WP:Clubhouse? An Exploration of Wikipedia’s Gender Imbalance"). Explore which strategies could be used to eliminate this nuisance.

One proposal: Enhance revision ids to support version vector, initial goal will be to ease the 3-way merge bottleneck. Tolerate article text in an ambiguous state, meaning that unresolved conflicts will result in a fork which can be cleaned up later by the original poster or an editor.

This change to revision ids will also allow for asynchronous replication, in cases such as university collaborations or on unreliable networks. A rough analogy is that MediaWiki databases would act like a distributed version control system (git) such that people could clone and fork them.


 * Adam Wight

Style guide for MediaWiki
We currently have a Style guide for MediaWiki developers to help make a consistent visual and design style. Please help us improve it!


 * Brandon Harris User:Jorm (WMF)
 * Shervin Afshar

Wikisource / ProofreadPage test setup

 * Project page

Currently, the ProofreadPage extension (critical to the Wikisource project) doesn't have a maintainer, and is one of the more fragile components in our deployment chain. There's some work that's needed in order for this extension to be ready for Wikimedia's 1.19 deployment, and some testing that needs to happen before we can feel confident putting it out there. We plan to get a labs instance of this extension, and help a possible new maintainer get up-to-speed.
 * RobLa-WMF (Rob Lanphier)
 * Zaran (Thibaut Horel)
 * TheDJ (Derk-Jan Hartman)

Fast import (mwimport.py)
Mediawiki export scripts might be sophisticated, but the import functionality is lagging behind. Write a fast importer to load articles from xml-formatted dumps.

Done: proof of concept, imported ruwiki xml-bz2 in less than an hour

As pages are read from xml, tab-delimited raw database rows are streamed to separate files for each table. A short sql script is generated to load each table.

Outstanding issues:
 * document
 * test fixtures
 * could improve by integrating with mwlib?
 * command-line usage
 * cannot be interrupted
 * load infile transaction granularity
 * mysql load could act like a pipeline if it waited at EOF
 * mysql-specific assumptions about escaping and load infile
 * written for pages-articles. Design for the other dump facets
 * replace vs ignore

Resource: mwimport.py


 * Members:
 * Adam Wight

I18N support for Non-Roman Languages
Walkthrough current extensions for input support using on-screen keymaps (Narayam) and font support for rendering non-Roman fonts using extension WebFonts. Identify open source fonts for Farsi/Persian (and other related languages such as Urdu and Kashmiri) as well as Korean for integration into WebFonts as well as develop keymaps for Narayam.


 * Outstanding:
 * Develop keymap for Korean
 * Add Korean support for WebFonts
 * Add keymap for Farsi


 * Resources:
 * Internationalization and localization tools
 * Extension:Narayam
 * Extension:WebFonts


 * Members:
 * Alolita Sharma
 * Shervin Afshar
 * Chulki Lee

Wikipedia usage treemaps

 * Resources:
 * source on GitHub

(Your team)
Who & what