Update needs your help. I originally wrote the code back in 2014 to solve an a personal problem I had. Since then it’s organically grown to have more features; a twitter bot, station data and environmental stats. It’s been great and I have had awesome feedback. It’s never really had a chance for fixing the code quality and the database structure leaves a lot to be desired. It’s currently hosted on my own server and to date I’ve covered all costs incurred with running the service.

Drawing of wind turbine and solar panels on a hill

For the last year the only thing running on that server has been and as such I’m chasing funding to cover the costs of running the server along with cost engineering time to fix up some issues with the application. Given enough funding we can even add some really cool features I’ve got planned.

I’ve started a Patreon page in the hope that there is enough support to keep the service running and allow for improvements.

So with enough funnding what can we do?

  • Buy a domain name (this has been bugging me since I started the project)
  • Automate new station data
  • Ingest all data fields
  • Public Kibana instance to allow users to explore the data
  • Geotag all the stations
  • Add Western Australia
  • Machine Learning
  • Add weather feeds
  • Network map
  • Public API
  • Ingest all historic data (10 years of NEM!)

You can donate as much or as little as you want at the Patreon page here; every bit helps extends

Painting Lines - 1

This blog series intends to show some of the more ridiculous traffic engineering designs provided by VicRoads. These posts aren’t designed to debate legalities of such system but rather investigate the possible actions when people are provided with the stimulus.

Our first example is the intersection at the corner of Waltham Street and Bridge Road. The Google Street View of the area is a little out of date which shows that the traffic lights in this area which means the traffic lights have been installed in the last 2 years.

Image showing two traffic lights and a pedestrian crossing on Bridge Rd

The layout suggests that the intention of the intersection was to provide a crossing for pedestrians across Bridge Rd. The actual crossing occurs between Waltham and Bosisto Streets. Both streets have raised walkways for pedestrians, which is a nice touch compared to most walkways along Bridge Rd. As the two streets are offset the lights for the pedestrian crossing are put fairly far apart.

Image showing a concealed stop sign on Waltham Street towards Bridge R

Problems occur on the Waltham entrance to Bridge Rd. Interestingly the design of the traffic light system is limited for both Waltham and Bosisto streets with a single orange and red light. On Waltham this isn’t situtated directly in front of Walthan, but rather on the corner of Bosisto. As there is no green light on this pole the only time drivers will see that the intersection has traffic lights is when they are required to stop. There is no traffic light visible to people entering from Walthan until they have hit the intersection. It’s also worth noting that there are no pedestrian lights for crossing Walthan Street intersection if walking down Bridge Rd. This leads to some pedestrians thinking cars have right of way and some cars thinking they have right of way.

Image showing "Stop here on red arrow" sign

What is provided on Walthan is two traffic signs. A stop sign, 3 meters to the left of the road, concealed by 2 trees and a power pole, and a “stop here on red arrow” sign, concealed also by the trees. These photos were taken from the angle of a car and demonstrate the lack of vision of them. Also to note is the stop line for Waltham is fairly thin.

As there are no pedestrian lights and raised footpath most drivers are probably on the lookout for pedestrians, and given the concealed signs and lack of sufficient traffic lights and poor positioning it’s easy to see how a driver could miss the single red light. Missing the red light and turning corner puts the car directly into the path of pedestrian. Depending on the situation this could lead to the driver having to stop abruptly, or if there are no pedestrians crossing they may see the light ahead of them and stop on the intersection blocking persons from crossing.

While the intersection isn’t the worst example of poor traffic engineering, it does show some lack of thought around how users would interact with it. Some suggestions to improve usability:

  • Provide full green/yellow/red lights on both Walthan and Bosisto
  • Ensure the lights are in line with the oncoming traffic
  • Either add pedestrian lights or zebra crossings
  • Move signs to the side of the road rather than the middle of the foot path
  • Increase the thickness of Waltham line
  • Rather than deal with two incoming streets, move the crossing to the other side of the tram stops where there are no side streets.


Welcome to my new blog. There may not be a lot here yet. I may or may not import some of my older writings.

3KU Delta Printer

UPDATE - If you have bought one of these printers check out the 3KU Owners Club.

From here -


  • Price
  • Mostly Metal parts (LCD screen and top plate held with 3d printed parts - not so important)
  • Pusher works really well compared to 3d printed designs
  • Includes a lot of extra stuff (Filament, Bed leveling sensor, LCD, Masking tape, paint scrapper, spare stepper driver and heater core, sd card, roll holder)
  • USB stick included with manuals, firmware and install videos
  • Install videos easy to follow
  • Seems to print fairly fast - still need to tune to see how far I can push it
  • The picture showed a 4 holes to mount the bed - it’s actually 3, which line up with common heatbeds.
  • Shipped via DHL and arrived in under 14 days
  • Came with Allen keys
  • Powersupply doesn’t have exposed 240v and uses a barrel jack. Figure 8 (C7/C8) lead
  • Has an on/off switch!
  • Belts not fishing wire
  • Seems like fairly good parts


  • No heatsinks on stepper drivers nor cooling fan for electronics - I don’t think this is required if drivers aren’t at max current
  • No heated bed
  • Some of the PDFs for install steps were a little confusing
  • Comes with a deathdapter (
  • Older version of Marlin that doesn’t support negative numbers (shows random ascii chars on screen lol)
  • Insutrctions didn’t cover autobed leveling
  • Doesn’t use a smoothieboard or ther controller with a dedicated FPU

Kodi OpenElec Keyboard Issue

Kodi / XBMC / OpenElec may have trouble with Apple Bluetooth Keyboards when numlock is stuck on. Only volume keys and a few others like backspace seem to work. When this is the case you can use a crude hack to force numlock/capslock to be off by create a file in /storage/.config/ with the follow. Don’t forget to chmod +x it.

python -c 'from ctypes import *; X11 = cdll.LoadLibrary(""); display = X11.XOpenDisplay(None); X11.XkbLockModifiers(display, c_uint(0x0100), c_uint(18), c_uint(2)); X11.XCloseDisplay(display)'

Depression Ramblings

Preamble: This post is about my encounter with depression. This is 100% honest and truthful. The reason I’m writing this is to raise money for Movember ( which supports several mental health programs ( along with raising awareness. I may not be able to grow a decent mo, so hopefully this suffices.


I think depression has been with me for most of my life. From a fairly young age I had my first encounters with suicidal thoughts and being around 6 or 7 at the time, I didn’t really know how to cope with it. Eventually I reached a breaking point, and I wanted to hurt family members that were trying to stop me from hurting myself. By the end of that incident there were two paramedics, my grandparents, my dad (who was called home), my mum and the next door neighbour trying to stop me. Thankfully neither my family members nor myself were hurt in that incident, but it is my first memory of having suicidal thoughts. After the incident I remember having an EEG test ( and another test which did not reveal anything out of the ordinary.

Over the next several years, I went on my life thinking that the thoughts in my head were normal and most of the time I just ignored them. During primary school I found that making and maintaining friendships was more of an annoyance than a comfort.

Apart from the forced social interactions of school, I started to distance myself from most people. I only enjoyed being around a few people, and it felt like a chore to spend time with others. By grade 10 and 11, I had constant thoughts about taking my own life, which I never acted upon, or told anyone about. I suspected that this may have been to do with the pressure of planning my adult life and setting myself up for a good future. At this point, I found it very hard to meet new people and I could only hold a conversation with a few close friends.

After finishing school and starting a job, I started thinking about the future and what I would do next. Life was going well, but I had no goals or targets to aim for. It was around this time that I started to believe that I would never find a partner or want one, for that matter. This didn’t worry me as I was happy to go about my life trying not to disturb others as much as possible.

Thoughts about how I would take my own life still occurred, but less frequently now. Most of the time, the reason I did not take my life was that it would make my parents’ life miserable. At the same time I would think of how I would cope if they were to pass away, and ask myself questions like “If they were gone, maybe I should just let go as well?”.

After several years of not worrying about being alone, something changed in my life. At around the start of 2013, I suddenly realised that I didn’t want to die alone. By this time, I actively hated meeting new people, talking to others, and generally going out. If I was in public, I would always want to be back home. These factors made it really difficult to find new friends, let alone a life partner. This also coupled with various other stresses (such as work, uncertainty about sexual orientation, and a lack of life goals) and made me think more and more seriously about committing suicide. It was about 6-8 months ago that I figured out, that my suicidal thoughts were probably a bigger problem than I had originally thought and started trying to find solutions.

I started exercising more, trying to take in more sunlight and also forcing my sleeping pattern into a consistent rhythm, I stopped drinking caffeine and reduced my alcohol intake. There have been several times where I have decided to drink away my problems, but luckily nothing too bad has come from that terrible idea. While these changes have helped a little, they haven’t enough to stop some very, very close calls where I considered throwing myself in front of oncoming traffic.

It basically hit a downwards spiral though, which resulted in me not getting any help because I didn’t want to continue living, I was in stasis.

Around 3 months ago, I eventually got the help I desperately needed from my GP in the form of anti-depressant drugs and counseling. I’m currently finding this combination is helping me a lot. This type of help feels barely noticeable to me, but when I look back at the last two months, I see how far I’ve come and I can definitely see the difference it has made in my life.

The future looks bright for me and I’m more eager than ever to meet new people. I’ve had some great support from my family, friends and colleagues and without any one of them, I don’t think I could have made it this far, for that, I thank them.

If you have a small amount of time please consider donating to Movember ( Many men are living with similar mental health issues and unaware that there is a help out there for them.

Virgin Flight 1716 Gladstone to Brisbane

A boring blog post about waiting

After some unfortunate events at work, and the cancelation of my flight on Saturday I had my flight to LCA moved to Sunday 13:40. I arrived fairly early to the airport and checked in fairly quickly. Upon checking in the nice lady stated the plane was looking at being 2 hours late. Previous flights to LCA have in the past resulted in airport security checking all the bits and pieces in my bag (camera gear, networking gear, Ardiuno gear). My bag usually lights up like a Christmas tree, but this time no questions asked.

I found a nice spot to settle in, and caught up on recent news articles about the Gladstone floods. After a few minutes I spotted a familiar face, Matt, who was also heading to LCA, but on the Qantas flight departing at the same time (13:40). His flight was delayed for a bit, but after a bit of waiting he departed.

Some time past, and eventually an announcement was made to say our flight had been pushed out to 15:55, and that refreshment vouchers of $8 were being handed out. The unfortunate part of this is the Virgin service desk is on the outside of the security area, and the food was on the inside. So I left the security area, picked up the vouchers, of which I got two of and proceeded through security again. I’m not sure why I got two, maybe a mistake or because I am a Velocity Gold member. This time security paused the conveyor for my bag for a fairly long time and pointed at things on the screen. Luckily for me they let it go through with no bag search or anything fancy.

Since I had two of these vouchers I decided to pool them together rather than spend them on beverages. The main deciding factor for this was that they weren’t to be used for alcoholic beverages.

After this I decided to find a nice spot in the airport. With not too much effort I found an area which there was only one other person, a nice viewing windows, a display to show flight status. It also had a table for laptops full of power points.

The expected flight time came and past, with no notice. It even fell off the notice board list which got me a little worried. Not wanting to go through security again I sent Virgin Australia a twitter, in which they replied with the flight status.

Some more waiting for the plane to arrive, and yet another announcement is made to say it’s delayed. It wasn’t long after that the Internet stopped working at the airport, along with 3G. Since I had no phone, or internet, I wasn’t sure how wide spread the issue was, for all I know work may have lost it’s WAN again, but no one on site would be able to contact anyone off site to get help. I did ask around the airport if they had any pay phones that worked so I could check with site to no avail.

Eventually an announcement / page was made for my name and a few others (which were connecting flights). This required going out of security cleared area and to the service desk again. We were asked if we wanted to still take the flight, of which we did and they apologized for the delays. They also said that they couldn’t print any more meal tickets due to the computer network being down. Virgin also informed us that the incoming flight was mid air and was expected in 45 minutes.

The plane rocked up about 45 minutes later (now 20:45) and we had to undergo the offline check-in which took a very long time. At 21:10 we were actually on the plane, which made a lot of people happy, but practically had to wait 50 or minutes for them to finish the manual system checks. One issue that arose was that the baggage wait was on the computer system, so they had to unload all the baggage and reweigh it to get the correct weight information to the pilots.

Upon a very rough landing, we had to wait for 50 minutes before BNE airport could find us a parking spot for us. The captain humorously asked ground control if we could park under the wing of an A380.

I have to say the ATR 72-500 is a very nice plane for being prop driven. Even in the windy and rainy weather it was very smooth.

I had obviously missed my connecting flight. Virgin treated me as a rock star and put me up in a fancy hotel in the city. A short taxi drive there with another flight 1716 member. Virgin was able to provide me with cab charge for both getting to the hotel and back.

I only stayed in the hotel (very nice place) for a couple of hours, long enough to find that there was a 5am flight to Canberra. I waited in the service desk line for about 45 minutes then just ended up booking a new ticket online and using the priority check in line. Passed through security and made it (finally) into the Virgin lounge. It’s a very nice place.

Flight to Canberra was delayed numerous times, and then eventually at 10ish they announced it as nearly ready to board, then cancelled the flight entirely about 15 minutes later. What was really disappointing was the ladies in the Virgin lounge were unable to get me another flight. They could see one available but not actually put me on it, and just told me to ring the service desk number (with wait times of over 30 minutes). With my phone now flat I tried to talk to real people but that failed with extremely long lines for the service desk. Also tried to pick up my baggage only to find it not there. They appear to have a huge backlog of luggage to distribute due to all the cancelled flights.

What Virgin Australia did well

  • Offering refreshment vouchers
  • Answering peoples questions
  • Dealing with angry customers (and there were a lot)
  • Keeping track of my luggage

What Virgin Australia could do better at

  • Controlling the weather
  • Having better processes for being offline. The system seemed very slow and crew seemed unsure what to do. Maybe their IT system can worked in a cached mode or something
  • Automatically book me on a connecting flight, or have some sort of self service / online system for me to do it myself
  • The high number of calls caused me to be on the phone for 2 hours with no result, something that is hard to control, but I think could have been better. All I wanted to do was change my connecting flight due to missing when the GLT->BNE flight ran over. A web interface could have been useful here to cut down on calls.
  • Lounge staff should be able to rebook flights
  • Check-in terminals should also allow booking a flight. I can book a flight with my phone, then check-in using the terminal, why not have the whole process done on the terminals
  • Why is it that my Brisbane to Canberra flight (first one in the morning) got delayed, the one a couple of hours later was free to go. When I asked about this they said I couldn’t be moved to that flight at all. I’m presuming this is so they only delay one group of people, rather than two, but still very annoying to watch another flight take off while yours is grounded.

Beyond Virgin

With Virgin Australia staff unable to change my BNE to CBR flight to another on the same day I had to buy a nice expensive economy ticket with Qantas (last minute flights aren’t cheap). While waiting for this flight, I made use of the Virgin lounge again (which I think is against their TOS, but meh). This flight was delayed for boarding three times from 18:45 to 19:45. I suspect I’m the unluckiest person when it comes to air travel to LCA this year.

The refund

I waited some time after the event before calling up and asking for a refund on my flights. The first lady was confused at what I was trying to explain (I suspect that she thought I wanted to cancel the flights), however she transferred me to another lady who was able to issue the refunds. I suspect they had some issues refunding one set due to me paying via direct deposit (via POLi - a very scary and insecure online billing system that I think Virgin should drop infavor of BPAY or something), but all in all they were happy to refund the flights that were botched (1716 and the connecting flight).

AVR Libs


  • C++
  • Sits on top of AVR LibC
  • PROGMEM and pgm_read_byte to store read only data in Flash only
  • Sometimes have to break the API for the greater good
  • Prefer using 8 bit types
  • -function-sections
    • Every function has it’s own section, then the linker can discard those sections
  • Pass template parameters as the code will be computed and discarded to save space
  • Restructure code to be event driven
    • Saves power, stops using busy loop rather than waiting
    • Make the main loop just check events and sleep
  • More functions in a classes
  • Write documentation first to avoid scope creep
  • Avoid generic names in libraries since the linker just picks the fist one
  • Use namespaces for libs
  • Limit variables
  • Name variables INCLUDING counters
  • Use scope enums


  • Harvard Arch

    • RAM and Program are separate
    • Program is read only
  • AVR limited memory CPU

Bare Metal provisioning with OpenStack

Devananda van der Veen

  • Simplicity - use same tools to stand up both virtual machines and physical
  • Useful for perform or PCI card dependencies
  • Hypervisor driver for Nova (compute part of OpenStack)
    • Doesn’t actually run anything on the machine
  • Compute tells hypervisor to do stuff like start/stop/snapshot
  • Devstack
    • Sets up openstack quickly
    • Bootstrap node deploys images
  • Network issues with Quantum due to software switching / hardware switching

Future plans

  • Local persistent storage with Cinder
  • Openstack on Openstack

Requirements - Flat network - no DHCP -

Buffer Bloat

Stephen Hemminger

  • Most applications don’t choose the correct priority.
  • High priority queue will starve the other queues
  • Random Exponential Drop ok, but hard to work out what to drop when…
  • Hierarachical works when you know the traffic types and have someone to admin
  • Stochastic fair queue (128 bottles ). Random hash of the flow and goes into each queue.
  • Controlled delay. Drops out data that is 5ms too old
    • works regardless of speed
  • SFQ + Controlled delay (FQC)
    • If hash collision occurs, still 5ms
  • Bottle neck needs to be where you can control
  • Patch to make sockets not able to fill queues faster than they can exit the last queue
  • Some wireless cards have queues
  • FQC currently the best in the Linux Kernel


  • Get speed test, configure queues to be correct it at the router
  • Move bottle neck to router


  • Different speeds make moving the bottle neck harder


  • Run ICSI Netalyzr

Windows XP

  • Max windows 64k

Windows 7

  • Bandwidth 80mbit
All Posts