May 25th, 2011 § § permalink
Preamble
There’s been some recent discussion about DjangoCon(.eu | .us) and whether or not speakers should have to pay for admission as well — see Chris Wanstrath’s (of Github) tweets (here and here) and this Convore thread for examples. Obviously, as PyCon is the “big dog” so to speak for Python conferences, everyone looks to “us” for a model to work from, or how we manage things. I’ve seen a lot of poop slung towards the DjangoCon organizers, mainly due to a lack of knowing “why” certain policies (such as “Everyone Pays”) exist for DjangoCon, PyCon, and other conferences.
As co-chair and program committee chair last year, and program committee chair the year before, and now chair for the next two years — I figured it might be good to take a moment to explain the rationale behind PyCon’s approach — as well as some statistics about the budget. I’m not going to state that this policy is perfect; nor that it won’t be changed; I also will not release the budget publicly — I don’t think giving everyone a spreadsheet without the context of the hundreds of man hours of work that go into it is useful, at all.
Important Note: PyCon is organized and managed by the Python Software Foundation — this means that, as part of being a 501c3 charity, some of the financials from past PyCon is available as part of publicly accessible financial documents of the foundation. You can find those on the PSF’s site.
The same reasoning may not apply to a conference that is organized by a commercial entity or is done for profit. OSCON is a commercial conference, so having speakers get in free is generally expected. DjangoCon.us is in the middle — it is organized for profit by a commercial entity, but it also contributes heavily back to the Django Software Foundation. DjangoCon.eu is managed differently as well.
» Read the rest of this entry «
Preamble
There's been some recent discussion about DjangoCon(.eu | .us) and whether or not speakers should have to pay for admission as well - see Chris Wanstrath's (of Github) tweets (here and here) and this Convore thread for examples. Obviously, as PyCon is the "big dog" so to speak for Python conferences, everyone looks to ...
April 7th, 2009 § § permalink
Ah, PyCon 2009 has come and gone. I’m a little late in doing a wrap up — but that’s primarily due to the fact I wanted to spend time with the family, and not on the computer since I got back mid-day Thursday of last week. That — and other things in my life are a little worse-for-wear, so my brain’s been full of “other stuff” rather than basking in the glow of:
The best pycon, ever
Yeah, I came out and said it. For me, it was my 4th(?) PyCon, and not to disparage the past, but this one was the best planned, best executed and most fun for me. Sure, it had a few negatives (Chicago being one of them), but by far the pluses outweighed any minuses.
Here’s a summary of things I can remember.
The summits
I got in mid-day wednesday and broke into the VM summit. I was immediately slapped with the unladen-swallow announcement, which made me do a little dance and immediately start pulling down the code. For the most part, since I was past the introduction piece, I sat in back and had interesting discussions with Thomas Wouters, Brett Cannon and others.
Later that night, I sat down and spent some time with unladen swallow — mainly getting LLVM all happy and pulling down the trunk (when I should have been using the released tag). I also spent a fair amount of time massaging my slides for both of my talks. Nothing quite like last minute changes.
The next day was the language summit. Here a bunch of people much smarter than me sat down and discussed the future of the language. I can’t even begin to describe everything that happened — some basic highlights are:
- Some discussions around making python 2.7 be the last release of the 2.x line. I think the general consensus was to continue to use 2.x as a ramp into 3.0, but in general if migration to (and from) 3.0 was faster/easier, then the adoption barrier for 3.x would be greatly lessened. Most of us finally agreed that the 2.x line should end with 2.7.
- On 3.0 — porting issues and pains were discussed, things like 2to3 being slow, lack of incentive (3k being “a better language” notwithstanding) being one of the big issues. Someone (Guido I think) floated the idea that big features only go into the 3.x branch, ergo providing greater upgrade incentive. I don’t think a lot of people disagreed with this and in fact, I took it to heart during the sprints when looking at feature requests for multiprocessing.
- Which brings us to 3to2 — several developers expressed that if we had a tool which could translate python3 code to python2, then they could start writing their frameworks/tools in pure python3 and then back port it. I don’t recall anyone disliking this idea — but no one wanted to get the ball rolling. So I raised my hand. In essence, I volunteered to get the ball rolling, which I have done. Benjamin Peterson will be heading it up primarily — but anyone is free to contribute (and some already have). It’s got potential as a google summer of code project.
- After that we discussed what CPython can do to make integration/testing easier for alternative implementations. We agreed that being able to mark tests as “cpython only” and breaking things in the repository up in such a way to make integration of the standard library into alternative distributions easier. Brett has more on this, but the essential idea is to compartmentalize the standard library out into a separate project within source control, and have other implementation pull/ingrate that. Anything that’s Jython/CPython/etc specific would be marked/stored appropriately. For example, multiprocessing as it exists today is a CPython artifact, and not needed for say, Jython.
- And then there was the packaging discussion. Rather then rehash everything that was discussed, I’ll simply mention that I proposed a much simpler approach. Specifically, I noted that we should simplify the core of distutils, pulling in setuptools feature where appropriate, offer plugin/hooks where appropriate, standardize on a simple, extensible metadata format and remove any of the “non core” bells and whistles from distutils. In essence my argument was that things like RPM building, easy_install, virtualenv, and so on simply do not belong in core python, rather they belong outside of the core, where consumers/developers can tailor solutions to suit their needs. Ultimately disutils can help them, and make the APIs/Plugins/Metadata standard but it should not be a fully fledged “package manager” or build utility.
Ultimately, the summits were a ton of fun, and being lucky enough to be invited was really great for me. At the end I was worried about people being tired of my chirping up, but it was resoundingly a success.
The conference
This is where things begin to blur — hopping in between hotels, lightning talks, hallway discussions — it was insane. Add to that my fear/stress about both of my talks, and I simply can’t fit everything that happened in my brain.
I think I started the day in “How to Give a Python Talk” by AMK — which was great, if disheartening simply due to the fact that I had made some of the mistakes he pointed out in my talks. Ergo more slide hacking. After that it was hallway discussions and hitting up “How Python is developed” by Brett — I was going to heckle him, but I played nice.
Then there was the Python VMs panel, which I swapped out of and into the “Building an Automated QA Infrastructure using Open-Source Python Tools” — which can be summed up as “Yay buildbot” (I’m hard to impress, I’ve built a few of these by now). I then hit up the Twisted/AMPQ talk but ducked out early to go prep for my talk.
Then, it was my multiprocessing talk time. You can see the full video here, I think it went well, and feedback has been positive. Given I’ve done variations on this talk elsewhere, I was a little more confident in myself. I think I could have slowed down in some parts, and stopped fidgeting as well as a few other nits. I had some great conversations with users of the package as well as people new to it which pretty much absorbed all my time until dinner. I think I hit up the lightning talks — but I can’t remember.
The next day, was the now infamous LINDBERG’D lightning talk (video here) — for those who don’t know — Yes, Van knew — he even wrote the legal disclaimer I have in my slides. Basically, Brett and I had stayed up until what — 1am one night laughing about this idea of sending Van (who isn’t very threatening) after commenters on the internet. The day after we stayed up laughing at this (much to the dismay of our neighbors) I hit Van up for some text and let him in on it. No, it wasn’t serious (people asked). Yes, I was also voted in with a pile of other people into the PSF. Good times.
Afterward, the guidonote and then know I saw the state of django talk, as well as Jack’s “Class Decorators: Radically Simple” — which was fantastic (although I saw a variation at the boston python meetup the week before). I dropped in on the ORM panel, and the GAE talk (which was disappointing). Then I hit Bob’s “Drop ACID and think about data” which was awesome. I again ducked out to double check my stuff for my distributed systems talk. Also on saturday was the “Writing About Python” BoF, which was cool, but in which I may have over-expressed several cough strong opinions.
The video of my second talk is here. This one, my lack of confidence is apparent, and I’m still fidgeting. I think part of my problem is I like to express with my hands, almost like a spastic air traffic control man and holding the mic/trying not to fidget made my body just sort of spaz. This time though, I rushed from my talk into Alex Martelli’s excellent “Abstractions as Leverage” talk. After that, more people found me and picked my brain.
I can’t stress how awesome Alex’s talk was — much of my hallway discussion time was spent discussing abstractions (especially around distributed systems) with him.
We’ll see how my call for some cohesion and a real “django for distributed systems” call in my second talk goes. Everyone I have spoken to likes the idea and had a lot of great feedback, but lord knows I don’t have the time to lead it up right now, maybe soon.
Late saturday, was the teach me web testing BoF which I ducked into, and then past that the Testing In Python BoF which provided me much in the way of fun, ideas, discussions and uh. Beer. Yeah. I can’t exactly remember what I said when Titus put me on the spot to discuss “what sucks about testing in python”. But I do remember having some great laughs. I think the heckling got recursive at one point, not sure though.
Sunday came, and with it, my sorry attempt to sit in the “Functional Testing Tools in Python” panel — which was thwarted by a 45 minute bloody nose. Apparently Titus talked a lot, so I don’t think I missed anything. End of main con.
Before I move into the sprints — I want to point out that I had fantastic hallway discussions with tons of people — people I look up to, and people I’ve never met before. I had excellent lunches with groups of people ranging from the highly experienced to someone who has learned python a week before. I can’t say enough about the simple fact that you get to relax, hang out and just talk with all of these people. Python is defined by it’s community — and ours is pretty awesome.
The sprints
Monday morning, I was off to the python core sprint. I immediately started hacking on multiprocessing bugs — I think all told, I managed to close around 12 or so bugs by the time thursday morning came around. The sprint was awesome simply due to the fact I could look across the room/table and ask any number of core developers questions. Martin Van Loewis came to my rescue/aid a few times, and being able to bounce ideas off of everyone is pure unbridled awesome.
Having dedicated face to face time to beat on these bugs and share information/debate things is immeasurable. I also got access to snakebite thanks to Trent, who is still working out the kinks. Alas, even having access did not make cross-platform support (mainly the BSDs) any easier for multiprocessing. I spent a good chunk of my time futzing with virtual machines so I could do further work — I ended up cutting that short because I wanted to fix things at the sprints: not fart around with tool chains.
Other than hacking until late at night through the sprints, there’s was quite a fun night where bourbon flowed, and many partook — much fun was had by all. There’s nothing quite like having drinks and making awful threading/process/compiler jokes.
Bug fixes/patch work for multiprocessing:
In Summary
PyCon is simply getting better — I’m looking forward to Atlanta next year, if nothing more than for better weather. I got to talk to a lot of great people — Collin Winter, Thomas Wouters, Brett Cannon (be careful, he’s an odd one), Guido, Alex Martelli and many others. Having many hallway discussions with language users and encouraging them to get involved — PyCon is AwesomeCon — no where else do you get to hear so much great information, discussions and points of view.
All of the videos for this pycon are going up on pycon.blip.tv.
It was a great time, and I can’t thank everyone involved enough.
Ah, PyCon 2009 has come and gone. I'm a little late in doing a wrap up - but that's primarily due to the fact I wanted to spend time with the family, and not on the computer since I got back mid-day Thursday of last week. That - and other things in my life ...
March 28th, 2009 § § permalink
March 27th, 2009 § § permalink
February 23rd, 2009 § § permalink
Note:This is another post in what I hope will be a series leading up to my concurrency/distributed systems talk at PyCon. I’m steadily working through experimenting with and learning the various frameworks/libraries in the python ecosystem.
I reserve the right (and probably will) to revise these entries based on feedback from people (mainly the author(s) of said tool(s)). I will also add additional bits and pieces as I learn and explore more./Note
Stackless python — here’s another big one on the pile — is much more than a library, or a framework which runs on CPython — Stackless is actually a modified version of the CPython interpreter. It’s much more than just a C-extension. Stackless is in use by various people and companies — most notably, it’s in use by CCP Games, makers of Eve Online (see this pycon presentation). In fact, CCP Games is a large part of why Stackless is still around today.
» Read the rest of this entry «
Note:This is another post in what I hope will be a series leading up to my concurrency/distributed systems talk at PyCon. I'm steadily working through experimenting with and learning the various frameworks/libraries in the python ecosystem.
I reserve the right (and probably will) to revise these entries based on feedback from people (mainly the author(s) ...
February 21st, 2009 § § permalink
I, along with a whole heck of a lot of other people will be attending PyCon in march. You should know about this by now, unless you’re living under a rock, or in a shoebox (I like shoeboxes).
PyCon 09 is turning out to be one of the ones I am most excited about in some time — barring the fact they let me actually stand up and speak about something, there’s a ton of other excellent and exciting things going on.
I will be doing two talks — “Introduction to Multiprocessing in Python” on Friday, at 3:20 PM, and “Concurrency and Distributed Computing with Python Today” at 3:20 PM Saturday.
The former talk is easy, given it will be focused on introducing the multiprocessing module to the masses, and taking questions about it (be gentle, I just work here). The latter is a much bigger beast. I’ve been blogging about my research in my pycon 2009 category, and I still have a pile of things to keep adding to that. The talk will attempt to differentiate concurrency from distributed systems, and show the various toolkits/frameworks/etc in the ecosystem today, to help you build both types of systems.
Given both talks are 45 minutes in length, I will be publishing my talk notes (my slides are not going to be heavy weight) and other information here.
In addition to me speaking, which may or may not be exciting, there’s one helluva ton of other talks which simply look awesome.
My schedule looks like this:
- Thursday: Python Language Summit, where I will endeavor to be smart.
- Friday: How to give a python talk
- Friday: Using Windmill
- Friday: Introduction to Python Profiling or How Python is Developed, to harass Brett.
- Friday: Panel — Python VMs
- Friday: Building an Automated QA infrastructure using Open Source Tools
- Friday: Twisted, AMQP and Thrift: Bridging messaging and RPC for building scalable distributed applications
- Friday: My Talk (I figure I should go to it)
- Friday: A Whirlwind Excursion through Writing a C Extension or Challenges and Opportunities for Python
- Thursday: Plugins and monkeypatching: increasing flexibility, dealing with inflexibility
- Saturday: The (lack of) design patterns in Python or the Pinax talk
- Saturday: Class Decorators: Radically Simple
- Saturday: Panel: Object Relational Mappers: Philosophies and Design Decisions.
- Saturday: Drop ACID and think about data (I wonder if we can take this literally, if he has scary slides though, we all might trip balls)
- Saturday: My Talk, which is up against Bruce Eckel and Raymond H — I expect no one to show up.
- Sunday: Panel: Functional Testing Tools in Python
- Sunday: Designing a web framework: Django’s design decisions
This doesn’t even cover the open space discussions which I might attend — including the “Writing About Python” one Doug Hellmann is putting together as well as the “Teach Me Web Testing” one by Steve Holden.
After the main conference, I’ll be sticking around until Thursday morning for the sprints, at which point I should be sufficiently burned out on python stuff, I will fully convert over to being a full time burger flipper.
Right now there are 620 registered people who made their attendance public I don’t know how many there are in total.
Hope to see you there!
I, along with a whole heck of a lot of other people will be attending PyCon in march. You should know about this by now, unless you're living under a rock, or in a shoebox (I like shoeboxes).
PyCon 09 is turning out to be one of the ones I am most excited ...
February 11th, 2009 § § permalink
Note:This is the third post in what I hope will be a series leading up to my concurrency/distributed systems talk at PyCon. I’m steadily working through experimenting with and learning the various frameworks/libraries in the python ecosystem.
I reserve the right (and probably will) to revise these entries based on feedback from people (mainly the author(s) of said tool(s)). I will also add additional bits and pieces as I learn and explore more. Additionally, thanks to glyph for giving me a hell of a lot of feedback./Note
Twisted is the 800 lbs gorilla of the “concurrency” frameworks. It’s been around for awhile, has a large following — it’s used by everyone from Apple (iCal server) to Buildbot Buildbot. It has a literal ton of sub projects and other “semi attached appendages”.
» Read the rest of this entry «
Note:This is the third post in what I hope will be a series leading up to my concurrency/distributed systems talk at PyCon. I'm steadily working through experimenting with and learning the various frameworks/libraries in the python ecosystem.
I reserve the right (and probably will) to revise these entries based on feedback from people (mainly ...
January 31st, 2009 § § permalink
Next up in the GBLOSTR (great big list of stuff to review) is the Circuits library by James Mills (here and here) I’m familiar only with James Mills’ posts on python-list, but more recently, I know he’s been working on getting some level of multiprocessing into circuits — circuits was already on my research list, but I bumped it up on the queue because we started chatting.
Let me state this: these are slightly cleaned up versions of my notes as I am learning these modules — some of them have higher learning curves for me than others.
Circuits is, well — an event based “framework” (again, note the small f) based around the concept of Components (big C!) consuming/reacting and in turn generating events — all asynchronously.
James’ goals seem pretty simple — build something with no external dependencies, that’s compact (I should say, the core.py is < 500 lines) and that makes it easy to build scalable messaging based (event based) systems. Did he succeed — don’t know! Let’s dig in.
» Read the rest of this entry «
Next up in the GBLOSTR (great big list of stuff to review) is the Circuits library by James Mills (here and here) I'm familiar only with James Mills' posts on python-list, but more recently, I know he's been working on getting some level of multiprocessing into circuits - circuits was already on my ...
January 29th, 2009 § § permalink
Note:This is the first post in what I hope will be a series leading up to my concurrency/distributed systems talk at PyCon. I’m steadily working through experimenting with and learning the various frameworks/libraries in the python ecosystem.
I reserve the right (and probably will) to revise these entries based on feedback from people (mainly the author(s) of said tool(s)). I will also add additional bits and pieces as I learn and explore more. Code and examples will be checked into my pycon 2009 bitbucket site here/Note
For awhile now, I’ve been meaning to dig into Kamaelia but was largely put off by what I tend to call the “twisted effect”. What this means is that when I go looking for libraries and small components, I go looking for a library — not a “solution”. I also worry about the “once you go in, you must follow this paradigm” effect. I’m not going to say that these feeling continue to be founded, or are completely rational — after all, I am digging into it, yes? It’s the thought that once you adopt the “one true way of doing things” you’re trapped in that solution/framework “forever” — ironically, I love Django for it’s “conceptual integrity” and full-stack approach. No, I don’t understand me either.
» Read the rest of this entry «
Note:This is the first post in what I hope will be a series leading up to my concurrency/distributed systems talk at PyCon. I'm steadily working through experimenting with and learning the various frameworks/libraries in the python ecosystem.
I reserve the right (and probably will) to revise these entries based on feedback from people (mainly the ...