Slides and other materials for various presentations I’ve given. I try to give a couple a year, I think that it’s important that we talk about what’s we’re working on developing in Open Source. Sure, you can publish the code but there is a lot more context that helps in understanding what it does and its implications. Generally speaking if I give a presentation twice I take the last time’s slides and update them with what worked or didn’t, so that’s why I put multiple sets here. Please contact me if you think some of these topics would be good to present to a group or conference you’re organizing.

Snapping a Modern Desktop App: Inkscape

Desktop apps have lots of interactions between different parts of the system, so confining them can be hard. Talking through the various interfaces required in making the Inkscape snap along with future plans to use newer interfaces still in testing. Also will look through building Inkscape using Snapcraft and the Lauchpad builders.

SVG Filters

SVG Filters provide a way to achieve effects on vector art that are commonly only associated with bitmap tools. By taking vector objects and doing bitmap operations on them artists can maintain the ability to edit the image while still get their desired effects. They give the artist the ability to control the vector rendering pipeline in powerful ways. Inkscape provides tools to build these filters from the basic building blocks in the SVG specification. There are also SVG Filters that are build into Inkscape that can be used to quickly adjust an work. Learning to use the built in filters, build your own filters and package those filters for other artists to use are all powerful ways of using Inkscape to create dramatic images.


A presentation on recent events involving the WannaCry worm for business leaders who are non-technical. Discusses the basics of worms and ransomware along with general principles to help mitigate the situation. Also introduces zero-days and the discussion on what government’s role should be.

Converge All the Things

Convergence is an oft used word, but also requires explaination. Talk to go through what convergence means today for phones, computers and IoT devices.

Technical Drawing with Inkscape

A set of tips and ideas for technical people to better express themselves in their slides and digrams using Inkscape.

Ubuntu Application Confinement

Ubuntu Phone allows applications to be uploaded with fewer checks that a traditional Linux distribution, but to counteract that has an application confinement on the device to help protect the user. Introduction to the Ubuntu Application model and how to work with it.

Snap your App!

An introduction to Snappy and Snapcraft and how to get your application into a Snap.

Free Software and You!

A general introduction to the concepts of Free Software for business folks who are unfamiliar with it.

Internet of Things

Non-technical introduction to the term Internet of Things and the impact that could have on people’s homes and businesses in the future.

Debugging DBus

Some hints and introduction to tools for working with DBus for developers who do not have experience working with it.

Ubuntu Touch Internals

Explaination of how Ubuntu Touch is built, specifically targeting developers who are familiar with Android. Goes into the relationship between Ubuntu Touch and the Android subsytem while discussing the overall Ubuntu designs.

Unity: Why does it matter?

Introduces Unity with the design concepts behind it and talks about how Unity will help bring the dream of the consumer friendly free desktop forward.

  • Presented to SCALE 9X (February 27, 2011)

Contributing to Unity

Tips and ideas for Ubuntu community members about how they can get involved with the Unity project.

The Messaging Menu

A talk about the user interactions and APIs involved in Ubuntu’s messaging menu.

  • Presented to Desktop Summit (July 6, 2009)

Ubuntu Desktop Technologies

An introducation to the technologies that are used to build the Ubuntu Technologies along with an explanation about how they work.

Bling for Usability

A discussion of how what some consider fancy effects can actually help improve the user experiences of desktops and applications.

  • Presented to SCALE 6x (February 10, 2008)

SVG Overview

SVG features and abilities presented for Free Software graphics application developers.

Inkscape Extensions

Explanation on the Inkscape extension system and how to create your own extension. Also talks about upcoming extension methods being added to Inkscape.

Understanding SVG with Inkscape

Presentation on the mechanics and features of SVG along with how to edit SVG files using Inkscape.

Dynamic Graphics with SVG

Explanation of SVG and how it can be used to create more dynamic and flexible websites.

SVG and the Linux Desktop

Introduction to SVG and vector graphics concepts and how they’re being used on the Linux desktop. Mentions projects like KDE, Cairo and livarot.

Introduction to Inkscape and SVG

Explains the SVG format and vector graphics along with how to make graphics in Inkscape. Provides a basic overview of the different toolboxes and features of Inkscape.

Introduction to GTK+

An introduction to the GTK+ GUI toolkit. Also covers many aspects of Glib, a supporting library of GTK+. Familiarity with programing is required, but explicit knowledge of GUI programming is not required. Most examples are in C, but the concepts are general to any of the GTK+ language bindings (no crazy C stuff).

Photo Editing in GIMP

This is a presentation that is aimed at users who have no experience with The GIMP, or with photo editing. This presentation covers the basics of selecting objects and then moves on to cover: red eye reduction, smooth borders, and adding emphasis with color. In the end, a user should be able to do basic photo editing in The GIMP.

An Introduction to Linux

An introduction to what Linux is for people who attended PLUG installfests but may not know a lot about the Linux ecosystem or how it was built. A very quick introduction.