Operational Dynamics
Technology, Strategy, and IT Operations Consulting   |   Open Source Research and Development   |   Blogs

Usability, Usefulness, and Unit Testing

The linux.conf.au GTK tutorial, part II

This was first given as the sequel to the linux.conf.au, GTK and GNOME tutorial, 22 Jan 2009 at Hobart. You can download the slides here.

Usability, Usefulness, and Unit Testing


Designing for usability, usefulness, and unit-testing ... the LCA GTK & GNOME tutorial, part 2

In 2007 (and again in 2008) we presented a tutorial on the basics of programming with GTK. This year we're going to move on to the next level.

Applications are about more than packing a few Buttons into a Window. They are about effectively presenting information and providing usable interfaces for manipulating data. What do you have to think about to design such a user interface? Even more challenging, how do you structure your program code so that it will scale up as you build a real application?

The answers to these questions are all about design patterns. There are UI design considerations:

and there are programming best-practise considerations:

We will actually approach all of these from the perspective of anti-patterns: these are each areas where things tend to go wrong. We'll discuss why these mistakes occur (usually made by people with the best of intentions), how to recognize them, and how to engineer things so you don't hit them in the first place.


Again, we're going to use examples in not just one language but in three: C, Python, and Java. We will, again, and to the amazement of our audience, program LIVE and on screen in front of them. Obviously I can't write entire applications during a couple-hour tutorial, so this time the focus will be solving design problems. To that end, we'll have the code which is the starting point for each part of the tutorial posted online well before the conference, allowing attendees who want to get even more out of the tutorial to prepare ahead of time (though the presentation will be paced so that people who don't wish to do so will still be able to get the essential messages out of the tutorial).

Too often we hear from programmers, "I'm no good at doing user interfaces" (it's right up there with "programmers can't write documentation"). Our core belief is that any programmer can create beautiful UI, and this year's GTK tutorial will help equip people to do that. Even if you're not overly interested in the GNOME desktop, considerations about application architecture, user interface usability, software testing, and graphic design will be of interest to wide audience.

These documents copyright © 2009 Operational Dynamics Consulting, Pty Ltd unless otherwise noted. Copyright of work by other authors is retained by those authors. Most material in this site is made available under an Open Source or Open Content licence; see the top level LICENCE file in that project's source repository for details

Files on this site (notably program code) will be delivered as Content-Type: text/plain unless syntax-highlighted or binary. Optimized for standards. All times UTC