India Hackathon 2011

November 19 and 20
Thank you for helping us improve access to Wikipedia and Wikimedia's other projects across all languages, via mobile devices, and for people without Internet access! See the summary blog post and more technical summary.

India Hackathon Contact and Schedule PDF
This coding event happened concurrently with the WikiConference India 2011, and near its venue. Hackers of all backgrounds are welcome at Wikimedia Hackathons and prior experience with the MediaWiki software is not required. Translators with a linguistic background who can help improve language support for Wikimedia technology projects are also welcome.

  • Key enhancements to Extension:MobileFrontend
  • Creating new features and apps for reading, contributing and giving free access to Wikipedia on practically any device
  • ... and much more
  • Making it easy to get copies of Wikimedia content for offline use
  • Implementing offline reading tools for mobile devices
  • ... and much more




The MACCIA Halls (Verified Google Map)
Maharashtra Chamber of Commerce, Industry & Agriculture
Oricon House, 6th Flr., 12, K.Dubhash Marg,
Near Kala Ghoda, Fort,
Mumbai - 400 001
Directions from WikiCon venue at University of Mumbai convocation hall:
go northeast on MG Road past Hutatma Chowk,
turn right onto Dr Dadabhai Naoroji Rd.,
turn right at P Wachha onto Sir Pherozeshah Mehta Rd.,
pass by P Vachcha Agiary (on the left),
turn left onto S Bhagat Singh Marg and see MACCIA on left

Bollywood is based in Mumbai
Bollywood is based in Mumbai


Saturday, November 19th
09:00 – 09:30 Registration
09:30 – 10:30 Introduction of Wikimedia Hackathon
Introduction of Hackathon topics
10:30 – 12:00 Hacking in groups
12:00 – 13:00 Lunch
13:00 – 17:00 Hacking in groups
17:00 – 18:00 Presentations and wrap-up
19:00 – 22:00 Dinner
Sunday, November 20th
9:00 – 09:30 Introduction of Hackathon topics
09:30 – 12:00 Hacking in groups
12:00 – 13:00 Lunch
13:00 – 16:30 Hacking in groups
16:30 – 18:00 Presentations and wrap-up
18:00 Hackathon ends


Registrations have been closed. If you were invited by Wikimedia Staff, please send an e-mail to


There are three main topics in this Hackathon. Please go directly to your desired area:


Key hacking resources

Font Delivery

  • Goal: Improve font delivery for mobile browsers/devices and web browsers in general from on Wikipedia
  • Tasks
    • Using the browser testing guide the following list of issues has emerged:
      • WebFonts work with Android, But for Indic scripts, Android should support the complex script rendering support
  • Requirements: Proper font delivery, input and rendering for the following scripts:
  • TODO: Contact Device and OS makers for client integration. This may be specific to device, vendor or rendering engine.
  • Lead: Google/Nokia/etc contact + Santhosh

Font Testing

The Lohit font family for Indic languages was released by Red Hat as open source fonts in 2004. This font family today supports 16 major Indic languages. Wikipedians in various languages need to have more complete font support for Indic languages and other non Roman languages built into MediaWiki's infrastructure to support both reading and editing on desktop and mobile. In this project we are aiming to integrate and test the Lohit font family support for mobile Wikipedia browsing. We invite Indic localizers to help us test and report bugs for enhancing our mobile user experience.

  • Goal: Test the Lohit family of fonts ( ) for on demand mobile rendering.
  • Tasks
    • Test Lohit fonts library for each of languages listed below:
      • Assamese, Bengali, Devanagari (Hindi, Kashmiri, Konkani, Maithili, Marathi, Nepali, Sindhi), Gujarati, Kannada, Malayalam, Oriya, Punjabi, Tamil, and Telugu
    • For the ones that don't work research what other families exist and how we can contribute upstream
  • Target platforms: Symbian S40/S60 & Android 2.2.x+
  • Requirements: Proper render and Input
  • TODO: Expand browser testing guide to Indic languages
    • Define test cases for Indic language support on various browsers / platforms
    • Define criteria for passing tests
    • Loading on-demand fonts - what needs to happen on the web server side + mobile gateway
    • FAQ
      • Font not found
      • Font not installed
      • Font not rendered
      • <Add more Q&A>
    • Hardware support: Phone devices being tested.
  • Lead: Santosh and Gerard

Notes: etherpad:LohitFonts

On-screen keyboards and input support

Key mappings for desktop

Key Resources

  1. Narayam

Key mappings are also known as "keyboard mappings" or "keyboard bindings".

MediaWiki has an extension that supports key mapping called Narayam. Narayam adds language input methods for all MediaWiki text input fields. The primary users of this extension are from wikis that use non-latin scripts. Currently supported typing schemes are:

  • Indic languages
    Assamese: Avro (Phonetic), InScript, Bornona, Transliteration
    Bengali: Avro (Phonetic), InScript, National Keyboard
    Hindi: InScript
    Kannada: Transliteration, InScript
    Malayalam: Transliteration (Mozhi), InScript
    Nepali: Transliteration, InScript
    Odia: Transliteration, InScript
    Sanskrit: Transliteration, InScript
    Sinhala: Singlish (Partial phonetic), Wijesekara
    Tamil: Transliteration, Tamil99
  • Latin
    Esperanto: Esperanto x-code transcription
  1. Add new key mapping for the scripts

On-screen keyboards for desktop

Goal : Add onscreen keyboard support for input fields, preferable with the Narayam extension.

Possible ways:


  • Design and finalize the User interface.
  • Identify the javascript library
  • Explore the option Integrating with the already existing Narayam keymappings. If not define the layout definition format.

Lead: Santhosh, Siebrand

Webkit or Chrome rendering

We are experiencing multiple issues with Indic languages and JavaScript support. Need to add relevant bug numbers. Bugs:

  1. Bug 66630
  2. Bug 15256
  3. Chromium does not render Bold or Italic indic text
  4. Chrome does not respect zwj, zwnj in Indic, Arabic, Sinhala text

Lead: Santhosh, Gerard

Indic language support metrics

Need to prepare questions for script support. Get at least one subject matter expert present per script.


  1. Fill the above support metrics table by collecting more data as possible.
  2. If something not supported or buggy , get bugs filed.

Lead: Amir, Santhosh

Automatic script conversion

Goal : Konkani is one language written in multiple scripts - Latin, Arabic, and several Indic ones. The language requires a transliteration tool. Tasks :

  1. Identify all the required language pairs, prioritize (based in difficulty to implement and impact)
    Conversion between Indic scripts is probably relatively easy and similar to Serbian.
    Conversion to Latin cannot be perfect because of capital letters.
    Conversion from Arabic is impossible if the vowels aren't written (but maybe they are). --Amir E. Aharoni 01:02, 12 October 2011 (UTC)[reply]
  2. Have parallel data in identified language pairs, transform this to test cases.
  3. Document language specif rules and special cases, prepare test cases for this.
  4. Use prototype language converter to gather feedback and requirements


  1. Ensure Konkani speakers from at least few language pairs attend hackathon to give information
  2. Get volunteer developer, preferably from the language , assign specific goals.


  1. Get a mediawiki instance running in your systems
  2. Have a look at how Serbian (sr), Chinese (zh) and Kazakh (kk) transliteration is done and get familiar with the methods.
  3. Start addressing the goal, get specific questions to work at hackathon

Lead: Niklas, Amir

I have some basic experience with the LanguageConverter, I could help maybe. SPQRobin 18:39, 15 November 2011 (UTC)[reply]

Localisation tools for translators

There are many localisation platforms, and even more localisation tools around. Many of the platforms have different focus and purpose, and there isn't much discussion between developers. Also translators are segregated, because the tools and processes and wildly different. In this session we should at least get to know each other and what we are doing, and preferably find things where we can cooperate.

  • Goals:
    • Get to know each other
    • Get to know how the other tools are doing it
    • Share experiences and best practices
    • Find ways to collaborate with tool and process development
    • Find ways to make it easier for translators to move from one tool to another
  • Tasks:
    • Presentations of localisation tools (for translators and developers?)
    • Short tours about localisation tools
    • Sharing experiences on important aspects of translation workflows
      • Time from translation to deployment in production
      • Supporting translators with message documentation, ways to ask support
      • Coordinating and collaboration inside language community
      • Coordinating and collaboration between language communities

Lead: Siebrand and Niklas

Actually I think that I should do it. --Amir E. Aharoni 01:02, 12 October 2011 (UTC)[reply]

Wikimedia Incubator

Add Narayam and WebFonts extension support for Wikimedia Incubator

  • Narayam enabled; WebFonts needs review first
  • Make Narayam look for a lang attribute on edit fields, similar to WebFonts for lang attribute on page content.

Lead: Robin

User preferences interface for language tools

The MediaWiki user interface for anonymous and logged out users needs to be unified with regards to choosing User Interface language, input methods and display with web fonts. During the hackathon a design should be made for these functionalities.

Lead: Brandon, Siebrand


Help make mobile Wikipedia a world-class mobile experience. There is so much to do, and the results will directly benefit users in India. Here is a high-level summary:

  • Participatory features and apps - Make mobile Wikipedia editing-friendly and more engaging, in ways that really make sense on mobile devices. These features are among the most groundbreaking in the Mediawiki world - help our mission of retaining and growing the editor user base!
  • Carrier solutions - Wikimedia staff are actively engaging carriers around the world in groundbreaking projects such as Wikipedia Zero, which gives mobile users in developing countries free access to Wikipedia - that includes India!
  • UI and Usability - Jorm will be on hand to help you craft some exciting changes to the overall user experience and any new ideas you may have.
  • Languages on mobile - Among other vital tasks, help create the page visitors see when they access Wikipedia in India - feature Indic languages and tailor the design to an Indian audience.

See all the features ideas, and pick what you would like to work on: Feature Corral and Hackathon topics

Here are some sample projects:

Wikipedia Zero

Major mobile operators around the world and in India are interested in WIkipedia Zero, a way of offering free access to Wikipedia on practically any phone! The view of WIkipedia will be without images, but data access will be free. Another version of this service would include WIkipedia on the operator's portal, again with free data access.

The features needed for this are simple:

  • Display a banner showing the operator's name across the top of the screen, based on access via specific IP addresses
  • Warn users when they click on links to images and external sites that data charges may be incurred

Check out the details on the Feature Corral page.

SMS & USSD Wikipedia

Access to mobile Wikipedia right now is mostly by web browser. While this is suitable for some users it misses anyone without a fast internet connection or a data plan. With SMS we have the opportunity to reach more of our global users through one of the most ubiquitous messaging systems. Using the Vumi project from the Praekelt foundation and the SMS/USSD systems of local carriers, let's create an SMS and USSD service to deliver the sum of all human knowledge to everyone regardless of their data plan. txtWeb will also be explained and tested as a way to access Wikipedia through SMS in India.

  • Launch a beta SMS and/or USSD Wikipedia service using praekelt's vumi project to read any article

Details on the Feature Corral page.

Relevant links:

Font sizes

Mobile sites are viewed on a wide variety of screen sizes and types, and on most phones there is no general zoom option. Yet even on the iPhone, some mobile sites and apps are offering simple font size options. The most general solution would be to enable normal and large sizes through a button or menu item. Can you help the world save their eyesight? And in some cases this may mean the difference between being able to read an article or not at all.

See this and more usability ideas on the Feature Corral page.

India landing page

This one is actually two features. The first part is re-doing the main page for mobile and turning on country detection, as shown under "UI and usability." That could establish a mechanism for presenting a country-specific landing page when one is available.

In the case of India, and many other countries, a country-specific landing page makes a lot of sense. Wikipedia is in many languages, and many countries use multiple language versions of Wikipedia. India is a fine example - and who knew that about 10 Indic language versions already exist?

How many countries typically use more than one version of Wikipedia? See for yourself:

See this idea and more on the Feature Corral page.

Notes on mobile input methods

For Android phones which can render Indic languages, Multiling Keyboard app [1] and plugin for Hindi (includes support for other indic languages)[2] are available. See wikipedia article on indic computing

Relevant links:


Kiwix on Android

  • Goal: Prototype a version of Kiwix for Android to both download and read openZim articles
  • Tasks
    • Getting a dev. VM where to compile Gecko and run Kiwix for Android.
    • Compile and run xulrunner/Gecko for Android
    • Compile and run C++ XPCOM with xulrunner for android
    • Embed Kiwix in the usual Android java launcher glue
  • Lead: Emmanuel, Santosh, Patrick

Kiwix UX testing

  • Goal: Test Kiwix with indic languages

Offline Collection tools

  • Goal: Further develop offline collection tools (needs to be expanded)
  • Further develop the MediaWiki tools to create offline collections (TBD based on Yuvipanda's recs
  • TODO
  • Lead: Tomasz & Jessie

Other ideas

Bugs & More

Meet the Developers

Session in the main conference on Friday. Get as many developers there as possible.

Goal : Provide a common session for developers and users. This is to address too many talk submissions received on bug reports, enhancement ideas. Generally users are not aware of how to report bugs.


  1. Anybody can raise any technical issue, enhancement idea, alternates to the developers.
  2. There will be a session on "How to file a bug in Mediawiki Bugzilla"
  3. If there is any issue or enhancement request not reported in Bugzilla so far, it will be reported during the session itself.
  4. If there are reported bugs that have not received any priority or attention, people can raise that question.
  5. Attendees can ask questions too.
  6. Moderator: Sumana Harihareswara

Time : 1 hour, Nov 18th, Post lunch slot -- Conference Schedule

Lead: Santhosh

Hacking without coding

these tasks could be run in parallel with the main conference doing the testing and the devs responding to bugs

  • Create content packages of offline wikipedia in indic languages
  • Testing of new deployment methods (post Kelson's stint)
  • Testing of feedback mechanisms
  • Testing with your mobile telephone (scripts, rendering, etc.).