First a big 'thank you'
So I've just arrived back in Zurich en route to Johannesburg after a
thrilling and tiring week hackfesting in Vienna. I'm going to try to
summarise some of the major activities and outcomes from the hackfest
and will ask others to fill in what I forget in the comments.
First off I would like to say a big thank you to Werner Macho and Dr.
Reinfried Mansberger. Dr. Mansberger (Institute of Surveying, Remote
Sensing and Land Information (IVFL), Vienna) kindly allowed for the use
of facilities (meeting rooms, kitchen, LCD projector, internet access).
The facilities were excellent, comfortable and the perfect fit for the
twenty or so attendees at the hackfest. Werner Macho organised
everything and provided for a hassle free and extremely pleasant
hackfest where everything 'just worked'. As an additional bonus his
girlfriend Verena baked up a storm keeping hungry hackers fed with an
endless stream of delicious cakes! It should be noted that in three and
a half days of hackfesting, the hackfest team consumed more coffee than
is normally used in four months at the faculty! Dr. Mansberger kindly
ensured that the bill for all that coffee was covered, a gesture which
is heartily appreciated by the QGIS team who would otherwise been a
bunch of zombies and not managed to hack into the wee hours of the
Secondly let me thank the other attendees. I can honestly say that I
would be hard pressed to find a nicer bunch of people to spend 3 days
locked up in the same room with. Each person brought a little bit of
magic to the meeting making the whole event a real pleasure. Above and
beyond that, the attendees were extremely dedicated and enthusiastic
QGIS and FOSSGIS users and the conversations I had with the various
people I got to spend time with were extremely stimulating. It was also
really great having virtual participation in the IRC channel from those
who couldnt be there in person - the input from IRC was a great
motivator and a good way to keep us on our toes and pick up any issues
to commits to the code base.
Lastly, I would like to say a huge thank you for the people and
companies who so kindly donated towards our hackfest funding drive.
Personally I am self employed and needed to travel half way around the
world to attend the hackfest so attending it means a week of no income
for me before I even consider the travel costs. Others are in the same
boat and the money that was donated was put to really good use in
covering the travel expenses of a number of attendees. Not having to
worry about travel and accommodation costs on top of losing a week of
work time made it a lot easier for me to attend. Also some of the
attendees had their presence at the hackfest paid for by their employers
so thank you to those employers who made this possible. I do hope you
will consider sponsoring our project or making a donation so that we
can continue to hold these six monthly get togethers and keep up the
momentum of the project.
Summarising the hackfest
With those thanks out of the way I would like to summarise the hackfest
a little for you eager folks out there dying to know what we got up to.
The hackfest is actually an 'unmeeting' in that we arrive with no real
agenda except to 'make QGIS better' and then organise ourselves on the
fly. This works well because it allows us to be dynamic and make the
best use of the skills of the people that arrive at the hackfest. That
said we did have some broad topic areas on the hackfest wiki page
that we planned to cover.
Activities at the hackfest could broadly be broken up into:
- group discussions
- break out discussions
As you can see from my list, by far the most emphasised activity was
hands-on work on the code base. Presentations were spread out across the
event so that we did not get 'presentation overload' and had a chance to
digest the contents.
Martin Dobias gave the first presentation where he demonstrated the
symbology-ng branch and his work on an improved labelling engine. The
symbology-ng (next generation) branch is a complete overhaul of the
existing symbology infrastructure in order to address some limitations
of the current architecture and provide a capability to do high quality
cartography within QGIS. These limitations include:
- no capability to do overpainting easily (for example needed to render freeways with a blue outline and white inner line).
- no capability to easily create new renderer types (e.g. based on different approach such as rendering a line composed of SVG symbols)
- no ability to create complex markers and markers that can be shaded (e.g. as continuous colours) beyond the current 'hard' markers implemented in QGIS
The symbology-ng implementation also provides a simpler interface for
symbol selection and definition.
Martin's presentation spawned a huge amount of discussion, the outcome
of which was that we all voted for Martin to merge his work into trunk
as soon as possible. While the symbology-ng implementation still has
outstanding issues, it can run alongside the existing symbology
implementation and will be turned off by default. This will allow early
adopters a chance to play with the technology from within the mainstream
QGIS builds. It will also provide a platform for better bug reporting
and feedback. We will aim for symbology-ng to be the default symbology
rendering engine in the future QGIS 2.0 release. Here are a couple of
screenshots of what you can expect when his work is merged into trunk.
Note that all of the images below can be clicked on for a larger view.
Martin followed up his symbology-ng presentation with one on a new
labelling engine based on PAL. This provides a way to address various
deficiencies within the existing QGIS labelling implementation by
providing collision detection, label priorities and optimal label
placement capabilities. The new labelling engine is also able to make
labels follow lines. Martin showed us the labelling engine calculating
label placement in various situations and it was indeed impressive. As
with the symbology-ng we voted to include the new labelling engine in
trunk at Martin's earliest convenience since it runs as a plugin and
will be disabled by default so is a low risk inclusion into the code
base. Some screenies of the labelling plugin follow:
Massimo Di Stefano presented the work he has been involved in on the
Google Summer of Code project they did to integrate QGIS and
ossimPlanet. The integration work uses TCP/IP to update viewpoint
position and send raster data over to the ossimPlanet application -
where it is viewed on a 3D globe. The globe syncronises to the current
QGIS view extents and additional tools provide fine tuned options for
postioning the ossimPlanet view. We were all really impressed by their
work. Some discussion followed with the general concensus being that we
wouldnt be able to ship this as a core part of QGIS due to the number of
dependencies it adds and the fact that it does not yet meet ease of use
requirements. It is however a great step forward towards providing 3D
visualisation capabilities within QGIS and we will work with the
developers to make their work available as an add on to QGIS (not part
of the standard installation) once the code matures and can be easily
Alexander Bruy presented work on two projects he has been involved in.
In the first they have been building a high quality sample dataset for
Ukranian and Russian open source GIS users to use as the basis for
tutorials and learning GIS. The dataset has Russian place names etc. and
so is more familiar to users than the traditionally English based
datasets common in GIS tutorials. The second part of his presentations
covered a plugin they have written for recording protected areas and the
species that occurr in them. This work will be a great contribution
towards and eventual open source EcoGIS implementation (see discussion
section below). It was really gratifying to see Alex's presentation and
the great use they are putting QGIS to in the Ukraine. Alex is not the
only Russian QGIS hacker - other members of the GIS-Lab group have
provided us with some great improvements to QGIS especially in the Image
Martin gave a final presentation where he showed off the work they did
with the gismapper project. The project involved building tools to map
infrastructure using a car fitted with GPS, spherical camera, compass
and a computer fitted with a touch screen and running Ubuntu with QGIS.
I posted an earlier video about which I am including again here for your
I know the video quality isn't brilliant but hopefully it gives you a
feel for this excellent project (which is all open source by the way!).
The presentation prompted some discussion about the project and which
aspects of it make sense to include into QGIS core. The basic outcome of
that discussion is that we will aim to include the GPS communication
code and support for a moving GPS cursor on the map canvas into core,
and evaluate what else makes sense to incorporate on a case-by-case
We had a number of great round table discussions covering a range of
topics such as:
- the roadmap to QGIS 2.0,
- improved SVG support in QGIS,
- User Interface issues and consistency
- Adoption of the GIS icon theme
- Managing plugin repositories
- Managing plugins better within the QGIS user interface
- Forming an Ecology and Conservation management subgroup
- Dealing with user expectations
I am going to touch on the user interface related stuff briefly here and
invite you to discuss other items in more detail on the QGIS mailing
lists. Note that I did provide quite a bit of detail of the individual
things people were working on over at the QGIS Blog
The main thing I worked on during the hackfest was a user interface
consistency review. On the first day of the hackfest we formed a small
team consisting of myself, Milena Nowotarska (Poland), Werner Macho
(Austria), and Anita Graser (Austria). The goal of our work is to visit
each and every dialog and ensure that it meets our Human Interface
Guidelines (HIG). We started discussing the existing HIG and planning
what things we were going to cover during the hackfest and beyond to the
release of QGIS 2.0. This can be summarised as:
- Ensure all labels on dialogs end with no colons (there was a mish-mash of colon and non-colon based labels throughout the application)
- Ensure that all labels have a leading capital letter and then are written in lower case
- Ensure that all labels have word wrapping enabled
- Ensure that all labels have their buddies set (used for keyboard shortcut jumping between fields)
- Ensure that all forms have an appropriate tab order set
- Try to make all forms fit onto a netbook sized display
- When forms need to be horizontally constrained, use a vertical layout and place the widgets in a toolbox or scrollbox
- Ensure that all dialogs use QDialogButtonBox which gives appropriate locale and operating system rendering of buttons such as close / ok / help.
- Ensure that all dialogs have a context help button and associated context help
- Ensure that icons are consistent througout the user interface
- Ensure that plugins integrate into the userface into native menus and do away with the plugin menu
- Reduce the real estate consumed by toolbars and simplify, simplify, simplify the user interface as much as possible but removing little used elements (especially toolbar icons)
- Cleanup core plugin dialogs for visual consistency
Needless to say this is quite a tall order but we made a good dent by
doing an initial pass through the dialogs - you should already be able
to see quite a lot of the improvements that we have made in the nightly
builds of QGIS or in your local svn checkout. The topic of icon usage
within QGIS received quite a bit of attention. The GIS icon theme is
great in that it is visually consistent but the feedback I received from
most users was that they still preferred the 'old' default theme. We
discussed why this may be the case, with the concensus being that it was
- people who were already familiar with the old theme had to relearn to recognise the GIS theme icons so its easier just to not switch
- the contrast in the GIS theme icons is quite low so your brain has to do more work to figure out the important elements of each icon
- some of the icons contain concepts that are not recognisable - they don't provide any or enough visual clue as to what their function is (e.g. spatial bookmarks, add vector)
- Some of the icons break with existing user interface memes for example using a hand icon for a pan button and a four direction arrow to indicate that something can be moved.
We would really like to have a consistent icon theme in QGIS 2.0 so
Anita has started a revision of the icons to try to address some of
these issues. We will use this posting as a starting point for a
discussion with Robert Szczepanek (the original authoer of the GIS
theme) and try to work with him to pass our changes upstream where he is
agreeable. You can see an example of the original icon theme from Robert
(first image below) and the updates from Anita (second image below).
I spent quite a lot of time exploring how to improve the user
friendliness of the map composer and other dialogs where there are many
widgets and options. Below you can see the outcome of some of this work.
Firstly you can see that the widgets are now arranged vertically -
removing horizontal widget arrangment means that the form part of the
composer (to the right of the split) can occupy a lot less space and
degrades gracefully as it narrows. The previous implementation shrank
the widgets into non-existence as it got too narrow. You will see that
where widgets have labels (e.g. Title), the label is placed above the
widget. This allows the label to be longer in translated versions of
QGIS without causing the related widget ot disappear into oblivion.
Experimentally we are also going to be placing lables into widgets as
seen in the spinboxes in the above screenie since it saves vertical
space and allows more options to be viewed on the screen at one go.
You will also notice that we are making use of a toolbox (areas marked
'General', 'Legend Items', and 'Item Options') in the above screenie.
This allows us to pack a lot more information into a small space and
easily access forms in each section. In the next screenie below, you can
see what happens when another toolbox item is clicked.
These kind of user interface cleanups will be taking place throughout
the application with the goal of completing them for 2.0. - I hope they
are a step in the right direction for everyone.
No discussion of the QGIS user interface would be complete without a
lengthy and heated debate about splash screens - and of course we had
one! Suffice to say that the QGIS developers are getting a little tired
of planetary moons as the theme for our releases and come version 2.0 we
will be switching to a new theme for our splashscreens....you will have
to wait a little to find out what that will be...