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

 * Elizabeth
 * Kenneth Ng

Geolocation data missing in articles robot - demo

 * Shervin Afshar

Article slideshow on iOS

 * Suyash

Related pictures slideshow

 * Paul

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

 * Bob

iOS app (see below)

 * Brion
 * Suyash Joshi
 * TheDJ Derk-Jan Hartman

"Did you mean" addition to search

 * Arthur
 * Patrick

Wikipedia to Twitter or RSS

 * Jesse, embeddedlinuxguy

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

 * 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.
 * 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



COSTS
This is a non-profit activity and fully open source. There are minimal costs that we must pay the Twilio service, listed below. I see this any charges or costs used in a way that encourages donations to the Wikimedia Foundation.

US pricing for Twilio

 * Reference, see http://www.twilio.com/pricing for current pricing

Here is a table of rates applicable to us, January 22, 2012 12:53 PM PST

Comments from Romy:
 * This is extremely cheap IMO compared to commercial options. It's also very fast to change.
 * You could set a limit on how long the call is--a 20 minute call would be 40 cents cost to us

Wikimedia Foundation donations

 * Romy: This product could be used for wikipedia foundation donations if there were a way to do seamless voice-activated carrier billing or paypal flows purely by voice. Users would hear a short message before they hear their entry read to them. Users could also alternately offer to pay an additional fee above the baes 2 cents/minute outbound call and 1 cent sms received (minimum of 3 cents plus minimal fee) as donations to Wikipedia's foundation.
 * Romy: This is an economical version of a fundrasing drive phone call, telephone number or SEO/google banner advertisement.
 * Romy: This has a higher user engagement as the service is user-initiated and specialized to each user. If you are going to make a request on a particular topic, you are going to be much more receptive to donating to Wikipedia Foundation than if someone cold called you from a phone bank or emailed you a donation request.
 * Romy: The wikimedia foundation requests could be shorter, more concise and sprinkled inbetween delivery of content read by our service. This would be less annoying than an ad opening up or hitting the user with a long wikipedia speech.

Product Next Steps

 * 1) Optimizing content read back to user
 * 2) remove the infobox during the "readback time" - user avoids having to listen to a long list of Content topics in a longer article
 * 3) Push Twilio phone number to production so that end users can access the service outside of the sandbox without having to enter the pin and without having to be verified through Julie's sandbox
 * 4) Integrate into OpenVBX -> this will create a drag and drop interface simple to use on any computer by nontechnical people. Interns would be able to change the Wikimedia foundation recordings, shut down and start up numbers with virtually no training.
 * 5) Additional Functionality
 * 6) Add seamless payment technology - voice only - or set up over a website at a PC - so that donations to the Wikimedia Foundation can be activated through voice using carrier billing or Paypal
 * 7) Add additional, easy IVR menu options - such as the user saying "Stop" to stop the recitation, "Contents" to list contents
 * 8) Add voice activated email function so that user can email entry by voice to specified email address
 * 9) Add accounts so that the service recognizes the user

People

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

'Car Voice Application'



 * Summary: This is a hands-free voice version. A user would be able to access it while driving their car, for example when they are stuck in traffic.
 * Summary: This is a hands-free voice version. A user would be able to access it while driving their car, for example when they are stuck in traffic.

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

Car voice Application flow

 * Flow:
 * User calls our phone number while they are in the car.
 * Our service greets the end user.
 * Example copy: Wikipedia Service. What should we read to you?
 * Pause
 * Our end user speaks into the phone with a request.
 * Example: "End user says: Ballet"
 * Our service interprets user-spoken term "Ballet" using the twilio voice mail transcribe piece
 * Our system returns a reading of the request to the user on their phone.
 * End user can listen to the wikipedia entry without having to type to text

Team

 * * Romy Ilano - Snowyla - Snowyla 11:41, 21 January 2012 (UTC)
 * Judy Tuan
 * Neil K

Use Case
In this use case, a sales engineer is on the road 70% of his working day. He must visit new clients constantly and pore over detailed technical data. He doesn't have time to review while stuck in traffic.
 * 1) Sales Engineer is trapped in traffic for 3 hours. He has only had about 30 minutes to review new emails on technical data and brush up on an obscure technology.
 * 2) Sales Engineer is about to have coffee and build a personal relationship with a Latin American manufacturer who is a ballet fanatic and former star male ballet dancer in a Brazilian dance company.
 * 3) Sales Engineer calls '(415) 599-2671 Pin: 1514-2249'
 * 4) Romy: This phone number and pin work, try it out! It's just a simulation.
 * 5) Sales Engineer requests information about ballet
 * 6) sales engineer requests microchip entry.
 * 7) Sales engineer requests table of contents.
 * 8) Our service reads sales engineer the table of contents, each entry followed by a number. "Introduction, 1, History, 2.."
 * 9) Sales engineer requests section number for "Silicon Graffiti" within microchip entry. He is able to skip to the relevant section heading after being read the table of contents of the article.
 * 10) Sales engineer requests that the microchip technology
 * 11) Sales Engineer avoids texting while driving, avoids being late, avoids entering the meeting unprepared. Sales Engineer is able to get into a great discussion about the finer points of classical ballet despite being stuck in traffic for most of the morning and having had little time to prepare to meet the manufacturer.

Next Steps

 * 1) January 22, 2012 11:42 AM Build an application with basic request functionality- could someone please help me? Romy romy.ilano@gmail.com

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

Geolocating contributors

 * Rupa Dachere -- rupa@undefinedcodechix.org

Geolocation Team
Rupa Dachere Looking for Javascript/Jquery help for this project. Also, knowledge of Google Maps - putting pins on a map.
 * Rosemarie McKeon -- rosemarie.mckeon@undefinedgmail.com (interested!)

= 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)

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.

Jeremy created an extension of Github:

https://github.com/gammamatrix/Mediawiki-Extensions-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

Google Maps mashup
Mashup between Google Maps and Wikipedia.


 * Suyash Joshi

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