India Hackathon 2011/Schedule notes

Session description

 * Goal 1: Communicate key hackathon themes and goals
 * Goal 2: Equip attendees with base level knowledge to help them get to productivity ASAP
 * Will be followed by people signing up into teams, from proposed topics or newly proposed ones
 * Additional teaching will be done as part of group activity; we may want to set up some additional focused tutorials on more complex topics (e.g. Intro to Phonegap)

Structure

 * Welcome
 * Why we're here: I18N, Mobile, Offline => Access to Knowledge
 * We're successful if ...
 * Check-ins (let's keep track of the rough % responses):
 * How many people are actively doing development work in PHP?
 * How many people are actively doing development in JavaScript? How many are familiar with jQuery?
 * How many have done mobile development work? For iPhone? For Android? Has anyone used Phonegap?
 * Who is familiar with MediaWiki? As a user, as a developer?
 * Have you used git? svn?
 * Introduction to the technical topics
 * [EM] General architecture
 * Key components
 * MediaWiki
 * MediaWiki API
 * MediaWiki extensions
 * Gadgets and user scripts
 * Android/iOS app implemented using the Phonegap framework
 * Kiwix offline reader
 * Checkout - via SVN (if you're more comfortable with it than git, but note that you'll have to make a patch)
 * Checkout - via Github mirror (MediaWiki core, all MediaWiki extensions, MobileFrontend extension, l10n/i18n extensions)
 * Note: We're working with the development version, so things may break!
 * Installer
 * Note common gotchas, e.g. is PHP set up correctly, do we have the MySQL library, is the image directory writable
 * Modifying LocalSettings.php after the installation
 * Setting up extensions
 * Use of maintenance/update.php
 * Demoing some example extension setup/configuration/use
 * Extension:Narayam
 * Extension:MobileFrontend
 * Extension:WebFonts
 * Extension:Collection (PDF export)
 * Setting up and building the Nitobi app
 * Brief development practice notes
 * Security for developers
 * Coding conventions
 * Introduction to MediaWiki development
 * API docs
 * Code docs
 * MediaWiki i18n, translatewiki
 * Pre-commit checklist
 * wikitech-l mailing list

Session description

 * Intro to SMS/USSD using Praekelt's vumi
 * Restrictions on SMS & USSD
 * How to be involved in the dev work
 * Intro to Wikipedia on SMS via txtweb, Intuit
 * Mass usage of Wikipedia SMS app on txtWeb
 * How to develop on txtWeb and contribute more on the Wikipedia app

I18N

 * Font delivery: 6 people - (Siebrand)
 * Font testing: 4 people - (Pravin)
 * On-screen keyboard: 5 people - (Amir)
 * Indic language support matrix: 4 people - (Gerard/Siebrand)
 * Incubator/Narayam support: 3 people - (Niklas)
 * UI for language selection: 4 people - (Brandon)

Mobile

 * Potentially: Contribution - 2 people
 * Zero - 1 person
 * SMS/txtweb - 6 people (Amit)
 * Mobile UI - 5 people (Phil)
 * wikipedia.org for mobile 2 people (Patrick)
 * Android app - 4 people (Tomasz)

Offline
Emmanuel, please put notes here :-)

Other ideas

 * smsspeak UI
 * Wikipedia Television

I18N

 * Font evaluation: 7 people (Santhosh)
 * On-screen keyboard: 5 people - (Amir)
 * Language support teams and CLDR evaluation: 4 people (Gerard)
 * Narayam improvements: 4 people (Santhosh/Robin)
 * UI for language selection: 3 people - (Brandon)

Mobile

 * Zero - 1 person
 * SMS/txtweb/setting up vumi on Wikimedia Labs - 3 people (Amit)
 * Mobile UI - 5 people (Phil)
 * wikipedia.org for mobile 2 people (Patrick)
 * Android app - 4 people (Tomasz)

Offline

 * Kiwix improvements: localization, introduction to Kiwix development - 3 people (Emmanuel)

Other

 * Bug smashing - 4 people - Sumana

Other ideas

 * smsspeak UI
 * Wikipedia Television

= Notes =

Range of skills


 * PHP: 16
 * JS: 8-10
 * Mobile: 7-8
 * iOS: 3
 * Android: 5
 * PhoneGap: 2
 * MediWiki: 15
 * Extensions: 3-4
 * GIT: 10+
 * GitHub: 5-7
 * SVN: 10+
 * No VCS use: 0

Day 1 outcomes
As presented by group/project leads:


 * Santhosh: We tested the Lohit family of fonts for coverage. We found some of the bugs, and we updated the version of the fonts used in WebFonts. See http://etherpad.wikimedia.org/LohitFonts
 * Amir:
 * New Narayam keyboard mappings: Marathi, Urdu, Punjabi
 * On-screen keyboard
 * Niklas: Narayam ready for Wikimedia Incubator, Wikimedia Mobile ready for translation
 * Gerard: Indic language matrix updated
 * Emmanuel:
 * Kiwix translation sprint: 4 new Indic languages added
 * Phil/Tomasz/Patrick:
 * Tutorials on Phonegap and MobileFrontend
 * Initial implementation of WP Zero
 * git tutorials
 * Getting ready for Wikipedia USSD prototype
 * Brandon:
 * Language selection prototypes developed
 * SMS support for Wikipedia -- making it easier to get selections of content. Specs are done.
 * txtweb plugin for "Did you know" articles from Main Page done
 * Spec for mobile phone translation UI done
 * ShortURL extension improvements
 * Coding challenge mobile photo uploader backported to Android 2.2

Day 2 outcomes
As presented by the project leads


 * SMS/txtWeb group
 * User can get crisp infobox details of an article.
 * TOC(Table of contents) implementation. User sends @wiki keyword -toc and it renders the table of contents as SMS links, which user can go deeper into by replying with letter links - WIP
 * Summary - Intelligent summary of a wikipedia page on SMS - WIP


 * Mobile (Phil)
 * Ideas around changing the user interface developed into mockups
 * "Related random page" -- show random page that's related to the current one
 * "What links here" -- ranking them by pageviews, by ratings, etc.
 * Wikipedia Zero prototype implemented in MobileFrontend
 * Android app (photo uploader and official app) ported to 2.2.
 * Share with feature MobileFrontend / Android app
 * New mobile landing page
 * Input methods (Santhosh)
 * Tons of new input methods added
 * Fonts updated and default fixed based on feedback
 * Wikipedia over USSD (Jeremy)
 * Prototype built, needs some cleanup and API support
 * On-screen keyboard
 * Protoype built in Narayam
 * Language selection
 * New UI prototypes developed, will be posted soon
 * Kiwix
 * New localizations