NOLA Hackathon 2011

From mediawiki.org

This event has already happened. See official blog entry for summary.

The New Orleans Hackathon 2011 was an opportunity for MediaWiki developers and Wikimedia operations engineers to come together to work on advancing Wikimedia's tools and infrastructure, focusing on Wikimedia Labs (starting with the dev-ops virtualization cluster), and to train and to squash bugs.

The theme of this event: "the infrastructure of innovation". We improved and discussed the Wikimedia Labs projects infrastructure and other stuff that makes it easier for anyone to supercharge Wikimedia with awesomeness. We worked on our gadgets/extensions/tools support, authorization/authentication strategy, dev-ops virtualization, and general training and hacking.

It was mostly dev sprints and bugsmashing, with some discussion and workshops. The event was open to anyone who wants to come and contribute, and was an opportunity to spend time with senior MediaWiki developers & ops engineers, write beautiful code, and learn about the latest developments.

This event occurred in New Orleans, Louisiana, USA, 14-16 October 2011.

Topics, Goals, & Outcomes[edit]

NOLA Hackathon unconference-style scheduling

At this event, we got a lot done, faster and better because we were in the same room.

  • Much progress on Wikimedia Labs: at least twenty virtual machines were installed on Labs, many developers got accounts, we tested at larger scale, and we fixed several bugs.
  • Media file storage progress: developers agreed to create a FileBackend abstraction layer, worked on refactoring, improved SwiftMedia documentation and tests.
  • Google Summer of Code students Salvatore Ingala and Kevin Brown made progress on integrating their summers' work into MediaWiki trunk; Salvatore and Roan have a plan for getting AMICUS reviewed and deployed.
  • Operations folks continued the Puppetization of our infrastructure: they completely redid varnish management in Puppet, and worked on Puppet configurations for SwiftMedia testing.
  • We now have a continuous integration server up (Jenkins).
  • Max Semenik finished an alpha of and demonstrated his API Query Sandbox.
  • We prioritized and addressed several ops tickets and 1.18 regression bugs.
  • Roan found and fixed an issue that was spouting symbolic link errors into the Apache logs, so now it'll be easier for us to see more dangerous errors in those logs.
  • A volunteer came in on Friday night knowing nothing about developing for MediaWiki, and by the end of the weekend had a working dev environment on her laptop and had some ideas about how to contribute.
  • Brion taught nearly everyone there how git works, and how we'll be using git in the future.
  • We had substantive conversations about GSoC and about third-party collaboration that will affect how we work in the future.

As recorded early in the event, some goals for the event:

  1. Get to know each other, have fun (achieved)
  2. Everyone has base understanding of git (achieved)
  3. Every developer has labs account (no, but progress made)
  4. Labs has first services (achieved)
  5. Juju running in labs (no, but progress made)
  6. Jenkins is up and running (achieved)

Stretch Goals - if we make these, we'll be thrilled

  1. Labs runs a full MediaWiki setup (no, but progress made)
  2. Shared gadget demo repository?

Here are the things we aimed to focus on at the hackathon:

  • Wikimedia Labs (sandbox environment for developers and operations)
  • Code review/code standards training Didn't do this.
  • Bugsmash, such as Apache logs bug hunt-n-fix sprint & a 1.18 regression triage
  • Getting independent MediaWiki vendors to submit their patches upstream
  • Apache logs bug hunt-n-fix sprint
  • OpenStack Swift sprint (swift media uploads & related; non-MySQL support (DJ & SQL Server))
  • authorization & authentication, such as OpenID/oAuth (less than we'd thought we would)
  • glorious Continuous Integration future
  • glorious git future
  • Next-generation Gadgets planning
  • parser Didn't do this.

See the Sunday wrapup notes for the full list of outcomes.

Venue[edit]

Launch Pad, a collaborative workspace in New Orleans.

Directions[edit]

Launchpad has directions listed on their site. It is located in the IP building at the corner of Magazine St. and Girod St. All hotels listed below are within walking distance.

Schedule[edit]

developers gathered at the NOLA Hackathon

Friday[edit]

(Etherpad notes archived at NOLA Hackathon/Friday)

  • Start time at 5 PM
    • Introductions, discovering what people want to work on or learn this weekend, setting schedule
  • Dinner brought in to Launch Pad, 7pm
  • After dinner, people hacked at Launch Pad & in hotel lobby (Renaissance New Orleans Arts Hotel)

Saturday[edit]

developers gathered at the NOLA Hackathon

(Etherpad notes archived at NOLA Hackathon/Saturday)

  • Breakfast (beignets and coffee) at Launch Pad at 9:30am
  • Start 10am
    • Erik Moeller gives opening talk, 15 minutes at most ;-)
  • Lunch brought in to Launch Pad, 12:30pm (Thai, with meat, vegan, & vegetarian options)
    • Afternoon:
1:00 Get a Labs Account
3:00 Roan Kattouw on "Intro to MediaWiki Hacking". A lecture and workshop on MediaWiki's overall architecture and ways to mod it, from site preferences to gadgets to extensions. Attendees will learn how to customize MediaWiki using CSS, JavaScript, and PHP.
4:00 Apache logs bug hunt-n-fix sprint

Sunday[edit]

developers gathered at the NOLA Hackathon

(Etherpad notes archived at NOLA Hackathon/Sunday -- also see the FileBackend notes)

  • Breakfast (coffee, bagels and pastries) at Launchpad at 9:30 AM
  • Start time 10 AM
    • Chad Horohoe's testing training - a lecture on how to write tests, walking attendees through the documentation and teaching them how to run tests. Notes and audio are available:
"I'll find a simple function we still need a test for, and use it as an example. I'll briefly touch on setting up PHPUnit (with the caveat that *sometimes* it's harder than it should be, so ask if you need extra help). Then dive into how to write the test."
I've volunteered to do a quick intro-to-our-scary-git-future session at the New Orleans hackathon; I'll see if I can lay out a nice workflow demonstration from a few different perspectives:
* staff or very active volunteer developer who's doing a lot of core or high-priority extension work all the time
* reviewers monitoring incoming stuff
* extension maintainers working on their own and sharing their code
* ad-hoc patch submissions
* larger feature/refactoring submissions
* batch updates such as localization maintainers
* deployment branch management
* using the VCS as a deployment source
* how things can interact with Bugzilla etc
  • Lunch (vegetarian and non-vegetarian paninis) at Launchpad at 12:30 PM
  • End time 6 PM

Side programme[edit]

  • Sumana proposes: Monday we visit a NOLA haunted house
  • FYI, all weekend the Crescent City Blues and BBQ festival is happening less than 2 blocks from LaunchPad. Free music, with food and drinks available to purchase. http://www.jazzandheritage.org/blues-fest/

Attendees[edit]

Volunteers[edit]

  • Leisa Fearing : I'm local. If you can't reach Ryan Lane and have any vocabulary, restaurant, event, transportation, etc. questions I'm happy to help.

Accommodation[edit]

All hotels are also in walking distance of most of the attractions of the city.

Hotels[edit]

2 stars[edit]

  • Parc St. Charles
    • Internet (price not listed)
  • [Cotton Exchange Hotel Downtown]
    • Internet complimentary

3 stars[edit]

4 stars[edit]

Contact[edit]

  • Mail: Dana Isokawa: disokawa [at] wikimedia.org
  • Panic Phone for emergencies: +1 415 839 6885 ext 6689 (this went directly to Dana)
  • Program coordination: Sumana Harihareswara sumanah at wikimedia.org
  • Logistics: Ryan Lane
  • Assistant: Dana Isokawa