PyConAU 2014

IMG_20140802_132246This weekend I attended PyConAU , a community-run conference for the Python programming language. Held this year in Brisbane, it was a good excuse to learn some new things, catch up with old friends, as well as make some new ones.

I have a soft spot for Brisbane. In addition to having family live here, I also love their public transport system: a well-integrated system of buses, trains and ferries run on a reliable and frequent schedule to all areas. Their AirTrain is hands down the easiest public transport solution from an airport to a city (miles ahead of Melbourne’s cramped buses). The conference was held at the Brisbane Conference and Exhibition Centre, which is the centre of the city’s cultural district, with museums, theatres and shopping and dining areas all around. It’s a wonderfully laid out modern city.
IMG_20140801_165033
The first keynote was by the director of the National Computer Science School (NCSS), and generally awesome guy, James Curran. My experiences at NCSS back in 2007 helped formed my programming abilities and gave me the knowledge that there was other life out there: an entire programming community, and being in IT was a good place to be.

A highlight of the talks on Saturday was a talk on caching for web services by Tom Eastman. He talked extensively of using HTTP protocol elements to control the cache in proxies and in web browsers. Whilst the examples used Django, the concepts will be useful for my work using ASP.NET.

An interesting part of the conference is talking to people outside talks, and this conference has been no exception. I’ve met many new people, including some stars of the Python world. I’ve also learned that many of the things I do in my daily programming life are wrong, and it’s great to learn more about best practices.

A traditional part of PyCon AU (as well as linux.conf.au, to an extent) is the end-of-day lightning talks. In particular, two talks in the Saturday session really appealed to me. First of all was Josh Deprez‘s talk on “node.hs”, where he talked about implemented Haskell in node.js, but instead wrote a lightning simulator within 5 minutes.

Secondly, and possibly of more long-term consequence, was Russell Keith-Magee‘s talk on Toga, a cross-platform UI toolkit that displays widgets using the operating system’s native widgets. So instead of your cross-platform app looking great on GNU/Linux (where GTK+ is native) and crap on Windows or OS X, it will look good on all three platforms (and possibly more in the future).

The final event of Saturday was the conference dinner, a traditional three-course sit down event with a lovely speaker named Paul Gampe (who worked in ISPs during the early nineties, making me very jealous). He gave a few lessons he learned working with the early FOSS and Perl communities, and why Python should make efforts to avoid these problems.

IMG_20140803_104959After dinner I retreated to my hotel room (I have made the mistake before of staying up with people all night and missing most of the talks on Sunday). However, I didn’t go straight to bed. I instead checked out Toga in more detail, and tried to get it running on Windows (it’s a very new piece of software). After a bit of code wrangling, I managed to get a blank window appearing on the screen (as my excited tweet about this shows). My patched code is now in the Toga repository, which is pretty cool.

Sunday morning’s keynote was given by Katie Cunningham on the topic of accessibility. I’ve heard more and more about this recently (especially through a talk at WebDev42 recently). The gist of her talk was that the tools and support and standards are there, and the only reason developers aren’t building accessible sites is because they’re lazy or don’t know better (her point was a bit more complex than that, but that was roughly it).

Two talks I really enjoyed during the rest of Sunday were Russell Keith-Maggee’s talk on building Python wheel packages (basic information that, being a very junior Python developer, I didn’t know) as well as Josh Hesketh’s talk on database migration testing. While Josh’s talk targeted Python projects and OpenStack in particular, the concepts are useful across basically all programming platforms. I’m lucky in that managing database migrations is something that Entity Framework (my C# ORM of choice) does for me.

After the conference finished, I completed my trip by visiting family for dinner and dropping in on a few Brisbane-based clients, before flying home (via Melbourne, of course, to earn maximal status credits).

As always, attending PyCon AU was a great experience, and I can’t wait for next year (it will be held in Brisbane again next year). In my mind PyCon AU is a very similar conference to linux.conf.au. I go for the same reasons: great community, great people, great content, and great fun!

linux.conf.au 2014 – January 7

I’m (sporadically and with much delay) blogging my yearly pilgrimage to linux.conf.au 2014, this year being held at the University of Western Australia in Perth.

Tuesday Keynote

20140107_085514Today’s keynote was given by Kate Chapman from the Humaritarian Openstreetmap Team. It was awesome. I’d heard of OpenStreetMap previously but not really paid much attention to it either as a technology or as a community. I was impressed by both. On the technical side it’s great to have a map that can be easily edited by anybody, Wikipedia style, and has as much information as you could want on it. On the community side, I was really impressed by how they went from a bare outline of Haiti just before the earthquake there to a complete map of pretty much everything only a few weeks later.

I immediately installed JSOM, the OpenStreetMap native editor and started adding points of interest I know exist around my suburb. It was surprisingly easy to use and the near-instant results proved satisfactorily addictive. I hope to get into this more in the future.

Open Programming Miniconf

I spent a large portion of the day in the open programming miniconf. There were several highlights:

  • Katie Miller’s talk on OpenShift was hilarious, mostly because of a moment involving two tissue boxes:

    (the people pulling tissues out of the box were racing the OpenShift setup process to see which was faster).
  • Adam Harvey’s talk where he wrote a PHP microframework in 15 minutes in front of the crowd, partly to prove it could be done and partly to prove that you shouldn’t bother. I’ve always been dubious of frameworks for small peices of code, simply because PHP provides most of what you need (which is Adam’s point). I guess the problem comes when this one-page script evolves into a full application before anybody realises, and using a framework from the beginning would have saved a lot of headaches down the track. It’s a tricky one to judge.
  • Tom Eastman’s talk on serialisation formats. I’d never considered some of the problems with these formats that means that even in formats such as YAML or JSON there are security vulnerabilities that are continuously overlooked. Unfortunately I had to leave in the closing minutes of this talk to attend to an emergency, so I missed some crucial information. I’ll definitely be revisiting this one when the talks are released for download.

Walking into Perth

20140107_182451For dinner tonight we decided to walk into Perth via King’s Park, which proved to be very pretty. We also ended up walking back via the foreshore along Mounts Bay Road, which was a bit of fun since (for some reason I can’t quite figure out) we decided to run part of the way back. Turns out running is fun if you’re in good company. Who knew. The total distance was just under 12km, so I probably even burned off the energy from tonight’s dessert, a sticky date pudding from the British pub in Murray St (good stuff, though a bit dry).

Now the miniconfs are over, and the conference proper starts tomorrow. For delegates it’s a fairly unnoticeable difference (only real difference being that the talks aren’t grouped into rooms by subject anymore), but it marks almost the halfway point. There’s also the penguin dinner to look forward to, which this year looks to be an upscale picnic on the Matilda Bay foreshore.

Reflections on PyConAU 2013

20130707_104447
The weather during a good moment.

This weekend has been a great one. I spent it at PyConAU, the premier conference for Python in Australia. Two days filled with all of my favourite things: great open source software, lots of friends, great food, interesting talks by interesting people – and the weather has been “interesting” too.

Conferences like these (PyConAU and linux.conf.au) are a really great chance for me to catch up with some of my friends that live interstate or overseas, as well as make new friends and meet new people. There’s always an interesting discussion going on, and nobody minds if you just stand there and listen in – you learn so much just by standing around!

Of course, the whole point of a conference is the talks, and here were some of my highlights:

  • Luke Miller’s talk on making a point-and-click indie game for gay men. This talk really covered the entire breadth of the game making process, both generally and specific to his game. He showed us the engine he built, discussed the story and graphics, discussed packaging and marketing the game, as well as some of the feedback he has got back from the gaming press – both positive and negative. Anybody who wants to make their own game should definitely check out this talk when it is available online.
  • Ed Leafe‘s demo of creating OpenStack deployments using Python. He showed simply using the pyrax library to create VMs and provision databases and DNS entries, but of course you could extend this by using python scripts to set up applications on the VMs afterwards, naturally. I’m almost convinced to move everything that I have in Amazon AWS to Rackspace’s cloud. OpenStack is pretty much awesome.
  • The Saturday morning keynote from Alex Gaynor on trying to narrow down what exactly programmers “do” and how they do it… by drawing in parallels from other fields like science, engineering and art. Really, it seems programming and software engineering is the intersection of the three. Also, software engineering is a very young field, really only 40 or 50 years old, compared to science which has hundreds of years to mature, and art which has had tens of thousands.
  • I also enjoyed the many (I think I went to about 5) talks I went to regarding software testing (unit testing, mostly). I actually learned a few tips from these that I plan to use in my day job, even though we use C# and not Python. Things like writing tests before adding any new feature – which of course is best practise that I knew, but “forgot” (i.e., was lazy). Food for thought.
20130707_183542
Jack Greene – loving the decor.

Speaking of food, the conference venue, the Wrest Point Casino, provided a good spread of food right throughout the conference, with morning and afternoon teas being very well catered, as well as lunches (lots of options for my vegetarian friends, and lots of tasty meat those such inclined). The peak, of course, was the conference dinner held on Saturday night, where we ate ourselves into an absolute stupor with the finest Tasmanian produce. A truly terrible burden, but one we accepted with vigour.

Naturally, the conference had to come to an end, but not before a trip to a local pub (and despite being a local, one I hadn’t been to before). Jack Greene in Salamanca Place hosted our after-party, and I’ll definitely be going back. I’ll also definitely be attending the next PyConAU, in Brisbane next year.

Thanks to Chris, Josh, and the rest of the organising team for a great weekend!

30 Days of Geek #5: Quick nifty hacks you’re proud of.

I’ve decided to partake in Jethro Carr’s 30 Days of Geek challenge, so I’ll be writing a post a day on my geekiness for an entire month! You can find all the posts in one spot here.

Today’s post is in a very similar vein to yesterday’s post, so I’ll keep it short and sweet:

  • The very short C program that I wrote to remove all the spaces out of one of my teacher’s spreadsheets and turn them into tabs. I think I probably saved her hours of tedium.
  • The script I wrote that stored all my Microsoft product keys within itself. The bash script would accept a search pattern for a product name, and spit out a product key. Much easier than going looking for a physical box.
  • The numerous abuses of iproute2 I’ve made in the last few months, in the quest to make computer networking make sense. My favourite networking hack is this one (in /etc/network/interfaces):

    iface lo:0 inet static
    address 172.24.16.1
    netmask 255.255.255.255

    What it does is add in a second loopback address, not within the 127.0.0.0/8 block. Not original perhaps, but very useful for BGP routing.

30 Days of Geek #4: Greatest application written to date.

I’ve decided to partake in Jethro Carr’s 30 Days of Geek challenge, so I’ll be writing a post a day on my geekiness for an entire month! You can find all the posts in one spot here.

Unfortunately, since I don’t really consider myself a programmer, and I don’t really do any programming, it’s a bit hard for me to say what my greatest application is. I can however tell you of some of the programming achievements I’ve made in my past.

Way back in high school I started out programming using a programming language called BlitzBasic. Over the couple of years I used this language I wrote a number of games, most of them pretty awful. But two games did go somewhere. The first was a side-scrolling platform game I called RollingBall (the main character was a yellow ball). It’s where I first learned about game physics (albeit very primitively) and about how not to write a program (i.e. GOTO = bad). The second was a top-down RPG game in a similar style to the Pokemon games. Although both of these games suffered from a bad case of programmer artwork, they were pretty fun to play (or my deluded variety of fun, anyway).

The greatest achievement I’ve made though was the moment I finally got an operating system kernel that I had written entirely from scratch working on my home computer. It did nothing more than print ‘H’ in the top-left hand corner of the screen… but that’s all it needed to do. Knowing that the code you’ve written is the only code running on a computer system is a pretty awesome feeling.