Random thoughts of a disorganized mind...

Sunday Aug 04, 2013

One of the areas the X.Org Foundation has been working on in recent years
is trying to bring new developers on board. Programs like Google Summer of Code and
The X.Org Endless Vacation of Code (EVoC)
help with this somewhat, but we’ve also been trying to find ways to lower the
barrier to entry, both so the students in those programs can learn more and so
that other developers have an easier time joining us.

Some of our efforts here have been technological - one of the driving
efforts of the conversions from Imake to automake and from CVS to git was
to make use of tools developers would already be familiar and productive
with from other projects. The Modularization project, which broke up
X.Org from one giant tree into over 200 small ones, had the goal of making
it possible to fix a bug in a single library or driver without having to
download and build many megabytes of software & fonts that were not
being changed.

We finally ended up holding a first session as a virtual gathering
over the internet one weekend in March 2012. Bart, Matt Dew, Keith Packard,
Stéphane Marchesin, and I used Gobby
and Mumble to agree on an
outline and write several chapters, along with creating some accompanying
diagrams using graphviz dot.
Unfortunately, the combination of the work from home setting, in which people
kept dropping in and out as their home life intervened, the small number of
people, and lack of an experienced organizer made this not as productive as
other book sprints have been for other projects.

After the first weekend we had drafts of about 7 chapters and a preface,
and outlines of several more. We also had a large chunk of prewritten material
on graphics drivers that Stéphane had been working on already to link with.
Over the next few months, Bart edited and formatted the chapters we had,
while we got a little more written, including recruiting additional authors
such as Peter Hutterer.

We then gathered
again, this time in person, hosted by Matthias Hopf at the
Georg-Simon-Ohm-University in Nürnberg, Germany, over the two days prior
to the 2012 X.Org Developer’s
Conference. We had some additional people join us this time, including
Martin Peres, Lucas Stach, Ben Skeggs, and probably more I’ve forgotten.
At this session, Bart, Matt & I worked on polsihing the rough edges on
the guide we’d been creating, while the others worked more on the driver
guide that Stéphane had started. Bart figured out the tools needed to
generate ebook formats of the guide, such as epub, and made a cover and
pulled together an overall structure for the guide, and by the end of that
sprint, we had something we could read on the Android ebook reader he'd
brought with him.

And then, we waited. Bart tried to figure out how to make the setup
maintainable and reproducible, and how to make it available to our users,
but his day job as a University professor kept taking time away from that.
Bart also gave a lightning talk on our book sprint experience
at the Write the Docs conference
in Portland earlier this year covering what worked and what we learned didn’t
work in our virtual sprint, and asking for ideas or help on how to go forward.

Meanwhile, the burden of fighting the spammers on the X.Org & FreeDesktop.Org
wikis had gotten overwhelming on the current wiki software, so the freedesktop
sitewranglers evaluated different solutions, and after looking at how well
ikiwiki had been working for the past few
years on the XCB wiki decided to
move the rest of the FreeDesktop hosted wikis to ikiwiki as well. One major
advantage is that it let us use the existing freedesktop authentication
infrastructure for wiki accounts instead of having to find different ways to
let our users in while keeping the spammers out. Another benefit is that
it uses Markdown
and git to update the wiki, so we can easily
push files in Markdown format to the wiki to publish them now.

In a shocking coincidence, the geeks who wrote the X.Org Developer's Guide
also used Markdown & git to author it, so with just a very little conversion
to make links work between sections, it was possible to publish the guide to
the wiki, where you can find it now:

It’s not perfect, it’s not even fully finished, but it’s better than nothing,
and since it’s now on a wiki, it’s even easier for others to fill in the missing
pieces or improve the existing bits.

Stephane is still working on the companion guide to graphics drivers,
covering the stack from DRM and KMS in the kernel up to Xorg & Mesa.
He posted the PDF of the draft
as it was at the end of the March book sprint, but not yet a version with
the contributions added from the September followup.

When working on applications higher up the stack, not hacking on the
graphics stack itself, we refer developers to the documentation for their
toolkits, or to general
guides to OpenGL programming, as those are beyond what we can document
ourselves in X.Org.

And for other open source projects, if you’d like a chance to have a
professionally organized, in person doc sprint for your project,
applications
are being taken until August 7 for 2-4 projects to hold sprints as part of
the Google Summer of Code Doc Camp in October, including travel
expenses for up to 5 participants from the sponsors.