Thursday, December 13, 2012

Plan for Pycon 2013

I looked at the Pycon talks and events schedule and was a bit overwhelmed.  There's just too much awesome, which is, for me, a bad thing.  Basically I've got to narrow down a strategy and a scope for attending this thing or I'll just learn nothing about everything and come back to work in Arizona and Africa totally burned out from lack of sleep.

What I've tried to do is group things in categories that are relevant to what I do for a living or what interests me to the point I would make the time to actually work on them.  I then listed the talks in these categories (mine, not the conference organizers') on paper and ranked them within each category.
The pattern that fell out for me is that I would be best served by focusing on Python 3.3 and how to use it best.  For me, that's going to be the theme of the conference, even if there are other more prominent official themes.

Disclaimer:  I'm a geologist/wannabe mining engineer/sometimes programmer/sometimes developer who is trying to write decent code and maintainable software.  Among the Pycon crowd, I'm probably well into the lower 50th or 25th percentile in terms of computer literacy and programming skills.  Among mining professionals I'm probably somewhere in the upper 25th percentile in terms of those skills.  It's all relative.  What's good for me is probably not the same as what's good for you.  Hopefully this gives other people some idea of how they would like to plan their conference experience.

A) Core Language for the User

1) How to Except When You're Excepting - Nam
2) Become a logging expert in 30 minutes - G. Roy
3) Iteration & Generators: the Python Way - Ramalho
4) Loop like a native: while, for, iterators, generators - Batchelder
5) Python's Class Development Toolkit - Hettinger
6) Transforming Code into Beautiful, Idiomatic Python - Hettinger
7) Encapsulation with descriptors - Ramalho

This is all basic language stuff.  I need the repetition and reinforcement.  "Yeah, but Carl, TWO talks on iteration?!  Don't you think you're taking this whole repetition/looping thing too far?"  No.  When you do summing of tonnes and grade and weighted averages and binning of material types and truck counts and processing of millions of individual 3D geologic model blocks for a living, there are never enough ways or efficient enough programming language idioms.  iter(), like, um, forever . . .

B) Python Internals

1) The Guts of Unicode in Python - Peterson
2) All-Singing All-Dancing Python Bytecode - Hastings
3) How Import Works - Canon
4) sys._current_frames(): Take real-time x-rays of your software for fun and performance - Rochael

I'm probably going to actually understand about 25% of what I hear IF I actually do some research ahead of time.  Still, knowing how something actually works can be a huge advantage.

C) Miscellaneous Stuff

1) Why you should use Python 3 for text processing - Mertz
2) How the Internet works - McKellar
3) Internationalization and Localization Done Right - Varshney
4) Python for Robotics and Hardware Control - Foote
5) Realtime Tracking and Mapping of Geographic Objects using Python - Burhum
6) Location, Location, Location - Grace
7) The Magic of Metaprogramming - Rush
8) Integrating Jython with Java - Baker
9) Getting Python and Django Through Your Java Shop Front Door (with Jython) - Wierzbicki

All stuff that I've had to deal with in the workplace.  All stuff that I wished I had been smarter about :-\

D) Community

1) Scaling community diversity outreach - Laroia
2) Designers + Developers: Collaborating on your Python project - Elman
3) How (Not) To Build An OSS Community - Lindsley

People hacking is not my strong suit.  Anna Ravenscroft gave a talk at Pycon back in 2010 on diversity.  I had a couple "Huh, I never thought of that.  Yeah," moments during that talk.  If I can glean a handful more of those "Huh" moments from these talks, they are more than worth it.

E) Tutorials

1) A Gentle Introduction to Computer Vision - Scott
2) Python 3 Metaprogramming - Beazley

We use a fair bit of computer vision in mining and that will probably increase as we move into the future.  The main application I can think of is estimation of rock fragmentation size with SPLIT imagery.  I actually own a VB book that covers a lot of basic concepts in a programming context (Visual Basic Graphics Programming - Stephens).  The problem is that it's 1) in a dead language - VB6 and 2) not in Python.

Beazley's course is going to be sick.  I will be truly disappointed if my head doesn't explode along with everyone else's and there's not a mini zombie apocalypse inside the classroom ;-)

F) PyPgDay 2013 - San Francisco PostgreSQL User Group

I've been to these PostgreSQL days the day before OSCON a time or two.  They are generally fantastic.  I really like the PostgreSQL community and the rigor they put into making robust database software.  Berkus or Deckelman, or both should be there.  Good, smart folks!  I am looking forward to this.

F) Keynotes

1) Hettinger
2) McKellar

Confession:  I am not into keynotes.  Basically it's first thing in the morning, you're beat from travel.  You herd into a huge dark conference room with a zillion other cattle, er, people.  If the talk, like a movie, doesn't make you forget about how you feel it can be a bit of a soul crushing letdown.  Back in 2010 Guido changed the format of his keynote to a twitter Q & A.  I hated it; some people loved it.  Yes, I am an uptight inflexible old fart who could stand to loosen up.  Yes, Guido is an indisputably great guy.  That said, I don't think I'll re-Guido myself on the keynote end for some time to come.

Rasberry Pi is a wildly cool innovation.  Sadly, I still really haven't successfully hacked on the Arduino.  When people are mastering the great grandchild to the Rasberry Pi, I'll finally be getting started on the Arduino when I'm in a nursing home.  Same problem as I mentioned at the outset - too much awesomeness, too much of a good thing.

Hettinger is really in the zone on the Python language end of things and cool new ways to use it.  He tweets tips constantly and has an infectious enthusiasm for the language.  I don't think he's reached his ceiling with respect to innovation or burn out.  Safe bet.

McKellar is a Linux kernel engineer, if I understood her bio correctly.  So here's this woman who has really made it in the industry and isn't wanting for anything accomplishment-wise or employment related.  Nonetheless, she is taking the time to get involved in outreach.  To me that says passion.  I'd like to hear what she has to say, whether she's talking about kernel hacking or outreach.

G) Conference Prep

1) Install or build Python 3.3 and dink with it.
2) Get a real database with real world data that mean something to me set up on Postgresql on my OpenBSD laptop.
3) Brush up on Unicode and Python's Unicode capabilities in preparation for Peterson's talk.

That's about it.  See you at the con.


  1. Good idea, will do something similar.

    Though I don't understand - have the talk times been released yet? What if two of your favoured talks clash?

  2. This comment has been removed by the author.

  3. @chrispsn Thanks for stopping by.

    Yes, you are correct. There is even the chance that three or more of the talks will clash. I can always catch the others on video if I'm serious about seeing them. For me, Mertz' text processing talk trumps the others, then Peterson's Unicode talk, and from there I'll just have to run a triage. Basically that was the point of the post. If I don't do this ahead of time, I'll just wander around the conference going from cool talk to cool talk and missing a lot of the stuff I really need to know. Actually, that sounds tempting, now that I mention it. Anyway, you can't have too much of a good thing.

    Have fun at the con. All the best. CBT