Tag: Linux
Setting up a guest network with Unifi APs
Running the UniFi Controller under LXD
A while back I bought some UniFi access points. I hadn’t gotten round to setting up the Network Controller software to properly manage them though, so thought I’d dig into setting that up.
Building IoT projects with Ubuntu Core talk
Performing mounts securely on user owned directories
ThinkPad Infrared Camera
Tag: Networking
Setting up a guest network with Unifi APs
Running the UniFi Controller under LXD
A while back I bought some UniFi access points. I hadn’t gotten round to setting up the Network Controller software to properly manage them though, so thought I’d dig into setting that up.
Tag: UniFi
Setting up a guest network with Unifi APs
Running the UniFi Controller under LXD
A while back I bought some UniFi access points. I hadn’t gotten round to setting up the Network Controller software to properly manage them though, so thought I’d dig into setting that up.
Tag: Ubuntu
Running the UniFi Controller under LXD
A while back I bought some UniFi access points. I hadn’t gotten round to setting up the Network Controller software to properly manage them though, so thought I’d dig into setting that up.
Exploring Github Actions
Building IoT projects with Ubuntu Core talk
Ubuntu Desktop
When the Ubuntu Phone project was cancelled, I moved to the desktop team. The initial goal for team was to bring up a GNOME 3 based desktop for the Ubuntu 17.10 release that would be familiar to both Ubuntu users coming from the earlier Unity desktop, and users of “vanilla” GNOME 3.
Performing mounts securely on user owned directories
ThinkPad Infrared Camera
Ubuntu Phone and Unity
At the end of 2012, I moved from Ubuntu One to the Unity API Team at Canonical. This team was responsible for various services that supported the Unity desktop shell: most noticeably the search functionality. This work initially focused on the Unity 7 desktop shipping with Ubuntu, but then changed focus to the Unity 8 rewrite used by the Ubuntu Phone project.
Ubuntu One
Ubuntu One was a set of online services provided by Canonical for Ubuntu users. It provided cloud hosted storage for files and structured data, synchronised to the user’s local machine. The Ubuntu One service was discontinued in 2014.
u1ftp: a demonstration of the Ubuntu One API
Launchpad code scanned by Ohloh
More Rygel testing
Ubuntu packages for Rygel
django-openid-auth
Streaming Vorbis files from Ubuntu to a PS3
Prague
Weird GNOME Power Manager error message
On the way to Boston
Schema Generation in ORMs
Upgrading to Ubuntu Gutsy
Canonical Shop Open
gnome-vfs-obexftp 0.4
Investigating OBEX over USB
gnome-vfs-obexftp 0.3
FM Radio in Rhythmbox – The Code
FM Radio in Rhythmbox
FM Radio Tuners in Feisty
Launchpad 1.0 Public Beta
UTC+9
San Francisco
Daylight Saving in Western Australia
Building obex-method
Playing Around With the Bluez D-BUS Interface
OBEX in Nautilus
Ubuntu Bugzilla Migration Comment Cleanup
Ekiga
Firefox Ligature Bug Followup
Annoying Firefox Bug
London
Launchpad featured on ELER
Bugzilla to Malone Migration
Ubuntu Bugzilla Migration
Switch users from XScreenSaver
Moving from Bugzilla to Launchpad
Avahi on Breezy followup
Avahi on Breezy
Ubuntu Below Zero
DSB-R100 USB Radio Tuner
Tag: PLUG
PLUG June 2022: Hugo
At the June 2022 Perth Linux Users Group meeting, I gave a talk about building websites with the Hugo static website generator.
PLUG May 2021: GStreamer Editing Services
At the May 2021 Perth Linux Users Group meeting, I gave a talk about using GStreamer Editing Services to programatically construct and render videos. In particular, it outlined how the library was used to prepare BigBlueButton recordings for publication on YouTube.
PLUG July 2020: Github Actions
At the July 2020 Perth Linux Users Group meeting, I gave a talk about Github Actions: the built-in continuous integration system provided by Github.
Building IoT projects with Ubuntu Core talk
PLUG March 2019: Building IoT projects with Ubuntu Core
At the March 2019 Perth Linux Users Group meeting, I gave a talk about how Ubuntu Core can be used to build IoT projects that are secure and self-updating.
PLUG April 2018: Confined Apps on the Ubuntu Desktop
At the April 2018 Perth Linux Users Group meeting, I gave a talk about the snapd package manager, and how it is used to deploy confined applications on Ubuntu desktops.
PLUG September 2016: Talking to Chromecasts
At the September 2016 Perth Linux Users Group meeting, I gave a talk about writing Chromecast sender applications from scratch. It gave a rundown of how the Chromecast protocol worked, and what sorts of things could be done on the receiver side.
PLUG October 2015: Ubuntu Snappy
At the October 2015 Perth Linux Users Group meeting, I gave a talk about the Ubuntu Snappy. This talk focused on the Ubuntu Core system as it existed back then, and looked at how applications could be deployed on the platform.
PLUG July 2014: Ubuntu Phone
At the July 2014 Perth Linux Users Group meeting, I gave a talk about the Ubuntu Touch/Ubuntu Phone project. This included an overview of getting Ubuntu running on hardware that primarily targeted Android, and how some of the design elements of the Unity Desktop were adapted to a small screen.
Tag: JavaScript
Improved JS Mandelbrot Renderer
Javascript Mandelbrot Set Fractal Renderer
Tag: hugo
PLUG June 2022: Hugo
At the June 2022 Perth Linux Users Group meeting, I gave a talk about building websites with the Hugo static website generator.
Tag: Gnome
Converting BigBlueButton recordings to self-contained videos
Exploring Github Actions
Ubuntu Desktop
When the Ubuntu Phone project was cancelled, I moved to the desktop team. The initial goal for team was to bring up a GNOME 3 based desktop for the Ubuntu 17.10 release that would be familiar to both Ubuntu users coming from the earlier Unity desktop, and users of “vanilla” GNOME 3.
Seeking in Transcoded Streams with Rygel
Watching iView with Rygel
More Rygel testing
Ubuntu packages for Rygel
Sansa Fuze
PulseAudio
Using Twisted Deferred objects with gio
Metrics for success of a DVCS
DVCS talks at GUADEC
Prague
Inkscape Migrated to Launchpad
Weird GNOME Power Manager error message
gnome-vfs-obexftp 0.4
Investigating OBEX over USB
TXT records in mDNS
gnome-vfs-obexftp 0.3
Stupid Patent Application
FM Radio in Rhythmbox – The Code
FM Radio in Rhythmbox
FM Radio Tuners in Feisty
ZeroConf support for Bazaar
gnome-vfs-obexftp 0.1 released
UTC+9
Building obex-method
Playing Around With the Bluez D-BUS Interface
OBEX in Nautilus
Gnome-gpg 0.5.0 Released
Vote Counting and Board Expansion
JHBuild Updates
JHBuild Improvements
intltool and po/LINGUAS
Ekiga
Annoying Firefox Bug
Re: Lazy loading
Gnome Logo on Slashdot
Gnome-gpg 0.4.0 Released
Using Tailor to Convert a Gnome CVS Module
Revision Control Migration and History Corruption
gnome-gpg improvement
Drive Mount Applet (again)
Preferences for the Drive Mount Applet
Features vs. Preferences
Re: Pixmap Memory Usage
Switch users from XScreenSaver
DSB-R100 USB Radio Tuner
Playing with Google Maps API
HTTP resource watcher
Bryan's Bazaar Tutorial
HTTP code in GWeather
pkg-config patches
Clipboard Handling
Anonymous voting
Clipboard Manager
<tt>bgchannel://</tt> Considered Harmful?
8 March 2005
6 January 2005
8 December 2004
Nautilus Extensions
25 October 2004
20 October 2004
Drive Mount Applet
11 October 2004
4 October 2004
29 September 2004
Applets vs. Notification Icons
Notification Icons
14 September 2004
13 September 2004
20 May 2004
28 April 2003
17 June 2002
12 May 2002
Tag: GStreamer
Converting BigBlueButton recordings to self-contained videos
GLib integration for the Python asyncio event loop
ThinkPad Infrared Camera
Tag: GUADEC
Converting BigBlueButton recordings to self-contained videos
DVCS talks at GUADEC
GUADEC 2003: Libegg and PyORBit
At GUADEC 2003 in Dublin, I gave talks about Libegg and PyORBit.
GUADEC 2002: PyGTK
At GUADEC 2002 in Seville I gave a talk about the state of the Python bindings for GTK and GNOME. At this point, I was recommending people move off the old GTK 1.2 bindings, so this talk covered the process of porting existing applications.
GUADEC 2001: PyGTK
At GUADEC 2001 in Copenhagen, I gave a talk about the work I’d been doing on PyGTK. In particular, it talked about the major rewrite to build on top of ExtensionClass (a precursor of Python 2’s new style classes), and the start of GTK 2.0 support.
GUADEC 2000: Dia and PyGTK
At GUADEC 2000 in Paris, I gave talks about the Dia diagram editor, and my Python bindings for GTK and GNOME.
Tag: Python
Converting BigBlueButton recordings to self-contained videos
Using GAsyncResult APIs with Python's asyncio
Exploring Github Actions
GLib integration for the Python asyncio event loop
Extracting BIOS images and tools from ThinkPad update ISOs
u1ftp: a demonstration of the Ubuntu One API
Packaging Python programs as runnable ZIP files
pygpgme 0.3
Watching iView with Rygel
django-openid-auth
Getting "bzr send" to work with GMail
Using Twisted Deferred objects with gio
Thoughts on OAuth
Django support landed in Storm
Transaction Management in Django
Storm 0.13
Using Storm with Django
How not to do thread local storage with Python
Psycopg migrated to Bazaar
Psycopg2 2.0.7 Released
Running Valgrind on Python Extensions
Two‐Phase Commit in Python's DB‐API
Zeroconf Branch Sharing with Bazaar
Re: Python factory-like type instances
urlparse considered harmful
Storm Released
ZeroConf support for Bazaar
Python time.timezone / time.altzone edge case
Recovering a Branch From a Bazaar Repository
UTC+9
Playing Around With the Bluez D-BUS Interface
Launchpad enterered into Python bug tracker competition
Re: Lazy loading
pygpgme 0.1 released
Python class advisors
Version control discussion on the Python list
Overriding Class Methods in Python
Python Challenge
8 April 2005
Python Unicode Weirdness
Tag: asyncio
Using GAsyncResult APIs with Python's asyncio
GLib integration for the Python asyncio event loop
Tag: glib
Using GAsyncResult APIs with Python's asyncio
GLib integration for the Python asyncio event loop
Tag: Continuous Integration
Exploring Github Actions
Tag: snapd
Building IoT projects with Ubuntu Core talk
Tag: ThinkPad
ThinkPad Infrared Camera
Tag: linux.conf.au
Linux.conf.au 2014: Unity Scopes
At Linux.conf.au 2014 in Perth, I gave a talk about the “scopes” system I had worked on at Canonical as part of the Unity API team. Scopes were pluggable search providers for the Unity dash. A future version of the framework drove the launcher on Ubuntu Phone.
linux.conf.au 2011
In Hobart
Linux.conf.au 2004: Scripting with PyORBit
At Linux.conf.au 2004 in Adelaide, I gave a talk about controlling GNOME applications from Python via the accessibility framework.
Linux.conf.au 2003: EggMenu
I gave a talk at Linux.conf.au 2003 about the experimental “EggMenu” framework I had been working on. This code was eventually merged into GTK 2.4 as GtkUIManager.
Tag: Launchpad
u1ftp: a demonstration of the Ubuntu One API
Launchpad code scanned by Ohloh
Ubuntu packages for Rygel
django-openid-auth
Storm 0.13
MySQL Announces Move to Bazaar
Psycopg migrated to Bazaar
Inkscape Migrated to Launchpad
On the way to Boston
Schema Generation in ORMs
In Florida
Canonical Shop Open
Bazaar Bundles
Storm Released
gnome-vfs-obexftp 0.3
Launchpad 1.0 Public Beta
SchoolTool Moves to Launchpad
UTC+9
bzr branch https://launchpad.net/products/foo
Microsummaries in Firefox 2
--create-prefix not needed with bazaar.launchpad.net
Ubuntu Bugzilla Migration Comment Cleanup
Shared Branches using Bazaar and Launchpad
Launchpad enterered into Python bug tracker competition
In London
Hosting bzr branches on Launchpad
pygpgme 0.1 released
London
Launchpad featured on ELER
Bugzilla to Malone Migration
Ubuntu Bugzilla Migration
Moving from Bugzilla to Launchpad
Version control discussion on the Python list
Version Control Workflow
Back from Brazil
Tag: OAuth
u1ftp: a demonstration of the Ubuntu One API
Thoughts on OAuth
Tag: Ubuntu One
u1ftp: a demonstration of the Ubuntu One API
Using Mozmill to Test Firefox Extensions
Tag: firefox
Javascript Mandelbrot Set Fractal Renderer
Using Mozmill to Test Firefox Extensions
Tag: lca2011
Javascript Mandelbrot Set Fractal Renderer
linux.conf.au 2011
Tag: mozilla
Using Mozmill to Test Firefox Extensions
Tag: testing
Using Mozmill to Test Firefox Extensions
Tag: Bazaar
Launchpad code scanned by Ohloh
Getting "bzr send" to work with GMail
Metrics for success of a DVCS
DVCS talks at GUADEC
MySQL Announces Move to Bazaar
bzr commit --author
Psycopg migrated to Bazaar
Looms Rock
bzr-dbus hacking
Zeroconf Branch Sharing with Bazaar
States in Version Control Systems
Signed Revisions with Bazaar
Bazaar bundles as part of a review process
Bazaar Bundles
FM Radio in Rhythmbox – The Code
ZeroConf support for Bazaar
Python time.timezone / time.altzone edge case
Recovering a Branch From a Bazaar Repository
Re: Pushing a bzr branch with rsync
bzr branch https://launchpad.net/products/foo
--create-prefix not needed with bazaar.launchpad.net
Gnome-gpg 0.5.0 Released
Shared Branches using Bazaar and Launchpad
Hosting bzr branches on Launchpad
JHBuild Improvements
New Default Branch Format in Bzr
Repositories in Bzr
Using Tailor to Convert a Gnome CVS Module
Revision Control Migration and History Corruption
OpenSSH support in bzr
Using OpenSSH with bzr
Comparison of Configs/Aliases in Bazaar, CVS and Subversion
Version control discussion on the Python list
Version Control Workflow
Bryan's Bazaar Tutorial
Merging In Bazaar
Bazaar (continued)
SCM Command Line Interface Comparison
6 January 2005
15 December 2004
1 November 2004
Tag: DLNA
Seeking in Transcoded Streams with Rygel
Streaming Vorbis files from Ubuntu to a PS3
Tag: PlayStation 3
Seeking in Transcoded Streams with Rygel
More Rygel testing
Ubuntu packages for Rygel
Streaming Vorbis files from Ubuntu to a PS3
Tag: UPnP
Seeking in Transcoded Streams with Rygel
Watching iView with Rygel
More Rygel testing
Ubuntu packages for Rygel
Streaming Vorbis files from Ubuntu to a PS3
Tag: Django
django-openid-auth
Django support landed in Storm
Transaction Management in Django
Using Storm with Django
Tag: OpenID
django-openid-auth
Re: Continuing to Not Quite Get It at Google...
Thoughts on OAuth
Using email addresses as OpenID identities (almost)
Client Side OpenID
OpenID 2.0 Specification Approved
OpenID Attribute Exchange
Identifier Reuse in OpenID 2.0
OpenID 2.0
Canonical Shop Open
Tag: Rhythmbox
Sansa Fuze
Tag: Sansa
Sansa Fuze
Tag: Sprint
In Montreal
Zeroconf Branch Sharing with Bazaar
Tag: pygtk
PyGTK
GUADEC 2002: PyGTK
At GUADEC 2002 in Seville I gave a talk about the state of the Python bindings for GTK and GNOME. At this point, I was recommending people move off the old GTK 1.2 bindings, so this talk covered the process of porting existing applications.
GUADEC 2001: PyGTK
At GUADEC 2001 in Copenhagen, I gave a talk about the work I’d been doing on PyGTK. In particular, it talked about the major rewrite to build on top of ExtensionClass (a precursor of Python 2’s new style classes), and the start of GTK 2.0 support.
GUADEC 2000: Dia and PyGTK
At GUADEC 2000 in Paris, I gave talks about the Dia diagram editor, and my Python bindings for GTK and GNOME.
Tag: lca2009
In Hobart
Tag: Twisted
Using Twisted Deferred objects with gio
Tag: Storm
Django support landed in Storm
Transaction Management in Django
Storm 0.13
Using Storm with Django
Two‐Phase Commit in Python's DB‐API
Schema Generation in ORMs
Storm Released
Tag: Zope
Storm 0.13
Using Storm with Django
Tag: PostgreSQL
Psycopg migrated to Bazaar
Psycopg2 2.0.7 Released
Two‐Phase Commit in Python's DB‐API
Tag: Beer
Honey Bock Results
Honey Bock
Beer Pouring Machine
Chilli Beer
17 June 2002
12 May 2002
5 May 2002
Tag: Loom
Looms Rock
Tag: D-Bus
bzr-dbus hacking
Tag: Valgrind
Running Valgrind on Python Extensions
Tag: Avahi
Zeroconf Branch Sharing with Bazaar
ZeroConf support for Bazaar
Avahi on Breezy followup
Avahi on Breezy
Tag: Bonjour
Zeroconf Branch Sharing with Bazaar
Tag: Hackathon
Zeroconf Branch Sharing with Bazaar
Tag: Zeroconf
Zeroconf Branch Sharing with Bazaar
Tag: Inkscape
Inkscape Migrated to Launchpad
Tag: openid.ax
OpenID Attribute Exchange
Tag: gnome-power-manager
Weird GNOME Power Manager error message
Tag: Japan
Beer Pouring Machine
Tag: Narita
Beer Pouring Machine
Tag: XML
Stupid Patent Application
nxml-mode
Atom
Tag: JHBuild
JHBuild Updates
JHBuild Improvements
Using Tailor to Convert a Gnome CVS Module
Revision Control Migration and History Corruption
GraphViz
8 December 2004
20 October 2004
4 October 2004
6 September 2004
20 May 2004
14 April 2004
jhbuild
17 February 2004
12 February 2004
jhbuild
5 November 2003
28 April 2003
5 May 2002
Tag: pyorbit
Linux.conf.au 2004: Scripting with PyORBit
At Linux.conf.au 2004 in Adelaide, I gave a talk about controlling GNOME applications from Python via the accessibility framework.
GUADEC 2003: Libegg and PyORBit
At GUADEC 2003 in Dublin, I gave talks about Libegg and PyORBit.
Tag: libegg
GUADEC 2003: Libegg and PyORBit
At GUADEC 2003 in Dublin, I gave talks about Libegg and PyORBit.
Linux.conf.au 2003: EggMenu
I gave a talk at Linux.conf.au 2003 about the experimental “EggMenu” framework I had been working on. This code was eventually merged into GTK 2.4 as GtkUIManager.
Tag: dia
GUADEC 2000: Dia and PyGTK
At GUADEC 2000 in Paris, I gave talks about the Dia diagram editor, and my Python bindings for GTK and GNOME.