pycon 2008 - day 2

Posted on March 15, 2008
Filed Under python |

some of the keynotes from this morning were great. others, less than exciting - informative at best. i used the time to check out allmydata.org’s tahoe distributed filesystem, connecting to an ad-hoc p2p network started by other pycon participants. cool stuff. i haven’t quite figured out how to replicate data from other nodes, though.

the first talk i went to today was supervisor as a platform, about http://supervisord.org. overall it seems like a cool project for managing processes on multiple machines. however i wish that it didn’t require processes to run in the foreground - this might be nice for new programs but for well established programs which daemonize themselves i think it would have been better to use the standard /etc/init.d/ script interface.

the pypy talk was pretty good. i’ve been following their blog for a while so i didn’t see much new but it was well presented and received a good response from the crowd.

the django talk was really good. the example showing how to make a view reusable by adding parameters for the form class, the template, and the redirect url makes a lot of sense. its good to see there’s a way for doing reverse url lookups for dynamically determining where an application is rooted in the site’s url tree - that was a point of frustration for me before. the emphasis on writing multiple smaller, narrowly defined applications made me realize that this would have been a much better way of working for the django apps i’ve written.

lunch was better today.

the multitouch presentation was excellent. i’ve met with the guys from enthought at the austin python user’s group meeting they host once a month and saw a preview of this presentation some months ago. they’ve come a long way since then. too bad it would be a monumental and/or expensive effort to get one of these things.

i haven’t looked at trac too much but the plugin architecture seems solid and well thought out. the presentation was excellent and gave a great overview of what is possible when developing trac plugins and how to go about doing so. the company i work for could probably benefit from switching to trac - seems like someone there looked at it before but i’m not sure where that ended.

the stackless + twisted talk is probably most directly relevant to my day job. a coworker and i implemented a test driver using stackless to take advantage of lightweight threads and were surprised to find no readily available solution for dealing with blocking socket operations. the stacklesssocket module comes close but had some problems conforming to the socket module’s behavior and wastes quite a bit of processor (looking at the page for stacklesssocket now i see that richard tew has integrated some fixes for these issues). after several rounds of finding and killing bugs we got something usable and have been quite happy with the results. i’m not sure if using twisted is the best option for our environment because it doesn’t completely hide the fact that twisted is used. i’ll have to make our changes to stacklesssocket available somewhere sometime.

the lightning talks were different today. a few plugs for various projects, tripping over podiums, possessed computers, etc. the resolver spreadsheet product is cooler than i had imagined it would be - generating ironpython code behind the scenes to reproduce the displayed spreadsheet, allowing python formulas, etc. overall the talks from yesterday were better than today’s but i’ll admit that i zoned out after a few of the less interesting talks and bailed out early for food so i could make it to the bazaar introduction i mostly missed yesterday.

speaking of which, the bazaar introduction was great. before yesterday i had only briefly looked at bazaar and regarded it as one might a strange looking bug, much the same way i initially regarded python upon seeing the whitespace treatment. but, like python, upon further inspection it appears to be more useful than i initially thought. not requiring a centralized repository allows a more flexible workflow between coworkers. merge tracking is far superior than subversion’s and would appear to eliminate spurious conflicts when merging multiple times from the same source. additionally, much work has gone into not only allowing multiple use case scenarios with varying degrees of molding bazaar to work more like subversion on the one extreme or git on the other, but to provide some level of interaction between other version control systems. the subversion plugin to bazaar appears to be the most mature and allegedly allows a nearly seemless flow of changes to and from subversion to a bazaar branch. i’m certainly going to test this with our subversion-hosted source code to see if its feasible.

overall, today was good. i think i learned more about more projects yesterday but perhaps i learned more about a few individual projects today, specifically tahoe and bazaar.

Comments

5 Responses to “pycon 2008 - day 2”

  1. Brian Kirk on March 16th, 2008 9:54 pm

    what was for lunch on day 2 that made it better than day 1? let me guess - pizza or wraps?

    you should definitely submit the work you & smitty did for stackless.

    tripping over podiums & possessed PCs - sounds like a day at our office only worse - tripping over power chords connecting to switches & power vaults are the possessed pieces of equipment these days.

  2. Gene Oden on March 16th, 2008 10:11 pm

    on day 1 they had these pre-packaged meals with a ham or veggie sandwich - i had the ham but probably should have gone with the veggie. day 2 they had a buffet with bbq pork sandwiches or something like that. i didn’t eat much of the pork and with my headache now and am regretting that i had any of it.

  3. Richard Tew on March 24th, 2008 9:06 am

    Yes, stacklesssocket isn’t really a solution which should be picked up and trusted to be solid or correct. As time goes by, its incompatibilities with normal socket behaviour become more and more obvious.

    My recent changes are not necessarily reliable. At this time the biggest bug is that if the socket is closed, then the socket is really closed rather than remaining open for file objects created from it to use.

    Fixes or patches to it would be appreciated. As it is, I just have to find the time and interest to work on it when I can in my free time :-)

  4. Richard Tew on March 25th, 2008 6:46 am

    I should add I fixed the closing problem mentioned in my previous comment last night.

  5. Gene Oden on March 26th, 2008 11:30 am

    thanks, i appreciate the work you’ve put into this and stackless.

    i haven’t taken the time to build a patch from our latest changes or merge & test your latest changes but i should be able to do that in the next week or two.

    i have a copy of our latest version here:

    http://eugeneoden.com/stacklesssocket.py

    looking at a diff between that and what i think is the original before my changes i can’t recall exactly why i made some of the changes for add_channel().

    the timer stuff is modeled after another variant of non-blocking io found here:

    http://sweetbytes.net/stackless_io.html

    and works well for us. this reduced the busy-waiting of the process considerably.

Leave a Reply