Wed, 28 Feb 2007
"Stupidity Driven Testing" and PyCon '07
Of all the fever-induced hallucinatory things I said at PyCon '07, I'm proudest of this: "I don't do test-driven development; I do stupidity-driven testing. When I do something stupid, I write a test to make sure I don't do it again."
So true.
For readers that don't get it, my development practice is this:
- write code to solve some problem
- watch code break in some obvious way
- write a test that tests that specific breakage
- lather, rinse, repeat.
I don't mind making mistakes, even stupid ones: I just don't want to repeat them. Thus, this development technique.
General comments on PyCon:
I did something every day: tutorial, panel moderator, panel-ee, and speaker. Way too much work, stress, and time spent in preparation.
Meeting people was great. I got to meet & hang out with the ARINC people, Shannon ("jj") Behrens, James Taylor of Galaxy, Terry Peppers, and a bunch of other people that I knew only from e-mail. I also saw a bunch of faces from last year, of course, including Brian Dorsey (thanks for the lift, Brian & Kirk!)
The talks were (from my limited vantage point) much better this year than last year. This is presumably a reflection of the increasing size of the Python community.
The "nose vs py.test" debate is growing in size, if not reaching any actual conclusion. It's very clear to me, at least, that these are the big new testing tools; I'm (obviously) pushing for nose, but I'd really like to see a showdown of features so that I can convert this from flame-boy advocacy into informed advocacy.
I regret not attending more Birds-of-a-Feather sessions.
The keynotes were fantastic, in general. I didn't enjoy the education one, per se, but a lot of interesting stuff was said.
I hope the recordings are up soon.
PyCon: Day 0 (tutorial)
The tutorial day was, as usual, fun! Grig and I gave our testing tutorial and even though we felt less prepared than last year, I think our significantly increased experience with actually using these tools (see the ARINC talk in particular) showed.
Reviews (both positive) by Shannon -jj Behrens and Terry Peppers.
Next year, we should have a book or two out on these topics, which will be an entertaining addition.
PyCon: Day 1 (Web panel)
I spent most of this day sweating about the PyCon Web Panel, which in any event turned out fine. Once I finally worked out the format for the panel in my own head (2 minutes introductions by me, followed by questions spread evenly among the participants) I was much more relaxed about things. (Perhaps the most fun I had with this aspect was reciprocating Grig's prodding: he constantly told me that I was over-preparing, and then when it was his turn for the Testing Tools panel I got to prod him for over-preparing. Back atcha... ;)
The panel was really meant to showcase personalities and get faces out there; 45 minutes is way too short for any meaningful discussion.
Being in front of that many people made me really freakin' nervous.
One obvious (to me) conclusion from the panel was that TurboGears and Pylons should merge. This may happen eventually, but not right now ;).
Another obvious conclusion (and I actually said something to this effect) was that documentation is a huge problem. Huge. The framework that documents will dominate IMO. (Right now I'm guessing that this will be Django, but only because Adrian consistently acknowledged the need for documentation.)
It was interesting to discover that Twisted had AJAX-like behavior a year or two before AJAX hit. I think Zope and Twisted both need to hire a PR expert to publicize their coolness; I get the impression that the communities are relatively insular and this contributes to a lack of buzz about their accomplishments.
My favorite comment, by Jonathan Ellis: "Django's ORM is feeble."
James Bennet has a disturbingly complete transcript.
Other reviews/notes: Jonathan Ellis, James Tauber (international man of mystery!), Nathan Yergler (I agree, Nathan! But I asked for more time!), Shannon ("jj") Behrens, and Matt Harrison.
Hopefully a video of this event will be posted. I want to listen to what I actually said. ;)
PyCon: Day 2 (Testing Tools panel)
I wasn't as worried about the Testing Tools panel, 'cause I didn't have to say anything. Of course, it turns out I said too much as a result ;).
The panel was fun but kind of a blur. A bit more time next year, perhaps?
Reviews/notes: Grig Gheorghiu, and Matt Harrison.
I attended the buildbot BoF, which was really fun. Brian Warner rocks.
PyCon: Day 3 (twill talk)
I spent most of the prior evening and morning working on my twill/scotch/figleaf talk. During this time I learned just enough about CherryPy 3.x and Django whatever-the-heck-the-latest-version-is-with-or-without-magic-removal-who-the-hell-knows to actually write test fixtures for them.
I decided to go out on a limb and rather than describe twill/etc. in nauseating detail I worked up nine demos (testing CherryPy sites, doing coverage analysis, writing twill extensions, testing Django sites, and recording Web traffic) and I ran through the demos interactively while providing a narrative.
I really enjoyed this talk format, although it may not be for everyone.
You can grab my talk source code here although this link will eventually (soon!) be broken & moved to an archive containing more documentation.
Review: The Thiers.
I announced the testing-in-python (TIP) mailing list in my talk.
Grig's pybots talk was well-received and (IMO) I think this project is going to dramatically increase the solidity of the Python community's software.
I also got a chance to run some of my ideas for improving test processes on the Python interpreter past Brett Cannon, and (to my shock) he was really open to them. More on that soon.
That evening, I got a chance to meet up with R. Steven Rainwater ("robogato") and his wife Susan; Steven has taken over advogato. They took me out to a nice sushi place, which was really welcome after the heavier food I'd been eating thus far. More on that anon.
Post-PyCon: travelling to San Antonio
After PyCon, Diane Trout and I shuffled ourselves over to UTSA to talk with the nice people at the Computational Biology Initiative. The CBI is interested in making a commitment to future development of Cartwheel which is pretty cool. More anon.
--titus
posted at: 10:59 | path: /feb-07 | 0 comments
Wed, 21 Feb 2007
PyCon travel is cursed!
Last year, Grig and I flew down to Dallas together to attend PyCon. I don't recall the exact problem, but for some reason the plane didn't go and we ended up flying through Houston and missing our original flight to Dallas. (We did have some unreasonably yummy BBQ in Houston, so that was an unexpected plus.)
The curse has continued.
Right now, I'm sitting in an airport, using Boingo to connect to the Internet (an excellent $30/mo expenditure, thus far). My first plane was cancelled due to mechanical malf (an America West gig); I didn't make it off of standby for my second plane; and now, barring oddities, I'm definitely booked on to a 3:30 flight.
Better luck to the rest of you...
Is anyone reading this who wants to share a taxi ride at ~8:30pm over to the Dallas Marriott Quorum from DFW? E-mail me by 2:30pm Pacific time... ;)
--titus
posted at: 12:06 | path: /feb-07 | 1 comments
Sat, 17 Feb 2007
PyCon is coming, PyCon is coming!
PyCon07 (the biggest PyCon ever!) is just around the corner, and I'm really looking forward to (pardon the term) geeking out for a few days! Python is my hobby, although it leaks over into my work pretty regularly, and I expect to have a great time forgetting about work and focusing on Python.
I don't think I'll be at too many talks, partly because I find that simply downloading the software and hacking on it is a higher-bandwidth way of absorbing information. Heck, I mainly go to talks to see what the author of some piece of code looks like, and what with the testing tools panel, the python-dev panel, and the Web panel, I expect to see or meet at least half the people I know ;).
Anyway, the point of conferences is to meet people. So I look forward to seeing everyone, and if you're looking for me, don't hesitate to e-mail me or grab me or ... I particularly enjoyed some of the dinners last year, where we would go out to eat with a bunch of hackers and talk about something random.
Oh, and Phil Hassey, the creator of Galcon, is coming. No word yet on whether or not we'll have some massive let's-all-kill-each-other Galcon fest, but it would be fun...
--titus
posted at: 18:44 | path: /feb-07 | 2 comments
Wed, 14 Feb 2007
PyCon Web Panel Thoughts
First, let me mention that I've recruited Duncan McGreggor to the panel to talk about twisted.web and Nevow. That makes it a real party! In random order, we now have:
- Zope: Jim Fulton
- Pylons: Ben Bangert
- Django: Adrian Holovaty
- CherryPy: Robert Brewer
- TurboGears: Kevin Dangoor
- pyjamas: James Tauber
- twisted.web/Nevow: Duncan McGreggor
Now, as Ian point out in the comments on my last PyCon Web Panel post, the questions on my original announcement are pretty insipid and will likely lead to a boring panel.
So, courtesy of our SoCal Piggies members, and David Pollak's Web Framework Manifest, here are some slightly more pointed questions.
Can be asked of anyone:
- why does your framework exist, given that so many others already exist?
- what future does your Web framework have?
- what sort of testing hooks have you made available?
- what's the best Web framework? ok, yours -- but the next best is...?
- what's your favorite dead Python Web app/framework/approach?
- before you wrote/got involved in developing your own Web framework, what frameworks did you use?
- what impact has WSGI had on the way you think about extending your Web framework?
Specific framework/person questions:
- Zope/Twisted: your community seems fairly insular. Is this true? (Assume yes.) Is it by design? If so, why; if not, what do you think are the causes and do you want to change it (and, if so, how; if not, why not?)?
- Robert Brewer: last year you'd just debugged a nasty threading problem in CherryPy, and you promised me you'd have a solution for debugging Web server/load testing/threading problems of problem by PyCon '07. Now I've got you in front of several hundred people -- what was the problem? do you have a general testing/debugging solution? what is it?
- pyjamas: JavaScript is quickly gaining more and more toolkits. Why does yours exist? Where do you plan to go with it? What Web servers does it work well with?
OK, I'm out of creativity for the evening. Does anyone have any suggestions? Remember, the object is to ask interesting questions that will have both entertaining and informative responses. In particular, I'm not going to ask a question that will get me beaten ;).
I'm also still a bit stuck on the format. I'd like to do some sort of introduction, but that will take up a fair bit of time. I'd also like to have audience participation. Blech. We only have 45 minutes... Thoughts?
--titus
p.s. I have to approve new posts/posters, so comments may be delayed in appearing. Sorry.
posted at: 00:57 | path: /feb-07 | 7 comments
Mon, 12 Feb 2007
The PyCon Web Panel
So, I'm the organizer/moderator of the PyCon Web Panel. This will be a forum for maintainers of many of the main Python Web frameworks -- Jim Fulton/Zope, Ben Bangert/Pylons, Adrian Holovaty/Django, Robert Brewer/CherryPy, and Kevin Dangoor/TurboGears -- to discuss their take on Python, the Web, and the future. I've also invited James Tauber, the maintainer of pyjamas, to join the panel, since his talk on pyjamas got turned down and I've heard great things about pyjamas.
I've also invited some people from the Quixote and twisted.web/Nevow community to join us. Aaron Swartz (web.py) wasn't available, unfortunately.
Grig is also hosting a Testing Tools Panel, and I'll be representing twill on that.
Here are a couple of panel-relevant links from Guy Kawasaki: The Art of Panels, How to be a Great Moderator, and How to Kick Butt on a Panel.
I'll post some of the panel ideas I've had soon.
--titus
posted at: 01:05 | path: /feb-07 | 1 comments