Wikimedia Engineering/Report/2010/October
Here is the November monthly report from Wikimedia Foundation, reporting on what we've been working on and what we're planning. October featured continued work on the Virginia data center migration, continued work on features such as ResourceLoader, Article Feedback and Upload Wizard, increased focus on code review, new testing infrastructure, many new job postings, and the Hack-A-Ton in Washington DC.
Operations
editVirginia Data Center - Setting up a world-class primary data center for Wikimedia Foundation properties.
- Status: Delayed. We're still in the final phase of selecting the new data center. Rob Halsell has relocated to Virginia to be the primary on-site operations engineer for the new build-out.
- Program manager: Mark Bergsma
Media Storage - Re-vamping our media storage architecture to accommodate expected increase in media uploads.
- Status: Hiring a contractor for this project. We've met with a few potential candidates for this position.
- Program manager: Mark Bergsma
Monitoring - Enhancing both Operations and public monitoring to a) notice potential outages sooner, b) increase transparency to the community, c) support progress tracking required in the 5-year plan.
- Status: In the coming month, we plan to set up SMS notifications for vital service outages and other abnormalities. We're also finalizing a deal with a third-party monitoring solutions for monitoring our uptime and site/service performance.
- Program manager: Mark Bergsma
Virtualization cluster - more easily deploy temporary machines for testing and experimentation. This cluster is intended for use not just by WMF staff, but will be available to volunteers working on important projects as capacity allows.
- Status: Ryan Lane has investigated a few open source solutions, and has selected OpenStack. He's testing their newest beta release on a couple of machines. There's nothing production grade yet, but he's hoping to have something useful by the end of the year.
- Program manager: Mark Bergsma
Content Quality Tools
editArticle Feedback - Working on feature to collaboratively assess article quality and incorporate reader ratings on Wikipedia
- Status: The first version of this feature was rolled out at the end of September, and we spent the month of October collecting and analyzing the feedback from the tool. We are currently designing the second version of this feature, and starting development later this month. We plan to roll out the next phase in sync with the Public Policy Initiative Phase 2 in January.
- Program manager: Alolita Sharma
Pending Changes - Pending Changes is a new review feature recently deployed to en.wikipedia.org, which allows changes made by anonymous and new users be reviewed before they appear as the primary version of an article.
- Status: Recently we completed two large features related to Pending Changes - speeding up the display of diff pages and adding a "Reject" button. We are currently on track to deploy a new version of Pending Changes on November 16 with further incremental improvements to be rolled-out as we complete development.
- Program manager: Rob Lanphier
Threaded discussions
editLiquid Threads - LiquidThreads is an extension that brings threaded discussions capabilities to Wikimedia projects and MediaWiki.
- Status: Development on this feature slowed in October due to lack of staff availability. However, we anticipate continued maintenance work occurring through the end of the year, with development picking back up in January.
- Program manager: Alolita Sharma
Multimedia tools
editUpload wizard - The upload wizard is an extension for MediaWiki providing an easier way of uploading files to Wikimedia Commons, the media library associated with Wikipedia.
- Status: This project has been extended one more month (until the end of November) to have a more robust implementation and time for testing before launching this on Wikimedia Commons. Neil Kandalgaonkar has finished development of a temporary storage system for media files missing required metadata like copyright or source information. Roan Kattouw has started prep-work for deployment of this feature scheduled for late November. The feature is currently in testing on the Commons prototype.
- Program manager: Alolita Sharma
Licensing tutorial - The licensing tutorial is an illustrated educational comic strip for Wikimedia Commons, explaining the basics of copyright and free licenses.
- Status: This project is reaching its final stage after a few months of work. Illustrator Michael Bartalos delivered the final color design, which was recently published on Wikimedia Commons under a free license. The tutorial will be integrated into the interface of the Upload Wizard and shown to new users. Translation and localization of the tutorial is underway. For more details, see the recent blog post Illustrated licensing tutorial for Wikimedia Commons.
- Project manager: Guillaume Paumier
Add media wizard - The Add-media wizard is a gadget to facilitate the insertion of media files into wiki pages. Development effort for this labs feature is supported by Kaltura (consider re-working this section to a "MediaLabs" section that can contain notes on Michael Dale's gadgets).
- Status: The current phase of development is focused on integrating the existing components with ResourceLoader to decrease load time for the gadgets. Other components in development include a media sequencer, embedPlayer ( timedMediaHandler, WebM integration ), and SwarmPlayer.
- Program manager: Alolita Sharma
MediaWiki Infrastructure
editResource loader - The resource loader aims to improve the load times for JavaScript and CSS components on any wiki page. The intention of this work is to support faster loading of the Vector skin, media extensions, and anything else that makes use of JavaScript.
- Status: The feature is largely complete and checked into trunk. The team has been working on unit testing the framework and performance testing (and tuning). We are also ensuring compatibility with existing extensions and modifying extensions to use the new messaging system. We hope to have this work wrapped up some time in December, with a deployment sometime after that.
- Program manager: Alolita Sharma
General Engineering
editAnalytics Revamp - Incorporate an analytics solution that can grow and answer the questions that the Wikimedia movement has. Includes udp2log revamp.
- Status: our primary focus has been on analytics tools for the 2010 Fundraiser, allowing that team to make data-driven decisions to refine our donation workflow. We've also kept an eye on long-term development, so that we can use these tools for studying and improving other parts of our user interface. Much improvement has been made on OWA/MediaWiki integration, as well as scaling OWA to work in our environment.
- Program managers: Rob Lanphier & Tomasz Finc
Test framework deployment - Building an automated test environment for MediaWiki using CruiseControl, Selenium, and PHPUnit
- Status: We have a basic framework in place for Selenium testing, and we're now fleshing it out with more tests and helper functions to make it easier to build tests. Weekly meetings continue, alternating between voice and IRC.
- Program manager: Rob Lanphier
Process improvement - Increase transparency and generally organize Wikimedia Foundation's engineering efforts more efficiently
- Status: This activity will be ongoing. Blog posts like this and project pages continue to be updated. The Bugzilla reconfiguration work put on hold as Priyanka and Chad focus on Pending Changes work, and as we await Bugzilla 4.0. We'll institute other improvements on an as needed basis, but this will be the last report about "process improvement" as a general area.
- Program manager: Rob Lanphier
Code review - improving the way we provide code reviews for MediaWiki
- Status: The new larger team of reviewers has been making headway (or rather, at least has kept us from falling much further behind). Other than "just get cracking" (which we're doing), one other thing is to try to improve visibility into the problem. Roan Kattouw is working on some changes to make it easier for others to participate in the review process. Rob Lanphier plans to start reporting on our current metrics based on some work that Bryan Tong Minh has already started. See code review status graph to see the number of "ok" commits plotted against the number of total commits in the "phase3" branch.
- Program manager: Rob Lanphier
Technical Documentation – Improve our technical documentation by making small, incremental improvements to the docs and docs process.
- Status: Zak Greant continues to plug away making incremental improvements on mediawiki.org, currently working on a review pass of the MediaWiki manual.
- Program Managers: Rob Lanphier / Zak Greant
wmsync – Replace our current deployment tools (e.g. "scap") with more robust software
- Status: This project is in the very early discussion stages. The goal with this project is to make deployments more robust and easier, as well as reduce our reliance on NFS.
- Program Managers: Rob Lanphier
Fundraising
edit2010 Fundraiser - The engineering tasks necessary to run a successful fundraiser, with sub-projects involving fraud prevention, CentralNotice, and the analytics upgrade.
- Status: This month has been full of content creation to allow us to optimize our donation workflow. We've seen gains as high as five percent in between tests. We will be launching Monday, November 15.
- Program manager: Tomasz Finc
Credit card server upgrade - Upgrading our current payments infrastructure to support 1-click donations.
- Status: We've been successful in adding caching and optimizing MediaWiki. In our second stage we added a squid caching layer which has given us an 8x throughput increase. We are currently preparing a new mini-cluster in order to horizontally scale our fundraising infrastructure. This will allow us to securely support the increased amount of traffic we project for the upcoming fundraiser while also providing us the ability to rapidly increase our throughput as needed.
- Program manager: Tomasz Finc
Mobile
editMobile site rewrite - Porting our existing gateway for easier support, development, and participations
- Stats: Our current mobile gateway is very popular and a very valuable resource for many (including much of the staff). However, it has proven difficult to support operationally. We're currently contemplating a redesign of this feature. We're planning to hire an engineer to start work on the rewrite, and hope to start in earnest in the beginning of 2011.
- Program manager: Tomasz Finc
Offline
edit- Status: We are starting to ramp back up on this activity as the development team starts to become available again (having wrapped up most of the development work on the Fundraiser). Ariel Glenn is working on parallelizing the generation of offline XML dumps. Additionally, we're exploring adding additional export formats to the collection extension. We're also exploring new clients for offline reading of Wikipedia.
- Program manager: Tomasz Finc
Hiring
editWe have a lot of hiring coming up before the end of the year. Job descriptions are already posted for the following:
In addition, we hope to post the following positions soon:
- Software Developer (Mobile)
- Software Developers (Features)
- Data Analyst
- Senior QA Engineer
- Release Engineer
- Technical Writer
- Storage Engineer (contractor)
(Note: all of these positions may change as Foundation requirements evolve)
Misc
editHack-A-Ton - held October 22–24, 2010 just outside Washington, D.C. in the United States. This was our first developer event on the east coast of the United States. We had 27 attendees total (16 Foundation staff and 11 non-staff). The engineers in attendance were able to fix 46 bits of code marked "fixme" (roughly one-third of the total) We had lots of great conversations about release engineering and code review, and plenty of discussion and coordination of future feature work. There were many short presentations and discussions about WikiBhasha, the Selenium framework, the PHPUnit framework, and sentence level editing among others. See the summary blog posts (first day and second day) for more information.