mtearle is currently certified at Journeyer level.

Name: Mark Tearle
Member since: 2000-04-03 08:11:12
Last Login: 2014-10-20 12:07:46

FOAF RDF Share This


In 2001, I was a Project Officer[1] at The University of Western Australia working for "University Communications Services"[2] Have written a telephone billing system for them, waiting for new manager to arrive to ask to release it on the world. [3][4] Hang around with the geeks at the University Computer Club

[1] I do stuff. Anything that doesn't really fit anywhere else or has been forgotten about for too long.

[2] Stupid Pluralisation

[3] That was written six months ago... it's now October 2000

[4] New manager has arrived, ... must speak to her at some point :)

[5] Still must get around to it


Recent blog entries by mtearle

Syndication: RSS 2.0

The flow of things ….

The theme of this blog entry was triggered by a set of slides that were presented at this OSCON this year on the topic of flow. Flow being the wonderful energised state where you are fully focused upon and enjoying
the activity at hand.

For reference the presentation was: OSCON2015: Coding in the FLOW (Slides)


The conference presentation goes on to describe what the presenter thinks are the criteria needed for when you are coding, but I think there is a degree of generality here that can be applied to anything technical or skilled. They were described as:

  • G = Clear, attainable goals
  • F = Immediate and relevant feedback
  • S = Matched Skill and Challenge

For myself, I think I can add at least one other criteria

  • A = Available Time

In terms of my tinkering away at little software projects, my most recent project has been npyscreenreactor. npyscreen is a Python library around the Python curses bindings. npyscreenreactor is an implementation of interfacing that library with the Python Twisted library.  Twisted is an event driven networking engine for python. The reactor part of the name refers to a design pattern for how to write event based service handlers and have them run concurrently.  (See Reactor Pattern)

The project was written to support virtualcoke.  virtualcoke is an emulator of the behaviour of the PLC that drives the UCC Coke Machine. This is written primarly to avoid club members needing to have access  to the coke machine to test code to speak to the machine and the development of the reactor was needed to enable use of the PyModbus Twisted module.

This project, npyscreenreactor, has taken sometime to come to fruition with an initial working release of the code in March 2015, some bug fixing in June, working examples in August and probably what will now be a
stable version in September.

For this the goal, feedback, and skill have been there. However, the available time/energy has not (due to other commitments, such as work).  The wider project that will use virtualcoke, I still need to throw some energy at, but it is now lower down my list of priorities.

In things apart from this, flow has been less forthcoming of late and I’ll need to work on it.  The challenge being to set up a positive reinforcing cycle where the achieving the goal generates warm fuzzies and more enthusiasm to work harder.

Syndicated 2015-10-05 12:34:05 from Assorted musings

That rare feeling …

… of actually completing things.

Upon reflection, it appears to have been a sucessful week.

Work – We relocated offices (including my own desk (again)) over the previous week from one slightly pre-used office building to another more well-used office building. My role as part of this project was to ensure that the mechanics of the move as far as IT and Comms occured and proceed smoothly. After recabling the floor, working with networks, telephones and desktops staff it was an almost flawless move, and everyone was up and running easily on Monday morning. I received lots of positive feedback which was good.

Choir – The wrap up SGM for the 62nd Australian Intervarsity Choral Festival Perth 2011, Inc happened. Pending the incorporation of the next festival, it is all over bar a few cheques and paperwork. Overall it was a great festival and as Treasurer was pleased with the final financial result (positive).

Hacking – This weeks little project has been virtualsnack. This is a curses emulator of the UCC Snack Machine and associated ROM. It is based on a previous emulator written with PyGTK and Glade that had bitrotted in the past ten years to be non-functioning and not worth the effort to ressurect. The purpose of the emulator is enable development of code to speak to the machine without having to have the real machine available to test against.

I chose to continue to have the code in python and used npyscreen as the curses UI library. One of the intermediate steps was creating a code sample,, which creates a daemon that speaks to a curses interfaces.

I hereby present V1.0 “Gobbledok” of virtualsnack. virtualsnack is hosted up on Github for the moment, but may move in future. I suspect this item of software will only be of interest to my friends at UCC.

Syndicated 2014-10-25 05:02:51 from Assorted musings

A preponderance of yak shaving….

It is often observed that attempting to undertake one task begets another, with the corollary that two days later you’ve built a bikeshed painted in a multitude of colours.

So, dear readers, this tale of woe begins with the need to update my blog to something useful after 18 months of neglect and more. I had been writing a travel blog from when I took some leave off work to wander the globe. For this task, a new more generic DNS entry and an upgrade to the WordPress installation and syndication with my Advogato blog. Easily accomplished and a sense of progress.

This blog entry is going to be mostly a technical one. I’ll try incorporating more of real life in other entries.

Great, now I can tell the world about my little project toying with Vagrant and Puppet.

It is called “Browser In A Box”. It is up on Github

It is very simple, a Vagrant file and a set of Puppet manifests/modules to launch Chromium in kiosk mode inside a VM to hit a certain URL. This is part of planned later work to look at creating a Vagrant development environment for Concerto.

At this point, I got distracted … aside from the liberal upgrades of bash on various machines to address Shellshock

Then I accidentally purchased a new Ultrabook. My previous netbook had been getting long in the tooth and it was time to upgrade. I ended up purchasing a Toshiba Satellite NB10, a reasonable processor Intel N2830, 4 Gig of RAM and 500 Gigs of spinning rust. Those are the nice bits.

On the negatives, Crappy Toshiba keyboard layout with the ~ key in a stupid spot and a UEFI bios. It is now blatantly apparent why Matthew Garrett drinks copious quantities of gin.

Special brickbats go to the Ubuntu installer for repartitioning and eating my Windows installation and recovery partition. (The option to install over my test Debian installation got over enthusiastic).  The wireless chipset (Atheros) has a known problem where it confuses the access point.

The next distraction ended up being a fit of procastination in terms of rearranging my tiny apartment. I’ve now modelled it in a program called Sweet Home 3D. Easy and straight forward to use. Needs a few more furniture models, but perfectly functional. I shall use it again next time I move.

Finally, we arrive at the the original task. I want to start syncing my calendars between various locations (written here for my benefit later).

They are:

  • Work stream – From my Work (Exchange) to my private host (Radicale) to Google Calendar (which will get to my Android phone)
  • Personal stream – From my private host (Radicale) to Google Calendar (and back again)
  • Party stream – From Facebook’s ical export to my private host and Google Calendar

In addition, various syncing of contacts but not my primary focus at the moment.

It appears that syncevolution will do most of what I want here. The challenge revolves around how to get it working. Ultimately, I want to have this live headless hosted on a virtual machine not running a desktop.

In a fit of enthusiasm, I decided upon attempting to build it from source as opposed to using the packages provided from the upstream (to avoid dragging in unnecessary dependencies.

I need to build from HEAD due to recent code added to syncevolution to support the change in Google’s CALDAV API to be behind OAuth V2.

This was not an overly successful exercise, I ended up getting something built but it didn’t ultimately work.

Problems encountered were:

  • libwbxml2 – The upstream at is down. There appears to be forks, so playing the game of guessing the current head/release version.
  • activesyncd – Build system is currently broken in parts. There appears to be bit rot around the evolution bindings as the evolution API has changed

I gave up at that point. I’ve since spun up a different virtual machine with Debian Jessie and an install of Gnome. The packages from the syncevolution upstream installed cleanly, but have yet to work out the incarnations to make it work. However, that my friends is a story for a later blog entry…

Syndicated 2014-10-19 03:18:59 from Assorted musings

Oh Canada!

Dear readers,

In my last instalment I left you having left Brisbane and arrived into Sydney ready to depart Australia.  Apologies for the lack of updates for the past few weeks, I’ve been enjoying the trip, devoting my all my brain cycles to my adventures, and spare moments to catching sleep and relaxing.

After a very long Thursday (courtesy Air Canada), was met at the other end by long time friends, A and E.   Had to remember, or be reminded, to get in the correct side of the car for Canada.  Canada not being of the 76 countries that drive on the left.   Was entertaining for the A and E to watch my reactions to being taken in traffic in the front passenger seat for the first time.

Headed off to A and E’s apartment to freshen up after the long flight.  As A famously boasts, “Closer to the airport than the nearest hotel!”.   Their apartment has a birds eye view looking out over the Vancouver Airport.  The area of Richmond that they live in is being slowly developed and turned into apartment towers.   I’m slightly jealous of the view and that it would be a nice place to spend a lazy winters afternoon looking out of the window.

Of my Vancouver experiences, two stick in my mind.

The first was ringing at my bell tower in a foreign country [1] at the Holy Rosary Cathedral.  I managed to ring there twice, once for a wedding and once for service.   Unsurprisingly, ringers are not a diverse bunch, easily spotted lurking outside towers, and fit into some stereotypes.    That said I had a great time and would love to visit them again.

The second was a trip out to the Richmond Night Markets with A, E and Z.   We worshipped at the stall supplying Rotatos (potatoes cut in a swirl on a stick and covered in cinnamon).  Yum!   Wandered past lots of other delicious food smells coming from the other vendors.   Looked at the dozens of stalls selling iPhone covers and shaking my head.   It was a great market experience.

Sadly, I had to leave Canada for the rest of my trip into the the US of A and crossed the border at of all places, Vancouver Airport.   I think I get bonus points for avoid LAX :)

[1] No, Queensland doesn’t count.

Syndicated 2012-12-17 12:56:50 from Assorted musings

In the most isolated capital in the world ….

I’ve been back in Perth for about a month now and am only starting to re-adjust to it.   After having travelled around the world, I still feel very much like a visitor in town (admittedly, one who knows how to get around)

I’ve been extremely lax about writing up my international adventures. It was hard during the trip due to constantly being on the move with sucky internet access and a case of writers block.    I’ve decided to write up some of the international sections as vignettes so based on requests I’ll write something about those cities first.   In order, Vancouver, San Francisco, Chicago, Grand Rapids, Boston, New York, London, Amsterdam (Haarlem), Oslo and Hong Kong (with a bonus Brisbane and Sydney in there too)

I still have to complete my other journey that requires leaving a very familiar place after 19 years, but I suspect that will happen in the new year.  (ask me in person and I’ll be less cryptic)

Anyhow, comments and requests welcome.



Syndicated 2012-12-12 15:52:41 from Assorted musings

55 older entries...


mtearle certified others as follows:

  • mtearle certified yakk as Journeyer
  • mtearle certified gbowland as Journeyer
  • mtearle certified jamesh as Master
  • mtearle certified k as Journeyer
  • mtearle certified robk as Apprentice
  • mtearle certified Sarah as Apprentice
  • mtearle certified dayta as Journeyer
  • mtearle certified jtauber as Journeyer
  • mtearle certified srl as Journeyer
  • mtearle certified XFire as Apprentice
  • mtearle certified Skud as Journeyer
  • mtearle certified jaq as Apprentice
  • mtearle certified blm as Apprentice
  • mtearle certified phonomongrel as Apprentice
  • mtearle certified croy as Apprentice
  • mtearle certified xf as Apprentice
  • mtearle certified mrd as Journeyer

Others have certified mtearle as follows:

  • k certified mtearle as Journeyer
  • gbowland certified mtearle as Journeyer
  • robk certified mtearle as Journeyer
  • Malx certified mtearle as Journeyer
  • sh certified mtearle as Journeyer
  • dmerrill certified mtearle as Apprentice
  • fxn certified mtearle as Apprentice
  • Jewelsthorn certified mtearle as Apprentice
  • trs80 certified mtearle as Apprentice
  • jaq certified mtearle as Apprentice
  • scrottie certified mtearle as Journeyer
  • xf certified mtearle as Apprentice
  • mrd certified mtearle as Journeyer

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page