04 October 2013
When I arrived I was impressed to see the scale of the event. I think I expected it to be a gathering of about 50 people, but it looked like there were a couple of hundred people there. As is often the case at community events like this, there was a big crossover between the speakers and the audience, with a significant number of attendees leading sessions to share their experiences and expertise, or showcase some of the great applications they've built.
David Mertz from the Python Software Foundation gave an interesting opening keynote that looked at some of the subtleties of list concatenation, including which approaches are fastest and which are easiest to read. He shared a joke about Guido's time machine, where somebody proposes a new language feature, Python creator Guido van Rossum reads it, goes back in his time machine, and adds it to the original language. That's why when people request new features, the outcome is often that they were hidden in there somewhere all along.
There was then a networking session, which gave people an opportunity to meet others who are from the same region as them. I met with Danny Staple from Orion Robots, who makes easy-to-assemble kit robots. He was able to help with some of my technical questions about Python and kindly talked me through some of the solutions.
Events like this provide an opportunity to see what people are building with Python. Nicholas Tollervey gave an interesting high-level talk about distributed hash tables, a peer-to-peer way of storing data which fits well with Python's dictionary sequence. Geoffrey French demonstrated Ubiquitous Larch, a live web-based shareable programming environment for Python, which I can see being particularly valuable for training and documentation applications. He showed how several people can log in to the same session and collaborate on writing Python code which interacts with web data in real time.
Ian Ozsvald demonstrated how he's been using Python together with scikit-learn for analysing Twitter streams to disambiguate mentions of brands from generic words (separating tweets about Apple computers from tweets about fruit, for example). He took 1,100 tweets with the word 'apple' and marked whether they concerned Apple the company or not and used that to train the algorithm. Half were about Apple the company, and half weren't. He then ran some unclassified tweets through to see whether the program could find the company mentions among them, and compared the results by hand. When he benchmarked his results against a leading commercial solution, he found he was able to double the number of detected company mentions while eliminating false positives. Because I do a lot of work in social media marketing, it was particularly interesting to me to see how a home-brew solution using easily available tools can take on some of the major commercial platforms, although obviously Ian Ozsvald brings a lot of expertise to this, so his success might be hard for others to emulate.
Pyglet is a library for creating visually rich applications and Richard Donkin showed how it can be used together with OpenGL to create a Minecraft-like environment. This session also included demonstrations of two games made for PyWeek, the Python game programming challenge. Daniel Pope demonstrated his Asteroids-style game, and Juan Martinez showed his lunar adventure game which involved exploring different rooms to puzzle out what's happened. Both games were good showcases for Pyglet, especially since they were written within the contest's one-week deadline.
For me, the highlights of Pycon were the hands-on sessions. Zeth led an alternative introduction to Python, which showed some of the sophistication of the Python dictionary. When I first came across the dictionary sequence when I was learning Python, I thought of it a bit too literally, and struggled to think beyond applications like phrase books. You can use it to store mixed types, though, and it gets particularly interesting when you store functions in a dictionary. One person I spoke to at Pycon told me that he had an application that took error codes generated by industrial machinery, and used a dictionary lookup to run the appropriate function in response. Being able to do this without any conditional statements is an elegant solution. Zeth's session also covered classes, which was good preparation for Jonathan Fine's in-depth session on classes and objects later that same day. For both these sessions, I ran Python Anywhere on the iPad, so I could have a console to try examples on.
On the Sunday, there was a Raspberry Jam, led by Alan O'Donohoe. This is the first time I've been to one of these Raspberry Pi events and it was great to see so many young people programming the Raspberry Pi, an equal number of girls and boys. There were a few people developing Scratch games, including some who worked in teams to create a game where you're chased by a bee. Minecraft was incredibly popular, with one team hand-building an elaborate house deep underground, and someone else using two lines of Python code to create a swimming pool in the Minecraft world. There was a demonstration that involved an indoor quad copter floating up and down in line with movements in the Minecraft world too, controlled by Python. I've been having some fun with Python and Minecraft on the Raspberry Pi myself lately, so I can see why it seems to captivate the imagination. It takes something quite abstract (Python code) and turns it into something you can actually walk around inside (a Minecraft world).
Pycon is run by volunteers and I have to say they put on a fantastic show. The event was well organised and the facilities were excellent. The sessions ran from an intermediate level to sophisticated niche applications, and were all led by volunteers too, who had clearly put a lot of work into preparing their talks. The event was possible thanks to the generosity of the sponsors, so thanks also to Bank of America (who sponsored the Raspberry Pi Jam), HP, Python Anywhere, Riverbank Computing, Fry-IT, Server Density, Bytemark, ScraperWiki, AbiliSoft, Cloudfind, 2nd Quadrant, O'Reilly, and the Python Software Foundation.
If you missed this one, put the next one in your diary. Pycon 2014 takes place on the weekend starting 19 September 2014 in the West Midlands, most likely in Coventry again. Early bird ticketing is likely to end in July. If you're interested in Python, I hope you can make it!