Tag Archives: documentation

Developing GTK 3 apps with Python on Windows

This blogpost is by Geoffrey French, who has joined us for the Docs Hackfest which is happening this week at the University of East Anglia, Norwich, UK.

Kat invited me to write this guest post on her blog, describing my experiences of the Norwich GNOME Docs Hackfest held at the University of East Anglia School of Computing Sciences over the last few days. I joined the hackfest as I recently started using Gnome 3 after installing Fedora 20. My personal website is at www.britefury.com. I am the author of two interactive programming environments for Python; The Larch Environment and The Ubiquitous Larch.

My initial focus was on helping developers get started with developing Gtk+ v3.x apps in Python for the Windows platform. I feel that Windows is an important platform due to the large user base; being able to develop software for them can only be a good thing.

My prior experience with developing Gtk+ apps in Python was gained while developing gSculpt, a 3D modelling program. At the time (2008) I targeted Gtk+ v2.x using the PyGtk Python bindings. Since Gtk+ v3.x however, PyGtk has been replaced with GObject introspection based bindings for external langauges.

Luckily getting started Gtk 3.x development on Python for Windows is very easy; thanks to the hard work of Simon Feltman et al there is a nice installer package that does all the work for you! You can also use either Python 2 or Python3 as a bonus.

The first (if obvious) step is to ensure that you have Python installed; either versions 2.7 or 3.3 are fine. Next, you need to install PyGObject. You can download the Win32 installer here. You get a large 130MB installer which comes bundled with PyGObject Gtk, glib and many other Gnome libraries; so no need to hunt down dependencies. When you run the installer, you will be asked to choose a Python interpreter to install for (2.x or 3.x if you have multiple interpreters installed). Next, you can choose the packages that you want; ensure that you select Gtk at least.

After that, you are good to go!

If you want to learn Gtk using Python, the Python GTK+ 3 tutorial would be a good place to start.

Writing about it

After finding out that getting going was so easy – and noticing that this fact was not immediately obvious – I decided that it would be good start to write about it, so that people can find this out.

Since I was going to be working on Windows, it seemed to make sense to try to write Mallard documents on Windows too. Unfortunately, getting Yelp installed was not nearly so easy. I regret to say, that after installing MinGW, some circular dependencies involving pkg-config and glib caused me to give up.

The Hackfest

I found out about the hackfest shortly before it was due to start. I decided to join and was greeted by welcoming and friendly faces who helped me get started quickly. I am happy to have met everyone and I hope to collaborate with them again in the future!

Updating documentation for 3.10

5642995221_84a6f913b7_bWith only a few hours to go until the 3.10.2 tarballs are due, here’s a recap of what the documentation team has been up to:

  • gnome-user-docs started being updated for 3.10 mid-September: it is moderately difficult to test the UI and functionality before the 3.x.92 release
  • the updates were done by 10 documentation team members and translators
  • after the docs-i18n brainstorming at GUADEC, the docs team made sure to keep translators up-to-date on what was happening
  • the changes in the UI affect almost every one of the 293 live pages
  • updating 293 pages takes a lot of time and the updates were not finished in time for 3.10.2 so there will be a 3.10.3 release sometime before next year
  • the translators appreciate the docs team how-to for taking screenshots almost as much as knowing  what’s going on
  • screenshots are still a pain to update
  • the docs team sucks at giving translators enough time for translations

As the docs team has been concentrating on the desktop help, some of the application help has been neglected a bit, which is somewhat unfortunate. There are also a few things that could make updating both application and desktop help easier for the team, such as fewer UI changes between each major release, notification emails about freeze breaks (not all developers send these), fewer UI and functionality changes after the freeze.

Writing about Mallard

Google Doc Camp 2013This week, some of the Documentation Team are visiting Google in Mountain View to write a book about starting with Mallard. The sprint is being facilitated by Adam Hyde and Allen Gunn, who have organised book sprints before. The aim is for a small team to produce a book in three days. What makes this sprint more interesting is that two other teams are working alongside us to produce introductions to OpenMRS and BRL-CAD development. We have also been joined by the very enthusiastic Amanda French and Heidi Waterhouse.

Our first day was spent getting to know the other teams, sharing our project with them and pinning down the table of contents. In the evening, Amanda and Heidi started setting up a working environment for using Yelp. It has been very useful to see how our tools are presented by the Internet at large to potential users. For the most part, the available information is accurate, although some details needed to be clarified, which we will do in the book.

We are now half way through our second day and the first version is almost complete. Tomorrow we will be refining the existing content and expanding the book where necessary.

Open Help, part 2

For those of you who have not been before, Open Help has quite a standard conference layout of two conference days over the weekend followed by three hacking days during the week. As I mentioned before, I joined the travel committee a few months ago and was working on processing GUADEC sponsorsip requests. A number of the summer interns asked me to explain to them what is the difference between conference days and BoFs. So, this is what our conference days at Open Help were like:

Lilly Danger and the hat

And this was what our hacking days were like:

Too much chili

We took one look at https://developer.gnome.org/ and decided that it needed some care. After quite a lot of brainstorming and debate, we concluded that the structure of the Developer Center needs to be simplified, which is now a work-in-progress in master.

One of the biggest issues that we addressed is that the Documentation Team does not have the manpower to keep up with all the cool new stuff that developers should know about. Ryan is leading the effort to try a different approach which we hope may be more developer friendly when it comes to maintenance and new content with a “How Do I…?” series on the wiki.

In the mean time, we are aiming to merge the platform-demos, the examples and mini-showcase applications, into what is currently the platform overview.

For more details on the state of https://developer.gnome.org/, have a look at the Documentation Team’s planning pages on the wiki.


I was sponsored by the GNOME Foundation!Open Help Conference & Sprints

Open Help, part 1

Open Help is on this weekend in Cincinnati. We’re half way through the two conference days and have seen very interesting presentations from Jorge Castro about helping users help users, Janet Swisher on sprints and Rich Bowen about writing better help, which led to interesting discussions during the panel and open floor.

Happy Jimmimico

The trip over to the US was a bit long as Dave and I were delayed at almost every point of the way, but we finally arrived in Cincinnati after a 22 hour trip to a lovely reception at Via Vite on Fountain Square.

The conference itself has a very relaxed atmosphere. With around 40 attendees, it is possible to meet everyone and it is rather nice to have a fluid schedule. There are people here from a range of different projects, including Drupal, the Wikimedia Foundation and WordPress, including four people who previously participated in the OPW. Unfortunately, Sindhu and Aruna, the Documentation Team interns from round 5 and 6, could not make it because they have exams right now, but I am hoping to meet them at GUADEC.


Open Help Conference & Sprints

Documentation sprint in Brno

GNOME doc sprint 2013The documentation team is back in Brno for another week of writing this year. We are working on updating help pages in time for the GNOME 3.8 release: I am working towards merging gnome-system-monitor and Sindhu‘s rewrite of the gnome-terminal help. We are also working on new help for gnome-boxes, although it will still take some time for us to finish as most of the pages are stubs.

In the mean time, Dave and Marta have been working on developer documentation, updating the Python tutorials and fixing bugs.

As last year, we spent the first two days of the hackfest at Masaryk University and we are at the lovely Red Hat offices from today.

The only downside to this hackfest has been that Sindhu’s visa application was refused, so she could not attend in person, but she is joining us using Google hangouts!

GNOME documentation hackfest in Brno

Hackers come in twosThe documentation team had a very productive, week long hackfest in Brno that finished last week. We could not have had it without the nice workspaces that were provided by Masaryk University and Red Hat, while Florian Nadge and Petr Kovar did a great job looking after us, even making sure that we got fed tasty pizza on demand so that we could keep going. Syllogist (and Shaun) also treated us to a lovely dinner.

At the hackfest, the team managed to update large chunks of gnome-user-docs for GNOME 3.4, while Susanna and Tiffany added tutorials to developer documentation, and Dave fixed lots of glib and GTK+ API documentation. We were also treated to interesting demonstrations of Boxes and Documents, and we planned out user help for Online Accounts.

Julita has been working on porting the baobab user help from DocBook to Mallard. The first (basic) pass is now complete, but there is still some more work to be done. baobab is also currently being re-written in Vala, so any help from Vala enthusiasts would be very appreciated!