DX Hackfest

Last week I participated in the 2014 Developer Experience Hackfest. It was a great event – it’s so useful to spend time focusing on this important area, and it was an invaluable opportunity to move existing work forward and agree on plans. We should definitely ensure that we have a developer experience event every year.

My personal priority for the event was to plan the future of GTK+, particularly so that it supports the GNOME 3 application designs we have. We have come a long way in this area, but there are a few outstanding design patterns that aren’t fully supported by the toolkit. Adding support for these will not only make it easy for people to create GNOME 3 style applications, but it will also enable us to publish a new version of the HIG.

During the hackfest we spent an afternoon reviewing GTK+ support for the various application designs we have, and identified the priority items that we need to take care of. We seem to have a clear plan in this area now (more details on this to come). I’m really happy that people have signed up to work on the most important tasks. Hopefully we will have support for all the key application design patterns in the not too distant future, which will enable an initial version of a GNOME 3 HIG to be published.

Another area I spent a bit of time on during the hackfest was developer documentation. I worked with Kat and Dave to clean up the material on developer.gnome.org, and I did a bit of tidying of the platform overview. This work should tie in with the advances we’re making on API reference documentation.

I’d like to say a big thank you to Chris Kühl and Endocode for hosting the hackfest. They have a great space, and were very hospitable hosts. Many thanks also to the GNOME Foundation for sponsoring the event – many of the participants would not have been able to attend without this support.

benjamin-and-cosimo

documenters

hackers

jon-and-jakub

GNOME Developer Experience Hackfest, 2014 Edition

I’m about to travel to Berlin, to attend the 2014 GNOME Developer Experience Hackfest. We have about 22 confirmed participants, with a nice spread of expertise from both GTK+ to developer documentation.

Last year we had a great Developer Experience Hackfest in February, and the hope is that we can keep this going by having a similar event every year. Developer experience is important, and we want to keep focusing on making it really easy for people to make applications for GNOME.

It is a significant time for the GNOME developer experience right now. GTK+ has been getting a lot of major improvements, and our application developer platform is improving in general. People are working hard in this area, and the result of that work is beginning to show. There are still some rough edges and missing pieces, of course, and I’m hopeful that we can use this event to coordinate, plan, and gather momentum to get deal with those.

Huge thanks to Endocode (particularly Chris Kühl) for providing the venue for the hackfest, and to the GNOME Foundation for sponsorship. Expect updates as the event unfolds.

Looking Forward to 3.12

applications

I usually do a review of what is coming in the run up to a release. However, there have been so many blog posts about 3.12 already that I don’t feel I need to go over individual features. If you haven’t read Planet GNOME in a while, now is a good time to check it out: there’s lots of great content on there right now.

It is worth looking at what the individual features in 3.12 add up to though. A release is more than the sum of its parts, and this is especially true of 3.12.

One important thing you will see in 3.12 is that, more and more, GNOME’s core applications are coming together. Videos will look and behave like a GNOME 3 app: it will let you browse your content, and it offers a modern, streamlined viewing experience. gedit has also had the GNOME 3 treatment. It has retained all its existing functionality, but in a more compact interface [1]. Many of the other apps have also matured of course, Software and Web in particular.

The other big news for 3.12 is that a number of significant gaps have been filled in. For a long time people have wanted to be able to manually organise their apps: now they can with the new apps folder feature. We’ve also added functionality to make installing sofware updates easier and more convenient, as well as the addition of wired networking controls to the system status area.

There are also major developments in the developer space, with the new notifications API, new GTK+ widgets, new capabilities for launching processes, and improved documentation. I think that 3.12 is probably our strongest for developers in a long time.

Finally, and for me perhaps most significantly, 3.12 looks set to be the best quality release so far. Signs of ongoing improvements are everywhere. There are performance gains for startup and (hopefully) memory usage, the theme and animations in the shell has been refined in quite a few subtle ways, high-resolution display support has been extended, and a great many bugs have been fixed. As each release comes and goes, GNOME 3 gets better and better, and 3.12 is no exception.

There’s plenty more that I could mention about this release, of course, and the release notes will provide full details, but what is important is the progress that GNOME is making. 3.12 feels like another significant upgrade, and is another release where it feels like things are coming together more and more.

[1] The other day I did a quick comparison, and found that the chrome in the new version is around 60 pixels shorter than before. That’s an impressive space saving, and makes the app much more focused on what you are editing.

3.10 Reflections

GNOME 3.10 was released last week. A lot of hard work went into it (I know I felt pretty exhausted by the end), but I think that it was worth it. We ended up with an excellent release.

window-selection-3.10

I’ve been using bits and pieces of 3.10 for some time, and completely adopted it (through Fedora 20) about a week ago. It feels like some important aspects of the GNOME 3 experience have started to fall into place with the latest release. Most obviously, we have quite a few new applications, which fill gaps in the core application set. We are also seeing the application design patterns starting to mature. The addition of header bars makes a fantastic difference.

gnome-music

Header Bars

This release also includes some new things which have been planned for a long time, and which round out features that we released in previous versions. Lock screen customisation is one of these, as is the updated application launching view, both of which feel great.

lock-screen

Another exciting thing that happened for 3.10 is that our efforts to modernise the toolkit have started to bear fruit. GTK+ 3.10 has a whole collection of new widgets which will enable developers to make better applications, and should also reduce the amount of work that they have to do. I really hope that this trend continues with even more new widgets and improvements to the developer experience.

GNOME 3 is already in good shape, but as each release comes by, so the vision as a whole takes another step towards realisation. When that finally happens, I think we’ll achieve a qualitative shift in the kind of experience that we’re able to offer. 3.10 is a strong indication that GNOME is making good progress towards that goal, and is a taste of what is to come. Exciting times.

DX Hackfest: Developer Documentation

The GNOME Developer Experience hackfest wrapped up a couple of days ago. It was definitely one of the best GNOME hackfests that I have attended. There were lots of people there with diverse affiliations (Canonical, Suse, Lanedo, Collabora, Red Hat, the Linux Foundation…), who were all extremely focused and keen to work together.

The high attendance at the event meant that we were able to break into four groups, each of which focused on a different area of the developer experience: application definition, toolkit, documentation, and tools. A discussion at the beginning of the event and regular catch-up sessions ensured that we were all on the same page and working towards a common vision.

I spent most of my time as a part of the documentation group. Together we worked on a number of aspects of developer documentation.

Fred Peters, Aleksander Morgado and Thomas Bechtold hacked on DevHelp and made good progress modernising its user interface. The new version should be easier to use and should look much nicer.

Jasper St Pierre worked hard updating our automated documentation generation tools, and seemed to make some excellent progress towards extending their coverage for introspectable languages, especially JavaScript.

Me, Meg Ford, Federico Mena Quintero and Jakub Steiner looked at the GNOME developer website. We created an updated design and identified documentation that was missing or needed updating. Our decision to focus on JavaScript really helped with this and enabled us to effectively update the website design, as well as write new tutorials for first time GNOME application developers.

The new website design that we developed had a few goals:

  • Provide an effective interface for browsing and searching API documentation.
  • Include introductory guides that lay out the basic process involved in creating a GNOME application.
  • Include a space for the new version of the HIG (this is currently under development).
  • Be responsive, so that it can be viewed on tablets and phones.

Me and Meg created a couple of new tutorials that will go on the site, and Meg updated some of the tutorials for JavaScript. Federico started updating the existing platform overview. Jakub gave the site a new responsive layout and created some artwork for the homepage. Together, we started rearranging the content and the pages. There’s a couple of development branches on git.gnome.org where this work will continue and we hope to relaunch in the not too distant future.

I will also be reaching out to existing documentation contributors to get their advice and to figure out what additional documentation we will need. It would be great if they want to help with this work too, of course.

In general, the hackfest felt like a significant event. If we can push forward with the agenda that we have set, then the future looks extremely bright. If anybody who wasn’t at the hackfest wants to get involved, there is no shortage of things to do, and I would encourage you to get in touch.

Big thanks to the GNOME Foundation for supporting the event and to BetaGroup Coworking for being such generous hosts.