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 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.

Visiting California

We made our third trip to California last month for the GSoC Doc Camp and took the opportunity to travel around a bit, as we always try to do.

Capitol Reef

In 2011, we did a trip around the National Parks over 13 days which included driving down Highway 1, finding out that it fell into the ocean, getting stopped at a border control point near Mexico and a 2.5 day stint (with three magnificent hikes) in Yosemite. All of this only happened thanks to Chris‘s awesome help in planning it out.


We were unable to take holiday in 2012, so only visited Yosemite for the weekend as it is only a 3.5 hour drive from San Francisco. We finished off pretty much all the possible day hikes from the valley and visited the Mariposa Grove of Giant Sequoias. We rather enjoyed the circular hike past Vernal Falls, along the Panorama Trail and down the Four Mile Trail so decided to do a two day hike on our next visit, and camp at the top of the valley.


This year was our first autumn visit to California, but the weather was great, so we decided to see if Highway 1 had been fixed (indeed it had) and to drop by Yosemite again.

Now the thing about the Big Sur area of Highway 1 is that it passes through a whole bunch of national and state parks. There’s also not much in the way of places to stay unless you’re camping. Of course, most of the camp grounds are run by the parks… which is a bit inconvenient if all the national parks are “closed” because the rangers are not getting paid. We ended up staying at San Simeon State Park in a “primitive” camp ground (it had running water, toilets, fire rings and parking spaces).

Things to see down Highway 1 are… (mostly) the coastal countryside, the McWay Falls (I found it underwhelming, although the history is quite interesting), very cute elephant seals, Sequoia forests, windy roads (which are quite fun to drive down), “historic” (1930s) bridges and Morro Rock, a volcanic plug. If you’re out of things to do, then the Mill Creek Trail is pretty flat and ends in a nice Sequoia forest. The trail head is very easy to miss, so you’re unlikely to meet hordes of tourists up there.


Skipping a week ahead, we camped at the Hodgdon Meadow entrance to Yosemite, which surprisingly allows camp fires. Surprising because the Stanislaus National Forest, which borders Yosemite, was still on fire at the time. The wildfire started on August 17th and was only put out on October 24th after it had burnt through 402 square miles (1041 square km) of woodland. Suffice to say, the drive in looked quite surreal with a white-leafed and black-trunked forest… and that was where there was anything more than blackened stumps left.

We were originally planning to go hiking around Toloumne Meadows, off the Tioga Pass, but it was too late in the year to park overnight up there as the risk of snow is quite high by mid-October. Instead, we grabbed a Wilderness Permit in the valley and headed up the Snow Creek Trail for a circular hike around to Yosemite Point and down past Yosemite Falls on the other site. We managed to lose the trail at the top of Indian Ridge, camped there for the night, had an easy walk across to Yosemite Point, lost the trail again (it’s quite difficult to follow on solid rock without markers) and managed to miss the black bears on the way down.

We did manage to find some snow for the third year in a row, and the autumnal colours made a bit of a change from the usual greenery. The streams were quite low on water, so there were no visible waterfalls, but there was enough to top up water bottles.

Things to see in Yosemite are‥ lots of rocks, wildlife (bobcats, small deer, large deer, friendly rodents, not black bears), waterfalls (overflowing in spring, almost non-existent in autumn) and steep trails out of the valley. Maybe next year, we’ll get a chance to do one of the hikes outside the valley.

GUADEC videos

Interns lightning talks by Ana Rey, CC-by-SA 2.0The GUADEC videos had been put up a little while back on SuperLectures, where they will be available at least until next year. As a more permanent solution, the videos are also available on (incidentally, this also means that we’ve run out of space on our backup machine).

If anyone is interested in creating a pretty website, which is, for downloading the videos, they should come forward as I hope we will have more videos to add next year.

Also, I found out this year that there were no videos from the Desktop Summit 2011 (Berlin) because, after the network failure, the USB hard disk impromptu backup solution did not work as the camaras produced data too fast and the recordings were jittery.

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.

Chromebook Pixel plugs

20131014_001If you happen to have a Chromebook Pixel which was bought in the US and you would like to have a BS 1363 plug, then you either have to shell out around £50 for a new charger… or you can sit down for lunch next to Dan, one of the awesome engineers who works on the hardware and has a whole bunch of them lying around his office. Thanks for the new plugs!

It was also good to know that the loose power connector is a known problem and one of Dan’s colleagues is working on getting it fixed for Chromebook Pixel version 2.0.

Post-GUADEC fun

Lightmatter paperworkGUADEC may be over, but there’s still plenty of follow-up work going on, like processing the reimbursements for sponsored attendees.

The Travel Committee has received only around 30% of receipts so far, but that has been enough to almsot give some of us a mental breakdown as it takes around 20-30 minutes to process each set of receipts if there are no problems.

For the sake of our sanity (and If you want your reimbursement to be processed quickly and painlessly) please make sure to send all of your email receipts as PDFs and all scans as JPEGs or PNGs. Forwarded emails, .docx and .doc files are problems which kill bunnies. Please don’t kill bunnies.

Going to GUADEC (again)

Waiting for the bus

Unlike for most of you, GUADEC will be starting a day early for me as this is one of the only opportunities for the board to have an in-person meeting, which means that I will be in Brno from tomorrow evening. This board meeting is normally the time when the handover from the old board to the new board is completed and the new board takes responsibility for the various roles.

A few things to keep in mind when travelling in the Czech Republic:

  • Withdraw cash in odd amounts so that you do not end up with a 1000 CZK or 2000 CZK note because it’s a pain to spend the larger notes. I recommend withdrawing 800 CZK or 1800 CZK at a time.
  • Buy transport tickets, the fines for not having a ticket are high.
  • Four useful phrases:
    • Thank you: deek
    • Please: proseem
    • I want to pay the bill [at a restaurant]: zaplatit proseem
    • [Pay] together/separately: do hromady/kazdi vlazdi’