Here the slides (PDF format) from my PyCon AU 2015 talk.
And sorry for the broken talk link that I published in the slides
PyCon AU 2015 starts at the end of July and I would encourage you to pack your running gear and join us for an informal morning run before the conference each day. These runs are intended to be inclusive rather than a race, and are designed to be about 5 km long.
The details are almost the same as last year, with two key changes:
- A new start location as the conference is at the Pullman Brisbane Hotel this year
- The Brisbane Marathon is on the Sunday morning and some of the conference attendees have entered (there are a range of events: 5km, 10km, half marathon and marathon). If you want to do a serious run on the Sunday, then get your entry in soon! Otherwise, we will still plan on having a casual group run that will do its best to avoid the marathon route.
PyCon AU 2015 will be held again in Brisbane, start on July 31 with a set of mini-conferences, including the return of the science/data mini-conference.
This year’s science/data miniconf has ten excellent talks, covering a diverse range of uses for Python in science, big data, and AI/machine learning.
The miniconf’s full schedule is now online and we hope to see you at the miniconf in Brisbane on July 31.
The forecast for this year’s Around the Bay in a Day ride was warm and windy. It turned out to be an almost perfect day to do the 250km counter-clockwise circumnavigation of Port Phillip Bay by bike.
The start was scheduled for 5:30am, but with multiple waves of 210km and 250km riders, we didn’t end up leaving until 5:50. I rode with a bunch of friends and it was a casual pace down to Queenscliff. We ended up on the 1pm ferry and by the time we disembarked in Sorrento, the north-westerly wind that had blown us down had swung around to a south-westerly that helped push us home.
This was about my tenth AtB ride (I’ve lost count) and after 21 years, it seems that Bicycle Victoria has almost figured out how to run the event properly: the rest stops were better organised (apart from the farcical lack of water in Geelong), the ferry system ran smoothly and the marshalling was excellent. Queuing for the ferry worked well: we had time for lunch and a decent coffee in town before queueing up and boarding fairly quickly, as you can see in the photo above.
It was a very uneventful ride: no punctures, the weather was great, Richard didn’t shatter a femur this year and everyone finished in fine form.
Here’s the Strava data; I measured it with my GPS watch as 240km, not the advertised 250km, and the shorter distance was consistent with what other people measured.
I didn’t get to the October Melbourne Python Users Group meeting, but for the record, here is what reportedly happened…
- Ed Schofield gave an update on what’s new in Python this month
- Oliver Nagy talked about his Azrael project, where you “create interactive virtual worlds governed by real world physics”
- John Barham spoke on the Mezzanine CMS – his slides are here
Note that next month’s talk is on November 10th instead of the 3rd, to avoid the Cup Day long weekend.
I have had a few people ask me recently how I track my exercise, so here is the low-down on my quantified self tools and workflow:
- Food and drink is logged with MyFitnessPal. This gives me total kilojoules intake per day. MFP has a clunky web app, a sub-par Android app and an API that is not yet open to the public, but the food database is far better than any of the competitors that I have checked.
- Steps, water consumption and sleep are all logged with a FitBit One. I love the One.
- Weight is logged with a Withings wireless scale, which is connected to Withings Healthmate.
- Every run, ride and hike is tracked with a Garmin Fenix. The Fenix (version 1) is a flawed device in many ways, but still a fantastic watch for outdoor activities. Over two years on, and I still prefer it over the three generations of the Suunto Ambit and see no compelling reason to upgrade to the new Fenix 2 or any of the Garmin sports watches, such as as the Forerunner series.
- All my runs, rides and hikes are uploaded into Endomondo. Endomondo is my preferred exercise tracking tool in terms of feature set, ease of use, and ease of accessing my data compared to Strava, MapMyRun and RunKeeper. It has finally replaced the Excel-based exercise logging spreadsheet that I have used for the last decade.
- Since I have joined the Vigor and PlanetInnovation cycling “clubs”on Strava, any ride longer than 20km is also uploaded into Strava.
- Temperature is logged with a Garmin Tempe, connected to the Fenix via ANT+.
- Heart rate is logged with a Mio Link, connected to the Fenix.
Some of the services are linked to eliminate data duplication: Healthmate is connected to MyFitnessPal, while MyFitnessPal and Endomondo are both connected to FitBit, so I can easily review total kilojoules in and out per day and per week.
There are services I want to look at for better reporting and analysis, such as TicTrac and exist.io; until then I find the combination of Endomondo and Fitbit works well enough for my data analysis needs.
I will follow this post up with another one answering the question of “why do all this?” another time.
I’ve been asked a few times, so here is the list of upcoming cycling and running events that I have entered.
Oct 19: Around the Bay in a Day: a 250km bike ride, counter-clockwise around Port Phillip Bay. This is a social ride with friends, so a nice warm-up for the following weekend’s ride…
Oct 26: Fitz’s Challenge: the Fitz’s Epic is 205km with 4,030m of climbing around Canberra and the Brindabellas.
Nov 16: Point to Pinnacle: supposedly the hardest half-marathon in Australia. Start at sea level at Wrest Point Casino and then run straight up the side of Mt Wellington for 21.4km distance and 1,270m elevation. Fortunately there is a bus to carry you back down the mountain to Hobart!
It may have been the first day of spring but it was a cold, wet night for the September Melbourne Python Users Group meeting. We had at least twenty five people attend for three talks. Thanks to Inspire 9 for hosting and Planet Innovation for sponsoring the meeting.
1. Javier Candeira – What’s new in Python
Javier updated us on what’s new and interesting in Python over the last month. His slides are online.
2. Andy Kitchen – Pattern Recognition: machine learning on GPUs in the cloud
Andy is a developer at Silverpond and walked us through using Theano for deep learning applications.
- Deep learning is (very) computationally intensive
- Hyperdimensional optimisation, mostly dense-matrix multiplication – use GPUs because they are often 40x faster than CPU
- GPU programming tricky but getting easier (eg. CUDA and Theano)
- Amazon EC2 for about $5/hr: NVIDIA AMI with CUDA, surprisingly smooth!
- Theano: write once for CPU or GPU (via CUDA backend) by building expression trees
- Demo: 14.23 secs with CPU, 1.14 secs with GPU
- (Sidenote: it is also worth looking at NumbaPro from Continuum)
3. Jason King – BDD using Behave with Selenium
Jason took us through some recent work he has been doing at Common Code for testing an online medical appointment booking system. He has been using Selenium and Behave, a BDD framework that uses decorators to determine what test to execute.
This is the most interesting Venn diagram I have come across recently: an interactive isomorphic diagram exploring colour combinations from mixing seven colours. Enjoy.
A strong line-up of speakers and the post-PyCon AU buzz meant that we had about 35 people at the August Melbourne Python Users Group meeting. There were five presentations for the night and here are my random notes.
1. Highlights from PyCon AU 2014
Various people contributed their highlights of PyCon AU 2014, which was in Brisbane in early August (and the reason why the MPUG meeting was moved back a week). The conference videos are now up on the Youtube channel.
2. Javier Candeira: “Don’t monkeypatch None!”
Javier was inspired by discussion at PyCon AU about PEP 336 (Make None Callable) and decided to implement it, with some inspiration from previous PyCon AU talks by Ryan Kelly, Richard Jones (“Don’t do this!”), Nick Coghlan (“Elegant and ugly hacks in CPython”) and Larry Hastings.
He has implemented
quiet_None, an analog to
quiet_NaN. He walked us through the prototype code, with a deviation into Haskell’s
Maybe monad along the way.
A few random notes:
- Uses the
- Module: “forbiddenfruit” and “curse” function
- Won’t work on stackless or IronPython (as they have no working implementation of
- Problems with exceptions, so the code needs to monkeypatch
3. Juan Nunez-Iglesias: SciPy 2014, a summary
Juan works at VLSCI and is a scikit-image contributor
- Great quote: Greg Wilson (keynote) on Software Carpentry: “we save researchers a day a week for the rest of their careers”
- Lots of core devs from biggest names in Python scientific stack
- Excellent tutorials; massive geoscience track, massive education track
- EuroSciPy seems to be more academic
- PyCon AU – very web development focus
SciPy 2014 highlights:
- Michael Droettboom – Airspeed Velocity: code benchmarking tool with web interface and plots
- Paul Ivanov – IPython vimception: vim bindings for IPython notebook
- Damian Avila – RISE: live presentations from IPython notebooks
- MinRK (from core IPython team) – IPython Parallel tutorial
- Brian Granger & ????
- Aaron Meurer: Conda – good package manager for C extensions as well as Python packages
- Matt Rocklin, Mark Wiebe: Blaze – abstracting away tabular data
Recommended lightning talks:
On Juan’s “to watch” list:
- Chris Fonnesbeck PyMC tutorial (see Jake Vanderplas’s Bayesian vs frequentist posts)
- David Sanders: Julia tutorial
- Reproducible science tutorial (lots of buzz on this tutorial)
- Geoscience and education tracks
- Diversity: 1.5% women in 2013, 15% in 2014 – indicative of a big problem in the industry
4. Rory Hart: Microservices in Python
This was a repeat of Rory’s PyCon AU 2014 talk (here’s the video).
5. Nick Farrell: sux
Nick gave a repeat of his PyCon AU 2014 lightning talk on the sux library, which allows you to transparently use Python 2 packages in Python 3.