Archive for the ‘Essays’ Category

PyCon, Day Five

Sunday, February 21st, 2010

Hacked. Went to two talks on Mercurial. Hacked. Ate. Flew Home. Unpacked. Tired. Wrap-up later this week.

Good night.

PyCon, Day Four

Saturday, February 20th, 2010

Today was made of twenty-four karat win.

  • We had three excellent keynotes, but the one that stood out was Mark Shuttleworth’s discussion of Cadence, Quality, and Design, in which he discussed the discipline of development on a timed schedule, and how it has helped the Ubuntu teams.
  • David Beazley’s Understanding the Python GIL was as crunchy as I’d hoped. He did a series of tests on how the Global Interpreter Lock acts when dealing with threads on a single or and then on multicore machines. It was outstanding.
  • Catherine Devlin gave a talk about how to build command-line interpreters using cmd and cmd2, then as a bonus explained how SQLPython can make your life better. A commandline shell that allows you to interface with Oracle, MySQL, or PostGRes as if you were in a Unix shell?  Yes please!1
  • C. Titus Brown’s discussion of implementing different continuous integration packages was as entertaining as could be, and brought home several good points (mostly, just use Hudson. Really.).
  • Finally, Ned Batchelder demystified several layers of confusion during his talk on Tests and Testability.  I’m looking forward to playing around with his ideas at work this week.

I’m beat. There’s one more day of talks, then I’m on my way back home. Not sure when I’ll be able to get my Day Five post up, but I’ll try to do it before I fly out.

Thanks for reading!




  1. This talk completely blew me away, and I’m wondering if she accepts sacrifices or tribute.[back]

PyCon, Day Three

Saturday, February 20th, 2010

Today was the first official day of the conference, and it was packed. The started off with a carb-filled wonderland of treats (croissants, various breads and cakes) and coffee leading into the three keynotes.

  1. Van Lindberg formally opened the convention.
  2. Steve Holden1 gave an overview of what’s new at the Python Software Foundation, and what’s coming down the pike. THere was a strong emphasis on diversity as a key goal for the next year. These was also discussion about the possible creation of an Associate membership in the PSF wheere people could donate money and become a member. Nothing definitive on the latter yet, but it is under consideration.
  3. Finally, Guido van Rossum put the twitterstream of #pycon tweets on the screen behind him and took questions from the stream for about 40 minutes. Of special note was his comment on Django vs. Turbogears (“Django. Sorry, Turbogears guys.”), Django in general (“Django sucks. But they all suck.”) and vim vs. emacs. (“I use emacs. I also use vim. I’m not very good at either.”)  In all fairness, it was hard to delve deeply into any one topic, so discussion was light and all in good fun.

After a short coffee break the various tracks started up. While everyone seemed to be getting something out the talks they attended, my personal experience was that it was rather it and miss. The single outstanding talk was an exploration of the Python Dictionary, explaining how it allocates memory, resizes itself, and assigns addresses in RAM. It sounds dry but Brandon Craig Rhodes did an excellent job, and was easily the best speaker of the my day. A close second was Grig Gheorghiu’s discussion of RESTful web services and how to construct them using restish.

The day finished off with a set of lightning talks, the highlights of which were Greg Wilson’s request for articles for his next book entitled Beautiful Software Architecture, Ned Batchelder’s report on recent changes to coverage.py, and David Huggins-Daines’s demonstration of PocketSphinx, a speech recognition engine which will transcribe .wav formatted audio to text.

By then end of the day, most of the folks I was hanging with were beat, so we split up and grabbed dinner. Some of us walked back to my hotel and hacked on code for two or three hours, which was fun. I haven’t been able to hack with a team since I left Mahalo, and I do miss it.

Tomorrow looks to be another full day. Check in late in the evening for a recap of Day 4.




  1. Chairman of the Python Software Foundation[back]

PyCon, Day Two

Thursday, February 18th, 2010

My tutorial today, Testing Websites With Python and Selenium, was not as promising as I hoped. In fact, I was rather disappointed with the comedy of errors that ensued.

  1. The talk started 30 minutes late.
  2. We spent the first hour configuring our computers, something we could have done before the talk if there had been any notes circulated.
  3. Even once we got there, there were no notes. The speaker would add the commands he was running to a notes.txt file, then we would go download it from his computer via HTTP.
  4. When asked how to configure Firefox profiles on Windows, the answer was “I don’t know.” The Windows folks banded together to solve the issue, but…I mean…come on. You’re presenting to a multi-OS room. It’s your responsibility to understand the material.

<snip…>

Rather than get all frothy and unkind, I will only say that an ounce of preparation goes a long way. I did learn a few things, but the talk was so much less informative than yesterday’s tutorial that I left feeling that I would have done better just reading the docs on my own.

Now, that being said, this is not a problem with PyCon, just this one tutorial. I still have very high hopes for PyCon in general. Tomorrow is the first day of the formal conference, and I look forward to seeing what it holds.

Stay tuned for Day Three.

PyCon, Day One

Wednesday, February 17th, 2010

The area around the Hyatt Regency in downtown Atlanta is very much as I remember it. The last time I was in town, it was for DragonCon 2006. That was in August. It’s colder now: February will do that. This morning’s sky is slate gray; it reminds me of home. This is different: I remember Atlanta’s blue skies, it’s warm nights.

You’re not at DragonCon anymore, Mr. Miller.

The Regency is a very different place when not festooned with cosplaying geekazoids1. That’s not to say there are no geeks, just that colorful superhero and anime costumes have switched to black shirts/hoodies and blue jeans. It’s not full the full-on stereotype, mind you: there are enough hipster-coders in the mix to break up the monotony.

At the time I write this, it’s 8:42 am and I’m waiting to filter in for the first tutorial I signed up for: Faster Python Through Optimization. This is after my first choice, Test Driven Web Development, was canceled due to the speaker’s business life stomping down on his lecturing life.

I’ve just been asked where the registration desk is again. Again, unlike DragonCon, there’s more than one convention in the hotel this weekend. People are confusing one with the other. It’s easy to tell the between the participants: khakis and colored oxford shirt? Manufacturing conference. Black Tee with laptop bag? PyCon.

So far, the wifi is…minimal. This is disappointing, but it’s still very early: I’m willing to bet they just haven’t gotten there yet.2 The staff peoples are working hard this morning…I’m watching them lay powerstrips and set up cameras. It looks like there will be an archive of all the talks. This is great: I can use them for review later if my own notes are lacking.

Time to go. More later.

* * *

I must steal a line from my friend Kris Johnson to describe the Optimization talk. It was like a toasted wheat bagel: good for me, but very dry.

The speaker was well prepared: sample code was burned to CDs and a fifty-three page handout that contained all the information for the course. Any worries I had about not having complete notes are now gone.

(This is where the non-programmers can skip to the end. The rest of you, read on.)

The information was excellent. We started off looking at how to use cProfile and Guppy to benchmark and profile code. From there we wrote several tests for comparing operations on various data structures: finding the intersection of two lists vs. two sets, Slicing off pieces of a large list vs. using a deque. From there, looked at how to speed up various math functions with NumPy, using psyco for JIT optimization, then finally moved on to using the multiprocessing module to make the best use of multicore systems.  Finally, we looked at how to combine strategies to get the most bang for your buck.

While I was pleased with the content, the presentation was a little lackluster only for the reason that most programming presentations are challenged: the instructor mostly read from his notes. To be fair, he seemed a little nervous, and the fact that some of his examples failed because of configuration issues did not help the poor guy. I felt for him.  The interesting that happened was that people paired up when things went awry to solve the issues. I worked with a woman named Ada3 to figure out the problem with some of the timing functions in the code. The pair programming enhanced the talk, and I feel like I got more out of it.

(Welcome back, non-programmers.)

All in all, I’m pleased. I’ve already learned some new concepts and they are spawning new ideas that I’ll probably play with over the weekend. Tomorrow I’ll be heading to Testing Websites With Python and Selenium, which looks promising.

See you tomorrow for Day Two.




  1. This is a term of endearment. I count some of those cosplayers as friends.[back]
  2. This was, in fact, the case. The hardworking staff fired up the internet connection, and everyone logged on at once, flooding it. About 15 minutes into the tutorial, the internet returned, and several gasping programmers logged in to Twitter. Myself included.[back]
  3. This flipped my geek bit a little.[back]