Here's a rambling post mortem of PyCON. PyCON is a community run conference, that appears to be outdoing itself every year. It consists of 2 days of Tutorials, 3 days of Session and for those who want to stick around, sprinting. The sprints are still going on.
Atlanta
This was my first time in Atlanta (other than passing through the airport) and it seemed to be a pretty nice city (at least the downtown and Georgia Tech parts that I saw). PyCON will be in Atlanta next year, so here's some advice. If your hotel only say's "shuttle available", that means they don't actually have shuttles, but since there are shuttles at the airport, you can pay and take them. Come to find out that the train has a stop a block away from the conference hotel (our hotel was a block away from that). And the train is pretty nice, so there's a hint for next year.
The food was pretty good in Atlanta. We had BBQ one night, and mexican another. I got "brisket" quesadillas that were a pretty good fusion of southern/mexican. Pizza at the TiP Bof was good (thanks again Disney!). The lunches were quite good too. Steak, chicken and pork for the omnivores. The triangular grits(?) were pretty good and the mashed yams were yummy. Being an amateur gardener, I found the salads a little lacking, but hey, it's not really fresh veggie season and at least they weren't iceberg. The breakfasts and in between snacks were a little sparse.
Tutorials
I taught a tutorial that I called "The Meaty Parts of Python". Perhaps the name was a misnomer, as there have previously been "Python 101" tutorials. I put (what I thought) was a pretty good description of what I would cover in the material. The main idea being that I think one can get by in Python by knowing only the basic constructs. Eventually though, one should at least learn about closures, decorators, list comprehensions and generators (as well as how to test them). Even if one is not going to write such code, they will likely come across it. The tutorial was labeled as Python 301 to fit into a track on learning Python.
The tutorial, filled up quickly, and again filled up after the room size was expanded. The session went well and I got some good feedback. People who came in never writing generators or decorators, were leaving being able to write them.
I participated in the bag stuffing party later that evening, but was thinking it would be cool to have some sprints running during the Tutorials. That way if you were only interested in (or were only teaching) the 1st tutorial on the first day, you could do something else rather than sit in on (or sneak into) tutorials you may or may not be interested in.
Friday
GvR gave a Q&A session, based on twitter streams. Nothing really new there. Perhaps the quote "Nothing is Python is especially suited towards boys, so it should be good for girls too." (my paraphrase).
I went the WSGI Composition session first by Max Ischenko. The takeaway is that wsgi apps don't necessarily refactor cleanly along the wsgi line, though refactoring might help with maintenance. After that I jumped in the Pinax session, but left after the presenter has A/V issues and hopped in to the last part of VisTrails, which actually looked pretty cool, a sort of Turtle Art for workflow. After that it was off to Grig's talk of REST. If you are interested in REST, check out the video and slides for a good intro to REST and tips on getting started in general and in Python.
In the afternoon, I went to Jonathon Ellis' talk on Database Scalability. I've seen most of this talk previously at OSCON, but he's put a lot of work into it, and it's really good. It's language agnostic, so check out the video if you deal with large db's.
I've read Mertz's wonderful articles on Python, so I wanted to hear him speak on "laziness". If you find yourself heading done a functional path (which I feel like many times), check it out. When you start doing a lot of iteration, you start thinking about stuff like this. (Even GvR admitted that he is fascinated by functional languages, which seems to be new since he's been against functional constructs in the language.)
The form on panel generators turned out to be a wash. I guess with 4 or 5 frameworks, you can't expect much other than good jabs. My experience is that for complicated stuff generators don't work, and for simple stuff, it takes more time to learn, than just writing it.
The finance presentation was pretty cool. Pandas is a library for dealing with time series data, written as a numpy wrapper.
The talk on scaling with ec2 was done by reddit folks. It was quite fascinating, and Jeremy Edberg was quite willing to share details about reddit, their infrastructure, traffic and costs.
Saturday
Spent the morning in the "hallway track", which was quite enlightening. Made it into the Unladen Swallow session (if only to get seats for Beazley's GIL talk which followed). Collin seemed confident that US could get to the goal of 5X speed improvement if not 10X. Seeing as how they are at 1.2X (with a big boost in memory usage), I'm a little more skeptical. It seems like I'd prefer the psyco route, where you can gain speed/sacrifice mem at your choice. (Yes, I understand the drawbacks to psyco and the unmaintainable code, yes, I know they are working on the memory issues). For all my pessimism, I really do hope the project advances well. And I hope that some friendly competition from PyPy can spur them both to improve. I know there are areas were we use 32bit OS's just so we can use psyco.
Beazley's GIL talk was very well prepared and delivered. Though I understand the benefits of the GIL wrt making c extension coding easy, it is sad that as concurrency and parallelism become more important, Python remains focused on the use case of running one thing at a time.
Raymond Hettinger's presentation on composing datastructures was also well done. His examples and graphics were nice as was his clarity. He also apparently read the (somewhat new age style) presentation book, that the organizers were giving to presenters, since he gave himself and the audience time to breathe! Being able to tell someone what they want to do, why they are doing it wrong, and what is the right way is a great skill.
The presentation on NLTK was a good overview of natural language processing and scaling to cloud size. Having worked in search, it is great to see such tools available in Python.
Titus' talk delivered in classic Titus style. To the point and filled with witty remarks and anti-djangoisms thrown in here and there. Hopefully he is a little gentler to his students ;)
Ned's talk on Testability was another nice presentation. He laid out the benefits and went over a few examples. As someone who talked about testable scripting last year, it was interesting to see similar ideas presented with a different spin.
TiP BOF
The subsection of Python folks interested in testing got together again. It was both enlightening and fun. I think that most of these folks aren't "testers", but actually hackers who are interested and see the value in testing.
I presented a lightning talk on Emacs code coverage support. Apparently the intersection of emacs, python, code coverage and interest is quite small. I still think editor feedback on lack of tests (especially branch coverage) will indeed be useful. The other BoF presos were generally wonderful. If somehow this sort of energy could be channeled into panel sessions or 45 minute (or even 90 minute) lightning talk sessions on specific subjects (asynchronous, web, scientific, etc) I think it would be awesome.
Sunday
Antonio Rodriguez' keynote on how Python aids a startup was well done. His main idea seemed to be, most of your people should be technical and able to wear many hats (though I don't think he phrased it that way at all).
Went to Justin Lilly's talk on customizing editors. He has also forked emacs starter kit to add Python support. Perhaps we should collaborate. I wrapped up the sessions with DJing in Python (which was a good intro to audio processing, but somewhat light on djing) and Git.
One more thing
If you saw me walking around you might have wondered what was the deal with my feet. (Many people asked me, I assume others wanted to). I was wearing shoes that are supposed to emulate barefoot walking, which are called Vibram Five Fingers. Yeah, they look like monkey feet, since you have individual toes.
The premise of such shoes are that they are supposed to strengthen your feet, while normal, padded, supportive shoes weaken your feet. Yes they look weird, but they are fun to walk and run around in. Sadly when I went running in them, I didn't heed the advice to run only .25 miles at first. Since you can't comfortably heel strike while running, you use different muscles. Needless to say I was sore for a few days. (Interestingly enough, you can lightly heel strike in them while walking, which is supposed to be more efficient for the walking motion, while the opposite is true for running.) I'm somewhat rambling, but I assume others might be interested since there were at least 2-3 other folks also wearing VFFs. If you want to read more about this, check out the book Born to Run.