Roundup: WordCamp San Francisco Hack Day

The Sunday after WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. San Francisco was an epic hack day. Hosted at Automattic’s office in the Mission, we had somewhere around 80-90 developers contributing to WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. in all sorts of ways.

This was by far the best hack day I’ve been to, and it was very productive. Beau Lebens, Joey Kudish, and Rose Goldman did a great job handling the many logistics surrounding a large event like this one.

Photo by @beaulebens. That’s a lot of people.

We started off the morning with a quick whiteboard meeting with members of the core team. A few of us brainstormed what we wanted to work on beforehand, and so we quickly drafted up a list of ten different groups and people to lead those groups. This was key. Even with smaller numbers at a hack day, I would definitely encourage doing this. As we built the list, we pulled these people into our discussion to let them know they were drafted and what their plans were.

  1. ImageMagick. Mike Schroeder, Marko, Japh. They spent the day working out an APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. design for #6821.
  2. Retina. Otto. HiDPI support in the adminadmin (and super admin), discuss user uploads, etc.
  3. Tests. Kurt Payne, Nikolay, Brian Petty, and others. Get introduced to our tests; improve the test framework; write new tests; fix/improve existing tests.
  4. Media. Koop. I also “encouraged” Mike Adams to work on this (he resisted, but it was futile).
  5. Handbook. Beau, Hanni, Ipstenu, Andrew Spittle, Devin Reams, and many others.
  6. Multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, siteJaquith and Pete Mall, joined by Evan Solomon, Jeremy Felt, and others. In particular, #19796, multisite in a subdirectory.
  7. bbPressbbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org., BuddyPress. JJJ, Boone, Paul. Focus was not just contributing to these projects, but also to work on anything needed in core to benefit these projects.
  8. UIUI User interface/UXUX User experienceHelen and Chelsea.
  9. Twenty Twelve. Lance, Ian, Drew, and a small army of contributors.
  10. General 3.5. Me!

I was really just the catch-all in case contributors were not interested in another group to work with. Some, like Alex King, spent the day on their pet bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority., and that was great to see as well.

We started the day with a hello and an introduction to each of the groups and the lucky people we conned to organizing each of them. You should have seen my face when I turned away from the whiteboard — there were a lot of people.

The goals for the day were two-fold: yes, it is important to receive contributions to WordPress, but it is more important to gain new contributors.

After the introduction, everyone spread out and got to work. Since many people had not contributed to core before, I also ran a workshop on how to contribute, with an emphasis on reporting and fixing bugs. It went on for probably around 90 minutes.

We waited about 30 minutes to start the workshop to give everyone a chance to first read through the core contributor handbook if they hadn’t already. This was great because it gave everyone an immediate baseline, and it allowed me to wander around and chat with some of the groups that were working on 3.5-specific tasks.

An aside about the workshop: I know someone got at least some of it on video, which is great, and I saw some people taking notes. If you have video, audio, or notes from this session, could you share them? I would like to turn a lot of what we talked about into articles for the handbook.

It was really incredible to see and participate in so many ideas and conversations throughout the day. Some things I remember:

  • The multisite group of around 8 to 10 people had a working patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. by the end of the day.
  • Developers from Grist ported Akismet’s comment history to core as a possible feature (love), only hours after learning about contributing to core in the workshop.
  • I’m told the Twenty Twelve team had 15 individual contributors (plus two more via IRCIRC Internet Relay Chat, a network where users can have conversations online. IRC channels are used widely by open source projects, and by WordPress. The primary WordPress channels are #wordpress and #wordpress-dev, on irc.freenode.net.).
  • Chelsea and co. re-invented screen options and the help tabs.
  • The handbook had a few hundred individual changes, which included a dozen new articles, more glossary entries, and a complete reorganization.
  • Daryl locked a bunch of people in a room and tortured them with media discussions for a few hours. Just kidding. Kind of.

Two different groups converged at one point, and the result was pretty amazing. I was sitting in with the media group, which was talking about how to handle image sizes and thumbnails, when the topic of on-the-fly thumbnails came up. As we soon learned, there are many issues in doing this in a distributed fashion. A big one is not melting shared hosts. With GoDaddy, Dreamhost, and Bluehost all represented at the hack day, we pulled everyone (including the ImageMagick group) into the large conference room (“Olympics Viewing Room” according to the whiteboard).

What transpired was a long conversation discussing how we currently generate thumbnails, how just-in-time thumbnail processing could work, and what it would mean for shared hosts. Each host brought a different concern to the table (file I/O, memory usage, and file counts) which I found particularly interesting. We started to put together an idea we jokingly called “just-too-late,” where we would generate a thumbnail after it was originally requested, through some kind of jobs system (i.e. cron). Discussing the parameters of the problem was really important, as it offered a framework for future discussions on the matter, and was more important than coming to a solution that day. So no, we won’t be doing just-in-time or just-too-late thumbnails in 3.5, but I’m excited about some of the ideas thrown around. It was a lot of cooperation and collaboration on display.

Since this won’t be our last WCSF hack day, and since many other WordCamps will be planning them in the future (including Portland this weekend and São Paolo next), here are some additional thoughts and ideas:

  • People registered for the hack day, but doesn’t necessarily match attendance, and it doesn’t indicate what people ended up working on. It would be awesome to have a list of everyone who attended, and what they worked on (or what groups they sat in).
  • We should send out a survey to those registered seeking feedback, to see what we can improve.Edit: We did! If you registered, you got an email. Otherwise, click here.
  • The office was laid out incredibly well for this, with long tables each group could call home.
  • A workshop is definitely a great way to start a hack day, for people who need it. (For those who don’t, get them working!) The handbook is very helpful; leverage it.

If you have any feedback or anything to add about your experience, please share! Also, I’ve mostly caught up with TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. (my inbox exploded thanks to this day), but if there are any hack day patches or tickets waiting around for feedback, let me know.