Python program to analyse open street map files

This project uses xslt to parse an open street map file and analyses the contents to calculate the total length of all named streets in the file. The source code is in this repository


C++ program to analyse open street map files

This project parses an open street map file and analyses the contents to calculate the total length of all named streets in the file. The source code is in this repository

Mycroft location sharing tool being updated to display open street map data

I am currently updating the mycroft android app to display map data from the open street map project. The source code is in this repository

An instrument for monitoring magnetic fields

This project uses an ATMEGA8 with three seven segment displays. It uses three hall effect sensors and the concept is that it will be able to measure magnetic fields on three axes, and report total magnitude and direction. The source code is in this repository

General purpose instrument for monitoring environmental factors

I am building an instrument around an ATMEGA8515 microcontroller. It will have a nine digit seven segment display and a 12 key keypad. It will have a few different additional inputs and outputs. I am currently writing a small real time operating system

RPN Calculator for QT

As an experiment I have written an RPN calculator in QT Designer

Publishing modified gr-air-modes

I have a Newsky TV301U (RTL2832U + E4000) DVB-T receiver which I bought online. This device can be used as a software defined radiogr-air-modes

I wanted to see the resulting tracks visually so I wrote a tactical displaymodified gr-air-modes

Along the way I built myself an antenna for 1090Mhz based on this design

Weblog now using xslt

This saves a lot of manual work and avoids editing mistakes.

Openmoko sorted out

I had wanted to get pure debian running on the openmoko but I needed to log in to SHR to run the installation script. Unfortunately USB ethernet is broken on recent ubuntu versions and I had issues installing straight debian on one of my laptops. Eventually I found that usb ethernet works fine on ubuntu 9.04 so I tried the debian install script on the openmoko but hit a problem with fdisk on SHR. So thats no-go but I did install qtmoko on the openmoko. It is based on debian so it may do what I want with a serial interface to the AVR.

Job for tomorrow is to get host mode working on the USB port and try a USB to serial adapter.

My 5 watt photo cell array generates 12 watts of power

$20 5W PV cell array from Altronics

Rated absolute maximum power output 5W +- 5%

I get 0.37A to a 34 ohm load for 12.58 watts

This is in my back yard, not in the mallee, and manually pointing the array at the sun.

I also got 0.39A into a 1.8 ohm load so internal resistance is a factor. Every time I increased load resistance I got more power. Have to stop now because I have fried my resistors.

Robot control system

Okay so this is the plan:

  1. I need to put debian on one of my openmoko phones
  2. Connect a USB to serial adaptor to the phone
  3. Configure an AVR ATMEGA8515 microcontroller to talk to the moko through its serial interface
  4. Pull apart one of our old remote control cars
  5. Build some interface hardware for the car. Push-pull drivers for the traction motor. Maybe servo control for the front wheels
  6. Install a small lead acid battery and a voltage regulator 7805?
  7. Profit!

But so far I am stuck at getting TCP/IP over USB to work on ubuntu again. I had to fix my netboot environment and that works now but USB networking seems not to work on the ubuntu live CD environments. Currently downloading debian 6.0.6 live

Tram lines

Cycling south on Lygon just after 09:00. The clearway has ended and some cars are parked in the left lane. About 500 metres north of brunswick road Lygon street widens so I merged into the left lane. Thats where I got caught.

Over about two seconds the bike went wild on me. I had a glimpse of the front end too high, then falling with the steering hard over to the right but I knew I was gone right then. I fell hard on my right side. Hips and arm were numb. Back pack still on. Taking stock. Fingers on my right side still work. Right elbow and shoulder are all wrong. The arm doesn't move right. It looks like a structural problem.

People started to gather around. Somebody asked if I needed an ambulance. I wanted to walk home but I knew I had a broken arm now. So I said yes to the ambulance. Somebody offered to look after my bike and gave me their business card so I could find them again. They put my helmet and security card in my back pack.

The ambulance turned up. Two paramedics. A man and a woman. The ran a full checklist. Numbness, finger movement. The state of my right Humerus. Look for evidence of spinal damage. Look for evidence of a damaged Pelvis. They couldn't be sure about the spine so decided to "pack me up".

They gave me some kind of anasthetic to inhale through. They cut off my irreplacable winter cycling top (every tear, hole and scrape told a story). They immobilised my neck. All in all a great job. Just before we left a police officer poked his head into the ambulance and asked me what had happened. I explained about the tram line.

So we got to the hospital. Taking it easy. The two ambulance officers unloaded me from their vehicle. The guy spoke to a nurse doing triage "we scraped this guy off the road...". So shortly after that they transferred my from the wheeled ambulance bed to a wheeled hospital bed.

Various doctors and nurses were coming and going. Running the same checks as the ambulance people. Finally a senior doctor pronounced my spine and pelvis clear of damage. They took off the packing. During this time they hooked up an IV line and started to drip saline and some Morphene into me. Under the morphene the day started to go quite fast. The same doctor put a temporary cast on my arm. That hurt but so did practically everything else. Then it was off to X-Ray. The doctor had told me that X-Ray had been out of action for a while and now that I have one of their CDs it is obvious why. They send out windows DLL files with their data. Their system is a massive source of computer virus infection. Its no wonder they have problems.

The ambulance people had suggested that I might need a pin in my arm but the bone specialist came around and said no, it should heal with just a cast. So they wheeled me off to a small operating room. Somebody told me that the stuff they were going to give me would make me forget the procedure and that it would be better if I went into it with happy thoughts.

Well I forgot about the happy thoughts and endured a very strange 10000 years of hell apparently featuring things from my life twenty years ago which start with F. It mostly featured the FACOM and the FA18UCF. I had no idea how I got there and no idea how to get out until my wife appeared in a little window in my visual field. I told her solemnly that I had had a terrible epiliptic siezure so she went off to tell the doctors that. After a while I started to figure out where I was. They had had me on pure oxygen for a while but it didn't taste any different from normal air. The morphene didn't do anything for me except reduce pain and put me to sleep. I don't see how people get addicted to the stuff.

So I spent the night in hospital. Every two hours the drugs wore off and they gave me more. The next day I stood up for the first time in twenty four hours and walked slowly to the car.

The anesthetic I was given there might have been

In the end I did get slightly addicted to pain killers. I cut down on the medication in my first week home and had a few uncomfortable nights with little sleep, possibly as a result.

I have some x-ray images on line. I used gimp to convert them from Dicom to PNG then scaled them to a web friendly geometry. The pictures are:

  • None
  • None
  • None
  • None

    I can't yet show you the most recent x-rays becuse the free dicom library doesn't seem to work with them. I will post them if I can solve the problem.

    Three months after the accident I am now able to use my right arm without a brace. Its a huge relief. The doctor told me the bone is at about 70% of the strength it should have. It didn't feel like that at the time but now I have had a couple of days working with it I can see that the pain I was having was mainly muscular. Spent some time digging holes in the back yard and cutting storm water pipe with a hack saw. No problems

    Getting full movement back is the challenge now. My muscles have all tightened up to the point where I can't raise my hands above my shoulders. The physiotherapists have been giving me stretches to do and it has been helping slowly. Now that the brace is off I am using the arm for more normal things and stretching it naturally.

    Why are bicycles banned from Brunton Avenue?

    The Age has

    The problem is that councils and Vic Roads don't do enough to encourage cycling on the road. Bicycles are banned entirely Brunton Avenue, which is a major approach to the city centre. Because of its low speed limit, narrow curbside lanes and lack of on street parking, Brunton Avenue is an ideal cycle commuting route. The alternative is for bike riders to use Yarra Park. But exposes pedestrians to conflict from vehicles and encourages bike riders to continue towards the city through the Fitzroy and Treasury Gardens.

    If you don't want bike riders in the Fitzroy and Treasury Gardens, don't force them to use Yarra Park.

    Mobile phone number

    My mobile phone number is +61 416 062 898. It accepts SMS and voice calls.

    This is my PGP key. There are many like it but this one is mine. 2009-07-27PGP Key for Michael Smith
    Version: GnuPG v1.4.9 (GNU/Linux)

    This is my

    This is my

    This is my


    I have no direct access to Denmark, so I can't report directly on the situation there. Because of the imposssibility of going to Denmark it is possible for anybody to point to anything they have built and say "this is a copenhagen lane".

    However I have searched Copenhagen using google maps and street view. I have selected one road as an example of the type of facility the danes build. The example I have chosen is at,-95.677068&sspn=52.505328,48.955078&ie=UTF8&hq=&hnear=Copenhagen,+Denmark&ll=55.701169,12.57745&spn=0,0.000536&t=h&z=21&layer=c&cbll=55.701169,12.57745&panoid=RPrJdPsGy0kpvT3Igh5x7Q&cbp=12,183.24,,3,2.82

    My first observation is that this is not a bicycle lane. It is being used by motorbikes as well as bicycles, and for all I know there may be other exceptions in Danish law. I can't easily measure the width of the two side lanes on this road but they look about three metres wide.

    Allowing motorbikes on the copenhagen lanes has several advantages. The lane has to be wider to accomodate higher speeds. This provides more lateral clearance for bicycles and improves safety. Additionally, pedestrians who would think nothing of stepping onto the road in front of a bicycle will not step in front of a motorcycle.

    So there is a conflict between the Australian and Danish approaches to bicycle facilities. The Austroads standards specify the absolute maximum width of a bicycle lane as three metres, with narrower lanes being preferred. The stated reason is that the lane needs to be narrow to stop cars from using it. The lanes in this example are easily wider enough for cars but no cars are seen using them. The difference must be legislation and culture.

    The lanes in the example I found in Copenhagen have a physical barrier between the parking are and the lanes which are used by bicycles and motorcycles. In searching Copenhagen I was unable to find any examples similar to Albert street in Melbourne where the parking and bicycle lane are part time and no phyical barrier is provided for car drivers to park against.

    Lets say you are out bike riding. You are in a bicycle lane. There are cars parked to your left. There is a slower bicycle ahead of you so you merge to the right and overtake. Bicycle riders tend to position themselves to balance the static and dynamic hazards which they face. A slower bicycle rider will position themselves closer to the parked cars to the left because the parked cars are less of a hazard for them than the moving cars to the right. A faster bicycle rider will position themselves further to the right for similar reasons. The parked cars are more of a hazard for them so they will stay closer to the moving cars.

    So the faster bike will overtake on the right partly because that is the natural position for them to take up on the road. It is generally true in countries which drive on the left that it is safer to overtake on the right than on the left.

    By putting parked cars on the right this situation is now much more complex. Overtaking bicycles have to ride closer to the static hazards on the right hand side.

    Vehicles cross paths at intersections. Because of this intersections are dangerous for bicycles. Where a dedicated left turn lane exists bicycles which are not turning left cross paths with left turning vehicles some distance before the intersection, at the start of the left turn lane. This approach is quite safe for bicycles because the vehicle which is turning left will reduce speed to join the left turn lane. This enables bicycles proceeding straight ahead to move at the same speed as bicyles merging left. This type of interaction minimises conflict between vehicles.

    If the bicycles approach the intersection in a lane directly on the curb they come into conflict with left turning vehicles right at the intersection. Bicycles may be trapped to the left of a queue of power vehicles waiting to turn left. They may try integrate with this queue of traffic at a point where space between vehicles is limited. This is a more dangerous situation.

    If bicycles are traveling in a copenhagen style bicycle lane it may be impossible for the power vehicles turning left and the bicycles moving directly ahead to have visual contact until they pass the end of the parking between the copenhagen lane and the next lane to the right. The limited visual contact is a source of danger. Additionally when the bicycles and power vehicles come into sight of each other they will do so at a line of sight approaching 90 degrees from directly ahead. It is dangerous for either driver to divert their attention to this degree and it may be impossible for some vehicles.

    Intersections are safest for bicycles when the bicycles travel close to the other vehicles on the road. Increasing lateral separation by providing copenhagen lanes or shared footpaths parallel to the carriageway increases the risk of collisions at the intersection.


    The general idea is to write a script to export contacts from the palm pilot as a CSV file then import the data into an sqlite database. An application will be written using the Enlightenment toolkits to browse the database. This application will be extended to provide functionality specific to some databases.

    The UI for this application will be based on the;a=blob;f=src/view/message-list-view.c;h=87ab7d67f6616942e92fb9151b5573a9371b8f33;hb=HEAD

    The working repository is available

    I have built an


    A new store for opkg packages

    I just noticed that the dbview package doesn't specify sqlite3 as a dependency. This will be fixed in the next version. In the mean time you should manually install sqlite3 with opkg.


    No code or package available yet. I have been trying to work around some vulnerabilities in the enlightenment toolkit on my laptop. If I create linked lists before initialising the enlightenment window, then some of the memory I have allocated is corrupted. I have worked around this by statically allocating arrays for the time being.

    The standard SHR desktop gets cluttered after a while with icons and it is difficult to navigate between them because scrolling is so slow. I noticed that Illume will refresh the desktop if files are changes in /usr/share/applications so I have written an application which tracks categories for selected applications and renames desktop files which are not in the current category.

    I am releasing this version for comment and feedback. Files available are:

  • None
  • Package:
  • None

    Installing the package will create two DeskCat icons. The icon called DeskCat opens an application which will create categories and associate applications with the categories. The association between the two is stored in $HOME/.deskcat and is saved when the application exits.

    To create a new category click the New button. You will get a dialog where you can enter the name of the category.

    To assign an application to a category select the application from the list and then select the button at the top of the window for the category. The list item will change to identify the category. When a category gets its first application a desktop icon is created wich will select that category.

    When you have finished assigning applications to categories close the DeskCat application.

    In the screenshot I have three categories: Util, Core and System. I also have three extra desktop icons by the same name. Selecting the System icon will rename any applications which have a category but are not in the System category to $APP.desktop.ignore (where $APP is the name of the application) and any applications which have the name $APP.desktop.ignore and are in the System category to $APP.desktop.

    Applications which do not have categories are ignored. The package also installs a desktop icon which will make all hidden applications visible.

    Please note this is an early release and should be used with caution. I suggest you make a backup of /usr/share/applications before using it, though I am not aware of any problems with managing files you need to be aware that it does mess around with important files.

    To help reduce clutter I have changed deskcat so that when a category is selected the launcher for that category is hidden. This works both for user defined categories and the built in category "All".


    This is a

    The 0.4 release is stable enough now to be tagged as 1.0. I have released and tested a new package.


    A new version

    The advantage of this new approach is that you can hide the category icons if you wish and just select categories using the deskcat application.

    This is not a release. It is a beta and should be treated with caution.

    First public release, version 1.0



    Screen Shot:

    I have tried to keep the user interface as clean as possible. The application displays a list where each item is the time in one timezone. If you double click on a list item you can enter a name for that timezone. Selecting an item in the list will trigger an update of that item every second. I tried updating every timezone on the second but the moko wasn't up to the task.

    Double clicking can be difficult with the touch screen but I assure you it does work.

    Changes from version 1.0

  • Time zone labels are stored in a database
  • On start up the previously seleted time zone will be selected and displayed
  • The time for the selectd time zone updates every second
  • Other zones update every minute
  • Package:

    First public release, version 0.2



    Screen Shot:

    You see six buttons on the screen. Pressing any button changes the numbers displayed on each button. When the numbers stop changing a label is updated.

    First public release, version 1.0



    Screen Shot:

    The idea is you can write a script to grab some information and display it on the screen in a simple windows with an OK button by piping the text into elmessage. It comes with help information built in. This is used by the system_status tool.

    smithm@michael:~/src/elmessage$ ./elmessage -h
    Copyright (C) 2009 Michael Smith
    This is free software; you can redistribute it and/or modify it under the
    terms of the GNU General Public License as published by the Free Software
    Foundation; either version 2 of the License, or (at your option) any later
    version. See COPYRIGHT for details.
    elmessage is intened to be used to display simple messages
    -t	Specify title of window
    -m	Specify message to display (if not specified, read from stdin)
    -y	Display No and Yes buttons. Return status 0 for Yes, 1 for No
    -h	Display this help message

    Degraded markers

    On the 2010-06-24 I noticed that one section of the raised marker had come loose and was partly obstructing a lane used by traffic. Since then the markers have continued to move around. They are clearly not atached to the road any more.

    Today at about 17:30 I

    These raised markers are a hazard to bicycles even when they remain in the same place on the road. If the markers move around they pose an additional hazard because they can be in an unpredictable position, and may move when struck by a vehicle.

    The markers in Gatehouse drive have continued to degrade. They have continued to move out of position, presumably when cars run over them. This is

    The ongoing movement of these raised markers is increasing the hazard to bicyle riders on this street.

    RSS feeds

    RSS feeds have been fixed now. Most pages have an RSS feed. The best way to subscribe to a feed is to submit the page URL to your feed reader. The reader will read the link to the feed in the html head block.

    The search function is working now. It greps the XML article files and produces a list of matching articles and their categories. I am working on an RSS feed for search results.

    Article pages now include the title. Previously this field was only shown in previews and the RSS feeds.

    To improve rendering of this site in Midori on the openmoko I have added a new simplified style sheet for devices with small screens. I am following the advice in

    The arrival of my x-rays from the Royal Melbourne Hospital gave me inspiration for a new icon for this site. It is a picture of my right humerus from about a month ago, following my

    I just noticed the search function was broken. The problem was in the $PATH for cgi processes. It was unable to access /usr/pkg/bin which is where hg and xsltproc are located.

    Its a bit weird because I can't think of where the regression came from. Anyway its fixed now.

    A comment system has been under development for the last couple of weeks over at

    You can post comments and complaints here. If the system doesn't work well enough for you to post comments then I will most likely pick up the issue from the web server logs.

    Logins will now persist until Wed, 01-Jan-2020 00:00:00 GMT.

    Blind spot

    With regard to

    At low speed and with a high angle of attack, visibility ahead and down can be further degraded.

    Message to the City of Melbourne

    Message to the City of Melbourne submitted through their contact form. 2009-05-22Exclusive left turn lane in Gatehouse Drive Parkville.,144.958194&sspn=0.003569,0.006909&ie=UTF8&t=h&radius=0.19&rq=1&ll=-37.792533,144.958194&spn=0.003569,0.006909&z=17

    RE: Left turn line markings on the westbound approach of Gatehouse Street and Royal Parade intersection

    I am a cycle commuter who travels west on Gatehouse street in Carlton in the early morning. This morning (2009-05-22) I noticed that the left lane on Gatehouse street had been marked as an exclusive left turn lane.

    Because the left lane is for left turns only I have to use the right lane to travel west on Gatehouse street. This is dangerous for me because:

  • Some motor vehicles break the law by crossing the intersection in the left lane
  • Some vehicles turn left out of Royal Parade into Gatehouse street
  • All of these vehicles overtake me on the left.

    I request that you either:

  • Remove the left turn arrow on the westbound approach to Royal Parade, or
  • Mark the left lane as "Left turn only, Bicycles excepted".
  • Sincerely,

    Michael Smith

    A new sign "LEFT LANE MUST TURN LEFT" has been installed on the west bound approach to the intersection of Royal Parade, Gatehouse Street and College Cresent. The northbound approach of Rathdown Street and Eastern Highway has a similar sign bit with the addition of "BICYCLES EXCEPTED". In both cases it is better for bicycles to use the left lane through the intersection.

    I had a call back from the Engineering department at the City of Melbourne about this issue today. They told me that engineering activities within 20 metres of the intersection are the responsibilty of Vic Roads. They are going to write to Vic Roads on this issue and send me a copy.

    The engineer from the city of melbourne told me that he had met with Vic Roads on site and that it had been decided that no change was required. The justification was that travelling directly ahead in the left turn lane would integrate with the flow turning left and so would not be in conflict with left turning traffic.

    I agreed to with this point but I reiterated my original complaint: It is unsafe for all bicycle users to use the right hand lane to ride directly ahead across Royal Parade. For this reason it should be permitted for bicycles to travel directly ahead in the left lane. The engineer from the city of melbourne agreed to call me back on this issue.

    The engineer from the city of melbourne called me back and told me that the signs which mark the left lane as being for left turns only would be modified to exclude bicycles. The signs will go up in six to eight weeks.

    First public release, version 0.2

    I am releasing this version for comment and feedback. Files available are:

  • None
  • None
  • None

    This new version is on the way with some changes:

  • Moved the BS DRP SWP CLR buttons to the bottom of the window because they are used less than other buttons. Currently the bottom row of buttons are hardest to use because of interference with the case of the phone.
  • Fix a bug which allowed the result of calculations to be edited
  • Increased the stack size to 30.
  • Increased the number of characters in the entry field to 40.
  • There is one problem with the layout. The bottom row of buttons do not fit entirely on the screen. I need to find a way to shrink each button in the main window by one pixel vertically to make space for the bottom row. This is an outstanding issue.

    The package is here:

    The package:

    New features:

  • Reorganised the subtraction, division and power functions to make the order of entry more logical.
  • The top item in the stack is now highlighted in bold.
  • This version saves the state of the calculator in a file $HOME/.mkrpn when the calculator is shut down. It loads the state on startup time. The state file has a version number. If a mismatch in the version number is detected the calculator is set to a default state.


    Just so you know I am working in a new version which will be programmable, and which will store sequences of commands in a database. This is part of a strategy to make some of my applications interoperate through an sqlite database. Core functions in the calculator will be hard coded, while functions which are derived from core functions will be stored in the database and accessed through soft keys.

    Changes from version 2.0

  • MKRPN is now programmable. Macros are stored in a database
  • Every key has four functions
  • Alternate functions are selected by INV and ALT keys
  • Some built in functions are macros
  • To record a macro:

  • Press "rec" to start recording
  • Type your commands
  • Press a blank button (more can be reached with inv an alt)
  • Enter a label for the button
  • Your macro has been saved
  • To delete macro from a button

  • Press alt
  • Press cbut
  • Press the button to be cleared
  • To move a macro to a different button

  • Press inv
  • Press mov
  • Press the button to move
  • Press the button to move to
  • Package:

    First public release, version 1.0



    This is a simple way to log events as one line messages. Each event has a timestamp in your locale. The log file is specified on the command line. By default it goes into /home/root/event.log

    I wrote my own keyboard because I find the built in keyboards to be too fiddily.

    New Screen shots:

  • None
  • None
  • None

    When the application starts you see the list window with the most recent event at the top. To enter a new event click the New button. The event entry window will be displayed. The ABC button lets you toggle between upper and lower case. The 123 button lets you change between alphabetic and numeric input. When you have finished typing a message press the Done button. You will be returned to the List window.

    To display details of an event select an event in the list and press the Show button. The details window has more space to display the details of an event. To return to the list window press the Close button.

    The entry window has been changed to use a text field to display the message being composed. You can drag the text around to see different parts of the component. The keyboard has been changed to have five columns and fewer rows of buttons. This makes more space for the text field.

    This is a test release. A formal release will follow soon.


    Changes from version 1.0

  • Events are stored in a database
  • Events are migrated from the old text file when the database table is initialised
  • Date and time can be specified for events
  • Relative time is shown for every event
  • Package:


    Source code for applications can be found in my

    Packages can be found in my

    Any package files you see in the package repository which are not linked to in the article should be assumed to be development versions and best left alone. Note that I use the package repository for integrating test versions.

    For those who are interested I am developing on ubuntu 9.10 on an HP laptop and a eeepc. I use the eeepc so I can get some work done on public transport. It is pretty much the only free time I get.

    Lower price if you buy five at a time


    I have placed an order for a pack of five phones. When they arrive I plan to distribute three or four (depending on how it goes) to the other owners.

    I may have one phone free so let me know if you are in Australia and you want to own an openmoko.

    I have started getting emails from the dispatch system. The phones are in,++CA+,++US+&ie=UTF8&ll=34.111805,-117.559204&spn=2.17838,3.532104&z=8

    The package departed Ontario, California at 3:08 AM on the 28th of July. I will check on it in the morning.

    UPS have advised me that the phones should arrive Thursday morning.

    The three remaining phones are being delivered to their new owners.

    opkg packages

    Packages are available from


    Lets look at this from the point of view of the driver of a car. Your vehicle has particular dimensions. You are driving in a lane which has particular dimensions and on a road which has particular dimensions. There is a bicycle ahead of you. Consider three cases:

  • There is plenty of room to overtake
  • There is barely enough room to overtake
  • There is no room to overtake
  • In cases one and two the result is clear. You either overtake safely or not at all. In case two many different things can happen, and one or the largest variables is the behaviour of the driver of the overtaking vehicle.

    Some drivers are very cautious. Others less so. Most of the risk is born by the bicycle rider and for some drivers this means that there is no risk at all. From the perspective of the bicycle rider the safest approach is to assume that the driver of the car will take the risk and overtake in this situation.

    As a bicycle rider you should never case two. Never allow barely enough room to overtake. Always position yourself on the road by looking at the line to your right which delineates the lane you are driving in. Ride a consistent line and consider how much overtaking space exists in the lane. Keep an eye out for situations where cars might barely overtake. If this can happen, move to the right to turn case two into case three.

    Environmental considerations

    This part of Glenlyon road has four lanes. Two bicycle lanes and two lanes for vehicles which are not bicycles. The bicycle lane at the location I documented is 1400 millimetres wide. The speed limit is 60 kilometres per hour.

    I am referring to the Austroads guide to traffic engineering practice, part 14: Bicycles. Section 4.3.1 of this document discussed "Shared bicycle/parking lanes".

    This document specifies a desirable mininum width for a bicycle parking lane of 4.0 metres. This includes one metre of manoevouring space for the bicycle and a further 0.2 metres lateral clearance between the bicycle manoevouring space and an open car door.

    Section 4.3.4 Exclusive Bicycle Lanes discusses the delineation of bicycle lanes:

    (Bicycle lanes) should preferably not be delineated with raised pavement markers or raised bariers as these are hazardous to cyclists;

    The bicycle lane in this part of Glenlyon road is much narrower than is specified by the guide to traffic engineering practice. The guidelines specify 1200mm between the open door of a power vehicle and the line which divides the bicycle lane from the next lane to the right. Because space is limited, bicycles stay as far to the right as possible.



    Note that the imprinted dates in 2007 are wrong. They should be in 2010.

    For a start: the guide to engineering practice says that

    (Bicycle lanes) should preferably not be delineated with raised pavement markers or raised bariers as these are hazardous to cyclists

    The following scenarios illustrate how raised pavement markers can result in problems for bicycles. It is important to remember that bicycle riding places a great load on the cognitive resources of bicycle riders. It is not always possibly for bike riders to identify and avoid hazards such as raised pavement markers. Adverse lighting and precipitation also create distractions and additional hazards. We should consider what happens when the bicycle rider is unable to locate the raised pavement on the road surface and contacts it unexpectedly.

    To expand on this, Raised pavement markers and barriers are a hazard because they interfere with traction, particularly when crossed at a shallow angle and when water is present on the road surface.

    Bicycles need to leave bicycle lanes to avoid hazards such as opening doors, vehciles entering from side roads and vehicles leaving parking spaces. When turning the bicycle rider relies on friction between their tyres and the road surface to keep from falling. If the wheel of the bicycle strikes an obstruction a crash may result. Raised pavement markers and barriers are harder to cross because of the steeper angle they present to wheels. They also disrupt the natural drainage of water across the road. Pooling water causes aquaplaning.

    The narrow bicycle lane in Glenlyon road encourages bicycle riders to ride close to the pavement markers. If they turn out of the bicycle lane they will do this at a shallow angle. Thick painted lane markings can be a hazard under wet conditions. Tactile edging and raised markers (reflectors) are also a hazard. In a shallow turn there is always a risk that the wheels of the bike will follow a linear obstruction or channel in the road surface, while the body of the bike rider goes in a different direction. The raised barriers used here cause a dangerous linear obstruction.

    A bicycle which strikes the end of a raised barrier faces different problems. Asymetric loads on the front wheel could torque the steering to the left or right. The vehicle may straddle the barrier with the front wheel on one side and the back wheel on the other side. This can cause a loss of traction and a crash.

    Because the raised barriers represent a hazard to bicycles it is likely that bicycle riders will avoid them by riding further to the right or left of the barriers. Riding further to the left exposes the bicycles to conflict with static hazards such as car doors and pedestrains. Riding to the right of barriers increases conflict with overtaking power vehicles.

    Consider a situation where the bicycle is turning to the right and merging across the raised markers. If both wheels hit the raised marker they will have to slide up and across the marker, then down the other side. The wheel may break contact with the marker at the peak in the middle and only contact the road surface beyond the marker. In this case a skid may result, with the application of brakes and resulting brake lockup being a factor as well.

    In the case were only one wheel strikes the raised marker the bicycle may experience either under or oversteer. This may result in collision with parked vehicles in the bicycle parking lane.


    These surfaces are installed on pedestrian crossings. This is a photograph of one near my house:


    A couple of years ago, at the intersection of,-95.677068&sspn=33.626896,79.013672&ie=UTF8&hq=&hnear=Carlton+Victoria,+Australia&ll=-37.791854,144.961003&spn=0.000512,0.001206&t=h&z=20

    As I crossed on to the road my back wheel slipped to the left on the plastic surface. It only stopped slipping when the wheel left the plastic surface. These surfaces are used on many shared footpaths and I regard them as a traction hazard for bicycles there too.

    Any bicycle riders who want to comment on this trial should send their comments to the City of Moreland via their

  • Start a right turn
  • Overtake another bicycle
  • Pass a car which has its door open
  • Pass a pedestrian who may be walking to their car
  • Pass a car which is starting to turn out of a parking space
  • Pass a car which has stopped to reverse into a parking space
  • Pass a car which is double parked
  • Pass a service vehicle such as a garbage truck
  • Leave the bicycle lane where it ends
  • Leave the bicycle lane before it ends to integrate with the traffic at the end of a queue
  • Avoid debris in the bicycle lane
  • Avoid a broken or dislodged raised line barrier
  • Avoid road works
  • Avoid temporary buildings at construction sites
  • Avoid wide vehicles at construction sites
  • Avoid flooded road surfaces
  • Because lighting conditions make it impossible to see the location of the bicycle lane
  • Pass a car which may be about to open its door or turn into the bicycle lane
  • To avoid a collision, for example where a car has opened its door ahead of the bicycle
  • Merging into the bicycle lane after turning right into the road
  • Merging into the bicycle lane after turning left into the road
  • Avoid pedestrians who are crossing the road
  • Avoid pedestrians who are opening the drivers side door of a car
  • Avoid equipment and materials which are being loaded and offloaded from vehicles
  • To keep a bicycle upright in a strong crosswind
  • Raised markers have been installed in Gatehouse drive, Parkville.


    Raised markers which become displaced from their expected location are very dangerous for bicycle riders. Bicycles may find it impossible to avoid the markers when riding a straight line in the bicycle lane. Additionally bicycles may have to leave the bicycle lane to avoid the markers.

    The raised markers in Glenlyon road will experience asymetric sheering forces from cars and trucks entering and leaving parking spaces. These forces will eventually damage their mounting points and allow the markers to change position.

    Collection of mercurial repositories

    Repositories are available from

    I have enabled archive downloads and changed the style to gitweb.

    My resume available in a PDF file



  • Where safe, obey all traffic laws.
  • Never overtake on the left unless you have a clear lane for the purpose and you are sure another vehicle isn't going to cut you off
  • Never overtake a left indicating vehicle on the left in the same lane
  • Never filter at intersections unless there is a bicycle lane for the purpose
  • Never travel straight ahead in a left turn lane
  • Ride a consitent line in your lane. Minimise movement to the left and right.
  • Where possible, indicate before turning or merging left or right
  • Integrate with the flow of other vehicles at intersections
  • Never overtake while doing left or right turns
  • Always use the right turn lane when doing a right turn
  • Attract attention
  • Use the best lights on the road
  • Don't be nice
  • Obey the law and expect others to do the same
  • Don't feed the trolls
  • Move fast
  • Don't talk while cycling
  • Don't use phones
  • Where possible keep both hands on the controls
  • +
    For when this happens again

    Post discussion about the outage here

    First public release, version 1.0



    Screen Shot:

    Currently it displays your IP address for GPRS, data up and down on GPRS, the current system load, uptime and the PID of the framework process.

    Upgrading to Ubuntu 9.10

    We have four laptops in the house so I run squid on my internal server to cache the packages we pull from the server. All the machines use the Australian dpkg server by default but the upgrade process refused to work. It complained about authentication problems.

    So I changed to the main server for the two laptops which had that problem and the upgrade progressed cleanly, but slowly. It took about two hours to upgrade both machines. I had previously downloaded the alternate and desktop ISOs by bittorrent so I built a USB install disk for the eeepc and reinstalled it from scratch.

    I have a few problems:

  • The notification system is now very annoying to have around. There doesn't seem to be any way to close the notifications. They hang around for a long time. When I move my mouse cursor to a notification it hides itself then it comes back when the cursor moves away. It acts like it is playing games.
  • The notification system has a configuration dialogue which claims to be able to reposition the notifications. This repositioning feature doesn't work. The notifications are positioned some distance below the top right side of the screen. I would prefer them to be immediately below the panel, which I keep at the top of my screen.
  • On the eeepc I get a notification telling me my battery is broken. This happens on every restart. I didn't get this message on 9.04
  • On the HP NX6120 the prism driver for the Netgear WG511 wifi PCMCIA card is broken. I have had to go back to the NDIS driver which I haven't needed on ubuntu for at least three years. Incidently I had to install the gnome NDIS tool from a package. Previously it was distributed with ubuntu.
  • Also on the NX6120 the notification area icons for Liferea and Claws Mail now have solid backgrounds which contrast with the transparent background of the gnome panel. In 9.04 they had transparent backgrounds.
  • The gnome Preferences menu is becoming cluttered again. It has obscure menu items such as Sun Java6 policy tool. I don't see what my wife is going to use that for on her laptop.
  • In summary this release is a step back to a time when linux was expected to lack polish. Maybe Canonical are working towards a new LTS release, in which case 9.10 can be considered a Beta. This release may be worth skipping.

    Gnome has locked up twice since the upgrade. In the first case I was selecting text in an aterm window. I was unable to give focus to a different window though I could bring up a shutdown dialog by pressing control+alt+del.

    On the second occasion I had just plugged in my sons ipod touch to charge it. The ipod is mounted and opens a nautilus window. I don't know if mounting the ipod caused the problem.

    The metacity window manager has problems too. I had nedit and aterm both open in the same workspace. The nedit window was in front of aterm. Clicking on the title bar of the aterm window would not bring it to the front. I have since closed and reopened nedit. It now behaves correctly.

    Its not that bad, really

    I am still off the bike because of that

    Today coming home on the tram the driver was constantly braking to avoid cars moving on to the tram line. It was much worse than normal. Then there was this guy trying to cross Clarendon street without waiting for the pedestrian crossing..If he had waited his hair might have gotten wet or something, so for that he risked his life.

    So I have a request to make. I am not even going to bother asking people to take extra care in the wet. Just take normal care. Ignore the water. Its not that important. Cats and dogs are not living together. Turn on your wipers and behave as normal.


    Collection of access point names

    Because of a

    Going to work one day through Fitzroy I opened the network interface menu from NetworkManager and noticed that I had ten or twenty wireless access points within range and that some of them had pretty funny names. So I started to research ways of getting a list of AP names from a script and within a day or so I had written

    Unique access points are identified by their MAC addresses. The first column in the file is the number of unique access points with that name. High numbers are shown at the top of the file. You can see that NETGEAR is a very popular access point name. Low numbers down the file show some less common access point names. There can be only be one BoomZilla or Internet Death Virus for example.


    I am working with the

    To program it I use the

    I do my development on various laptops, all of which have unbuntu linux installed. I have installed various avr related packages such as avr-gcc and avrdude. You can find them by searching in the Synaptic package manager.

    I have written a number of applications. The

    A good example is my

    The microcontroler is documented with a very comprehensve

    First impressions

    Unpacked the phone. I love the hardware. It feels very solid though compared to the iphone it feels very brickish. It doesn't come with an Australian power supply so I used the European one with a power plug adapter. The OM software booted up okay and asked me for a PIN to unlock the SIM card. I hit my first usability problem here. The keyboard it displays is in tended for a stylus and configured for alphabetic input. I found

    I used

    I couldn't see how to get wifi working in qtopia so I went back to OM for now. Wanting to get a terminal I

    I then ran opkg from an ssh session and installed packages. I had to manually start dropbear on the wifi IP address to be able to log on to the phone from elsewhere.

    opkg initially failed for me. I followed

    Today I plan to start qtopia and fix the audio issues by logging in through USB networking.


    Qtopia would accept calls but it would not ring. I had to rely on vibration and screen display to see incoming calls. I mounted the micro sd card back on ubuntu and grepped the file system for references to alarm.wav. This gave me a config file pointing to .wav files in a non-existent directory. I found a wav file to use for a ring tone and copied it to the sd card. I edited the config file and pointed it to the wav file. Then I booted qtopia and used profile settings to select the new file. Now the phone rings for incoming calls.

    The next problem is that microphone gain is much too low. I plan to use the

    Connected to qtopia on the phone. For the record the procedure is:

                smithm@michael:~$ sudo ip address add dev usb0
                smithm@michael:~$ sudo ip link set dev usb0 up
                smithm@michael:~$ sudo route add -host dev usb0
                smithm@michael:~$ ssh root@
                root@'s password:

    The root password is empty by default.

    The alsa mixer tool works but it seems to be overidden by the qtopia UI. This

    I noticed that qtopia won't suspend while on battery if it has been connected to a PC. You can fix that by connecting it to a mains charger than taking it off charge.

    I have been using a Hong Kong 10 cent piece to open the case of the phone. I reckon its cheaper than using a guitar pick.

    I have subscribed to the

    Using a finger to scroll a list in qtopia is problematic. I found that it responds better to light quick flicks from the corner of my little finger. It doesn't like my attempts at slow, full finger dragging.

    I charged the phone overnight but this morning it was partly discharged. My theory is that it draws power from the plug pack until the battery is empty, then runs entirely on the battery. If true this is clearly a bug.

    Qtopia has separate power management options for battery operation and powered operation. I had set the phone to never suspend when on the power supply. I have enabled suspend under power to see if that works around this problem.

    I have installed the version of gsmhandset.state described in

    I have installed

    I installed this

    I installed dfu-util from the ubuntu repository and made a

    Then I

    The OM 2009 distribution is very different from OM.2008. It has a clean industrial feel. It can be operated almost entirely by fingers as opposed to the stylus. The wifi gui interface actually works. All in all this build is a step in the right direction.

    Working on wifi and ssh in OM.2009. To convince dropbear to listen on all interfaces edit /etc/default/dropbear and set the contents to DROPBEAR_PORT=*:22

    Normally the phone will not go into suspend while connected to a power supply however there is a bug and a workaround is often required. See



    dbus-send --print-reply=undocumented --system --type=method_call --dest=org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy string:GPS string:enabled

    To disable the GPS:

    dbus-send --print-reply=undocumented --system --type=method_call --dest=org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy string:GPS string:disabled

    Success: tail -f /var/log/frameworkd.log | grep ogpsd


    2009.06.19 12:14:11.966 ogpsd DEBUG Got UBX packet of type NAV-POSLLH: [{'LON': 1449872265, 'HMSL': 503937, 'HEIGHT': 500002, 'ITOW': 353684998, 'LAT': -377624530, 'Vacc': 1873, 'Hacc': 72391}]

    1449872265,-377624530 is my location.

    Still working with the current OM2009 test release. I have put together a package of adaptions I have made to the software. It is available in

    Wifi is still unreliable. Currently my preferred way to connect to the phone is via usb ethernet.

    I had a lot of lockup problems with OM2009 yesterday so I reinstalled the file system this morning. Enabling gps significantly increases the number of trace messages from frameworkd and I think the additional load is causing race conditions to break the phone software. So I am not runniung the GPS at the moment. I may have to change frameworkd so it doesn't fail in this way.

    Also I wonder if the load from frameworkd was causing my wifi problems. I need to investigate this.

    I recommend that anybody starting out with a new openmoko not follow the above article. Instead I suggest you follow my experiences with SHR. To be continued in


    I noticed today that a new release of

    So far I have found one bug. I locked up the UI by swiping my finger across two application icons. Some unstable releases may be better. The build from 2009/08/08 might be worth a try. I will post updates if I find anymore information.

    Going very well with SHR. To my surprise, GPRS is working out of the box with my cheap optus SIM card. I opened the Midori browser and it brought the Google Australia search page right up. Browsing this site revealed a few problems. I have addressed them by writing a


    So I am reinstalling SHR Lite but this time I will upgrade the OS on the SD card ahead of the OS on the phone. When I find a version which works I will upgrade the phone. I will also post results here so that others can follow the same process.

    I set the timezone by doing:

    ln -sf /usr/share/zoneinfo/Australia/Sydney /etc/localtime


    There are two wires coming out of the four pole connector. Wire A has an open shield A1 surrounding a white insulated wire A2, Wire B has two open conductors. B1 is distinctly red. B2 is a natural copper color. Using a meter I mapped the poles on the connector to the wires. Pole P1 is the tip of the connector. P4 is at the other end, furthest from the tip. Mapping is:

    P1 B1 red Speaker +

    P2 A2 white Microphone +

    P3 B2 plain Speaker -

    P4 A1 plain Microphone -


    Of the two phones I kept from the box of five, the second turned out to not have a buzz problem at all. The

    The standard layouts for the Illume Keyboard in SHR are much too small for me to type numbers and letters with my fingers. I have created

    These layouts make it possible for me to use the phone without a stylus (yay!).

    The GPS in the second phone worked perfectly for me the first time I tried it. The GPS in the first phone only worked once and it took about half an hour to lock on. I suspect that there is a problem with the GPS antenna cable on the first phone.

    There appears to be a systematic difference between the two phones. One phone has two faults (buzz and GPS). The other phone has neither of these faults. Perhaps there are two production lines, or perhaps there were different production runs. Both are A6 phones.

    The phone was taking a few seconds to come out of suspend while it printed log messages so I took

    Its a bit of a kludge but I edited /etc/init.d/syslog as follows:

    I replaced these lines:

    start-stop-daemon -S -b -n syslogd -a /sbin/syslogd -- -n $SYSLOG_ARGS
    start-stop-daemon -S -b -n klogd -a /sbin/klogd -- -n
    echo "done"       

    ...with these lines:

    start-stop-daemon -S -b -n syslogd -a /sbin/syslogd -- -n $SYSLOG_ARGS
    start-stop-daemon -S -b -n klogd -a /sbin/klogd -- -n
    klogd -c 1                                                    
    echo "done"       

    I have been working on an application I call

    The package for version 0.1 is

    A new store for opkg packages

    The ring and message tones in the phone are too quiet for me. I often miss calls because I don't hear the phone ring. I used signalgen to create some simple tones. Then I built the

    In case you haven't noticed I have created a

    I just noticed that if you cd into /usr/share/applications and rename a .desktop file to something like .desktop.ignore then the icon is hidden. I wonder if this could be used to create categories for desktop files. Just rename files to show and hide them.