Documentation Hackfest - Brno, Czech Republic

After a 17 hour commute (plane:plane:bus:bus) I finally arrived in Brno to join the GNOME Documentation Team on Saturday February 18. I have taken part in a couple of other docs hackfests last year, mainly working on gnome-user-docs as well as application help. This year I have become interested in helping to create tutorials for new developers. Some instructional tutorials had already been written and are included in developer.gnome.org. These were the result of work completed during the Developer Documentation Hackfest in Berlin last year.

I first started testing and adding some content to the existing Vala tutorials, partially to become familiar with the current state of this module, and partially to become familiar with the content that is being presented thus far, fixing a few bugs along the way.

I met Susanna Huhtanen who is working on JavaScript code examples for new developers. Susanna and I first discussed the importance of bite-size code snippets that can be easily run to demonstrate platform concepts. Our discussion led us to identify two different levels of “beginner developers”.

We often talk about new developers, or beginner developers as those being new to GNOME, or beginning development for GNOME. These ‘new’ developers may have years of experience working on other platforms. They may also be university students who have been programming for a little while without much “real” experience. These two types of ‘beginner’ developers have different needs.

There is a need for a tutorial or set of tutorials aimed at college and university students excited about starting open-source development. What we first came up with was a plan to have a series of basic step-by-step tutorials that demonstrate how to make a complete GNOME application from start to finish. Using the concept of the existing GNOME Hello application, and using the Anjuta IDE, we can have a set of tutorials that demonstrate:

1. Gtk+ programming
2. Signals and Callbacks
3. Menus
4. About dialogs
4. Linking the help files to the application
5. Setting up your application for translations

In the end, we would end up with a Complete Beginner’s Guide to GNOME Programming. Now we need to define “complete beginner” (for completeness). The tutorials will have to assume the student has object oriented programming experience, but not necessarily GUI programming experience. So, signals and callbacks would be explained in-depth, but not for loops, classes and objects.

Once this initial tutorial is covered, the next step would be furthering the platform-demo tutorials, which aim to introduce GNOME technologies such as Gstreamer, Cairo, Clutter, Telepathy etc.

That is the plan. An outline of this has been started in gnome-devel-docs/platform-demos. Additionally, Phil Bull has started some preliminary work on reorganising the platform-overview.

Susanna Huhtanen and I at the RedHat offices in Brno.

This hackfest allowed us to brainstorm some good ideas and create a direction. I also had the opportunity to chat with many of the hackers attending the simultaneous GTK+ Hackfest about the use of our development tools for these tutorials. There is the problem that Glade and Anjuta are always slightly behind the bleeding edge and that they often don’t support the way that very large applications are written. This presents the problem of using such tools in “complete beginner” tutorials and not being able to demonstrate the “real” way of doing things. Therefore, there is a need for a “bridging”, in the sense that the tools can be used to demonstrate the necessary concepts, but then a break away from these tools must occur in the tutorials in order to create developers that can program using bleeding-edge technology. I would like to thank Cosimo Cecchi, Emmanuele Bassi, Ryan Lortie and Matthias Clasen for attending the development docs presentations and for their input and advice, and also Shaun McCance and Phil Bull for helping to further this goal.

Blog comments powered by Disqus