Fitzroy echidna

Echidna

Posted in Local and/or General | Comments Off on Fitzroy echidna

Dissection of my first DNF

Over the last ten years, I have done a lot of runs, ranging from 2km fun runs with my young son through to 100km ultras. None of those runs has compared to the misery of October’s Lake Mountain Skyrun, which was the first run to break me, resulting in the three lettered acronym that every runner hates: DNF (Did Not Finish).

This was the first time that the run had been held, with a choice of 14, 21 or 31km courses. I had entered the 31km course, noting that there were 943 metres of ascent and descent on the course which, combined with the mix of wide trails, single track and barely-there bush trails, meant that it was going to be a hard morning’s run. We’ll return to the issue of the inaccuracy of the “31” kilometre course later on.

The Skyrun elevation profile

It was a good morning for an alpine run, with the first really warm day of spring. I arrived at the top of Lake Mountain with plenty of time, but when I got my running pack out of the car, I noticed that it was leaking, with water everywhere. A careful examination of the hydration pack revealed that an O-ring between the drinking tube and the bladder had perished. I tried to position the tube so that it was better engaged with the bladder, refilled the bladder and started the race, hoping that it would not leak again.

Lesson 1: Don’t rely on hope when you are doing a 31km alpine run.

By about the 7km mark, the bladder had almost completely drained again, down my back, soaking me completely. I was now out of water, with at least 24km still to run. From memory, I thought that there was water at each checkpoint, so I should be okay. When I got to the next checkpoint, I found out that there were only two water points: one at Keppels Hut (at about the 17km mark?) and one back at the finish, at the 21 and 31km marks. So much for my memory!

Lesson 2: Always have a backup plan. I had a drink bottle in the car and I should have also carried it, knowing that the hydration pack could fail again. Relying on being able to drink at multiple checkpoints on a long run with some hard climbs was not sensible.

Taggerty River fire trail

I was tracking well by the time I reached Keppel’s Hut and the first water point:

Keppell's Hut checkpoint

2013-10-20 11.53.26

I drank plenty of water, ate up and headed on to the longest, hardest climb of the day. By the time I had reached the cross-country ski trails at the top, I knew that something was wrong with the course mapping or my GPS watch, as I had run 21km but estimated that I was still a few kilometres from the “21km” checkpoint. Sure enough, when I got back to Gerratys and the checkpoint, the volunteer there admitted that the course measurements were wrong, and we had already run 24.5km, not 21km. The 31km course was now 34.5km (and the website has since been updated to reflect this).

I left the checkpoint tired and a bit disheartened, but feeling okay. The extra 3.5km might not seem like a lot of extra distance, but if I had known beforehand, it would have probably been the deciding factor to enter the 21km course rather than the “31km” course. In hindsight, without any water to carry for the last ten km, I should have withdrawn at that point.

The Lake Mountain Skyrun course

It was after the second time over the summit of Lake Mountain that the run got interesting. I remember clearing the summit. I remember the start of the descent. At some point later on, I realised that I had lost track of time, was feeling very dizzy and had slowed down to a walk. I had enough presence of mind to know that it was only a few kilometres to the next checkpoint and that I felt well enough to walk out to there, hoping that I would start feeling better so I could finish the run. By now, I must have dropped to the back of the field, as only a few more runners passed me from that point on. I was getting dizzier and slower, and decided that it was time to take this seriously: when the next runner passed me, I asked him to advise the next checkpoint that I was in trouble, but thought I would be able to make it to the checkpoint unaided. I estimated that I had at least a kilometre to go but I was now down to an erratic pace and started vomiting, multiple times. One of the most vivid memories of the descent was the rainbow coloured vomit thanks to the gels and lollies I had eaten earlier!

A few hundred metres from the road, one of the checkpoint crew met me: she had walked in to make sure I was okay, which was really appreciated. I made it out to the checkpoint at the road crossing, and they were about to change over the crew, which meant that I could get a lift back up the mountain to the finish line. I knew I was done. Not only did I not have the energy to finish, it would have been absolutely stupid to risk trying to finish the last 5km in the condition I was in, just for the sake of saying “I finished”.

Lesson 3: DNF is humbling but it was definitely the right call to make. Safety beats pride in the mountains.

I climbed in the car, checked into the finish line to tell them that I had withdrawn and then sat in the resort cafe for a long long time until I felt well enough to get in the car for the drive back down the mountain to Marysville and then onto Melbourne.

C’est la vie.

Posted in Running | Comments Off on Dissection of my first DNF

(No) notes from MPUG, November 2013

There are no notes for November, as I was bike touring in north-east Victoria over the Cup Day long weekend, so missed the November MPUG meeting.

For the record, there were two talks at the November meeting: Lars Yencken gave a talk on “Machine Vision with SimpleCV“, while Nicole Harris gave a talk on “Mezzanine, the best Django CMS”.

Posted in Cycling, Python, Travel | Comments Off on (No) notes from MPUG, November 2013

I used to jog…

Sign in Little Bourke Street:

I used to jog

Posted in Local and/or General, Running | Comments Off on I used to jog…

Notes from MPUG, October 2013

Finally, here are my notes from the Melbourne Python User Group meeting in October.

We had over twenty people and three speakers.

Claire Sloggett, a bioinformatician at the VLSCI, gave a great introduction to Python for Genomics, starting with the “quick!” explanation of how life works, moving on to Python for genomics and then Python for managing pipelines.

I had not heard of The Rosalind Project, which is the the bioinformatics equivalent of Project Euler.

Tools that Claire uses in her work include:

  • ipython
  • scipy, numpy & matplotlib
  • biopython, pysam, pyBed
  • pandas & pytables
  • rpy2 (for accessing R code)
  • lots of wrappers around various C libraries

The pipeline discussion focused on Ruffus, which Claire uses to manage pipelines for SAM to BAM conversion work.

Lex Hider (@lexualchocolate) talked about “how to be truly lazy” by using Salt Stack. This was a revisit of Lex’s talk at PyCon AU this year, and the video is online and well worth watching to get a good overview of Salt.

Bianca Gibson gave a update on Linux Australia, including linux.conf.au 2014, which is in Perth in early January, StixCamp Gembrook, and some of the aspects of Linux Australia that people may not be aware of, including the grants program, the various subcommittees and the new community newsletter.

Posted in Python | Comments Off on Notes from MPUG, October 2013

Beach running

I have been slack recently with writing up this year’s runs, so it is time to catch up!

The fourth, and last, of the Salomon trail runs was at Anglesea in September. The long run was the Surf Coast Century 100 ultra-marathon on the Saturday, so I entered the medium (14.6km) run that was held on the Sunday.

Anglesea course map

The course was varied, starting and ending on the beach with two river crossings, some short but steep hills (as you can see in the profile below), beautiful single track and a stunningly scenic return along the ocean cliff tops.

Anglesea course altitude profile

It was impressive to see a number of runners from the previous day’s 100km run return to do one of the runs on the Sunday!

The start

Posted in Running | Comments Off on Beach running

Python 3 porting sprint

If you are in Melbourne next Monday, Ed Schofield is organising a Python 3 porting sprint. The details:

Python Charmers is hosting a Python 3 porting sprint on Monday 28 October from 6pm to 9pm. Come and learn how to port code to Python 3 and get help with porting an open source project you care about!

Python 2.7, released 39 months ago, is the final version of Python 2. All further language features and standard library enhancements will happen only in Python 3.x.

Python 3 contains powerful new features like function annotations, better memory efficiency, saner Unicode handling, and (with 3.4 due in April) packaging improvements and a powerful “asyncio“ module providing features from Tornado / gevent / Twisted in the standard library.

The Python community needs our help in order to make choosing Python 3 a no-brainer. All this needs is more packages with Python 3 support.

With Python’s “__future__“ imports and the “future“ package, it is now easier than ever to provide compatibility with both Python 2 and 3 from a single clean codebase. Come and learn how to write future-proof Python code and make a difference.

The event is free. Bring an open source package you care about and a desire to learn and contribute to the future of Python. We will keep track of how many packages we can port to both versions and publicise our results.
We’ll order in pizzas for dinner and have good music. It’ll be fun! ūüėČ

Space is limited to about 25-30, so if you’re keen, please add your RSVP to this page:

   http://www.meetup.com/Melbourne-Python-Meetup-Group/events/146632852/

Posted in Python | Comments Off on Python 3 porting sprint

Notes from MPUG, September 2013

The Melbourne Python Users Group had about 25 people turn up to the September meeting to hear three great talks.

Richard Jones gave a reprise of his PyCon AU 2013 talk: “Don’t do this”. If you haven’t seen the talk, check out the PyCon AU video, “in which Richard will tell you about some things you should never (probably ever) do to or in Python. Warranties may be voided.”

Lars Yencken spoke on The Great Language Game, in which you play a web-based game to see if you can distinguish between 78 different languages, based on an audio snippet. Each audio snippet is accompanied with a choice between two languages. Not surprisingly, French is the most easily guessed language.

Ryan Kelly spoke about PyPy.js: if Javascript is the web platform, can Python be ported to Javascript? There have been previous attempts, such as pyjs, skuplt, brython, etc. Combining PyPy and asm.js, the aim is to have PyPy (or more correctly speaking, the RPython toolchain) generate C code which is then compiled into Javascript.

So far, it works with CPython rebuilt using Emscripten, but is about an order of magnitude slower. The JIT version is almost working, with 5 – 10% of opcodes still to be implemented. The end game is to be able to write Python apps for Firefox OS (Ryan works for Mozilla).

The next MPUG meeting is October 7 at Inspire 9, with talks on using Python for bioinformatics and Salt.

Posted in Python | 2 Comments

Hills, hills and more hills

Salomon trail run #3 started and ended at Silvan Reservoir, winding its way through beautiful forests on trails ranging from technical single track to wide fire trails and dirt roads. The course headed north to Mt Evelyn and south to the RJ Hamer Arboretum.

silvan_map

This year, there were three course options: 7.3km, 14.3km & 21km. The 21km course was challenging, scenic and full of hills, as you can see from the elevation profile below. The “killer” hill rose 80m in the space of 400m, which slowed everyone down! There were 1500 competitors across the three runs, but it only felt crowded once, in the first section of single track. By the time we had cleared the two largest climbs, the field was very widely spread and there were a number of times where I could only see a couple of other runners around me.

Silvan trail run elevation profile

There is only one run left in the series: Anglesea, with a choice of 7.4, 14.8 or 100km.

Posted in Running | Comments Off on Hills, hills and more hills

Notes from MPUG, August 2013

We had another great turn out for this month’s Melbourne Python Users Group meeting at Inspire 9.

Richard Jones, Javier Candeira and I spoke about our highlights of PyCon AU 2013.

Ed Schofield spoke on “The future”, with Python 2 to 3 migration. My hastily scribbled notes included:

  • Most people in the audience are still using Python 2, with a few people using Python 3 (as well as Python 2)
  • PEP 404: There will not be a Python 2.8
  • Alex Gaynor: “Python 2 is the next Cobol”
  • Python 3 wall of superpowers
    • This used to be the wall of shame
    • boto is not yet ported?
  • Lots to like in Python 3
    • New syntax, eg function annotations
    • Changed semantics for some functions,¬†eg. input(), int(), zip(), super(), str(), round(), …
    • Byte string semantics with Unicode; Py3: explicit conversions
  • from __future__ import *
    • for backporting
    • print, proper division, Unicode literals, absolute imports
  • Ed’s “future” module
    • https://github.com/edschofield/python-future
    • v0.3.3
    • from future import *
      • write Py3 code that can be imported into Py2?
      • “Migrating strategy” notes by Alexandre Vassalotti, 6 points for one-way migration: Py2 -> Py3
      • Improve your test strategy, port to Py 2.6, enable Py3 warnings, …
  • “python-futurize” script, uses 2to3 script
    • runs with Py2 and Py3
    • converts to Py3 code with Py3 idioms¬†
    • need to manually fix Unicode
    • demo with the “iso8601” package from PyPI
  • PEP 414 – “Developer energy should be reserved…” quote
  • Good porting guide: http://docs.python.org/2/howto/pyporting.html
  • There are lots of key scientific libraries now support Py3
  • PyPy now supports Py3

Javier spoke about his work investigating different¬†Python libraries for¬†interfacing with¬†Github. He is currently using¬†githubpy, which has a (relatively)¬†small number of lines of code, no non-stdlib imports, and it’s apparently well worth reading to see how it’s done.

Other notes:

  • We had an interesting mix of Python users and from a show of hands, not many people are doing web development
  • We should be using pillow¬†for image processing instead of¬†PIL¬†
  • Pyweek is coming up! ¬†If you want to get involved, look at Richard’s pygame tutorials
  • Python 3.4a1 is out
  • PEP 8 has been updated

The next meeting is September 2, 6pm, at Inspire 9.

Posted in Python | 1 Comment