Ted Leung on the air: Open Source, Java, Python, and ...
This year folks from OSAF were around for 2 days worth of sprints. Jeffrey Harris had a very successful (I thought) sprint on vobject. This was a direct result of having the sprints after the conference, because most of the people at the sprint were not existing vobject contributors.
The Chandler sprint broke down into several sub groups. One group worked on a parcel to grab data out of 43 Things and integrate it into Chandler, one group worked on getting a very simple address book going, one group worked on importing and exporting Chandler data to VTODO and vCard (providing a nice tie to the vobject sprint), and there was also some work going on to try to figure out just why it is that Chandler is so slow on the Mac.
I paired with Ralph Green from the Dallas Pythoneers on the address book parcel. We've done a lot of work on the Chandler parcel APIs since last PyCon, and it looked like that made a big difference this year. Whereas last year it took people about a day and a half and a lot of hand-holding to get a parcel running, Ralph was able to get quite far with only minimal help from me. I've wanted to get some Person/Contact/Address Book functionality into Chandler (ahead of schedule) so that I could experiment with some ideas around linking web data to people and working with the social network that is nascent in your address book. So while what we did is pretty simple, I'm happy that there's now a starting point for experimentation.
This year's PyCon experience was different for me. While I did see a number of people that I knew, and had very good conversations with them, I didn't feel as much connectedness to people as I have at previous PyCon's. There are a bunch of reasons for that. A lot of people that I know were not here -- the DivMod guys didn't come, the SubEtha gang was totally not around, and a few other people were also missing.
I think that moving the sprints and the environment of the sprints had a big impact on this as well. By the time I got through the tutorial day and the 3 days of the conference, I was already tired, which made it hard to muster enough person energy for even 2 days of sprints (not to mention 4). Also, the sprint rooms had sliding dividers, which meant that the various sprints were pretty isolated from each other. So there was almost none of the spontaneous interaction between sprints that happened in previous years, and I missed that.
A final factor is that I spent a lot of time with Chandler people this year. The Chandler contributors are getting more geographically dispersed, so there are fewer opportunities for us to get together face to face. While this is the norm for open source projects, the OSAF staff has been centralized and is becoming more decentralized. This is definitely a good thing, and I see us taking advantage of face to face time just like the other projects.
I was very happy to see that PyCon was going to be in a single hotel this year. It did make it easier to run in to people. In previous years, things pretty much ended after dinner did, because people were scattered in various hotels. This year, people came back to the hotel and hung out in the lobby and various public areas.
As far as I could tell there were only two downsides to the conference. The first was that the hotel's wireless network was not up to the task of hosting PyCon. This isn't a surprise to me. Pretty much every time a tech conference goes to a venue for the first time, the venue's wireless networking get thrashed. The only real question is whether or not the venue recovers or not. The second issue is that I personally didn't care for Dallas as a location. Then again, I didn't particularly care for Washington D.C for the last few PyCons, either, so this is really just a minor complaint.
This post and the day 3 post were delayed because the iBook that I borrowed started freaking out the night before the sprints, and became so unreliable that I couldn't even get it to boot. Needless to say, this was pretty frustrating, especially since it hosed things for the sprints. Fortunately, Ralph had a computer so we were able to make plenty of progress. I just couldn't do much with e-mail or write any blog posts. When I got home last night, I plugged the machine in, hoping to coax it to stay up long enough to get a few critical files off of it. Instead, the crazy machine has been running all day.
Regular readers know that I usually write this post on the ferry home after some excruciatingly bad travel experience. If you're waiting for that report, you'll be happy to know that this year I got home from PyCon with absolutely no travel glitches at all.
Day 3 of PyCon was a short day -- things finished up around 3:30pm. I went to a number of solid how-to talks on topics such as Turbogears and Django. Unfortunately, I missed the PyPy status talk, which I later heard had some good content on managing an open source project. I'm sorry that I ended up missing that one. Due to some hallway conversation, I also missed the PyPy architecture session. This year's PyCon had far fewer programming language hacker kinds of talks. I have mixed feelings about this, since I generally find these talks interesting. However, it is probably better for there to be more talks on web stuff and application building.
The most interesting talk of the day was Martin Blais' talk on Nabu, which he calls a publishing system using text files. Martin is using reStructured Text as a way of marking up structured data (events, people, etc) in a reStructured Text document. He gave a timely example of a travel text file, which was to represent his trip to PyCon. In this file he had regular text describing various topics, and embedded in the text was marked up meeting information, contact information and so it. Nabu can process the file, extract all the marked up data, and then do a variety of things with it, including publishing a web page kind of view of all the data. While Martin says it's not a PIM, I think that it does some interesting things that PIM users might be interested in, particularly some of the 43Folders / life hacks crowd. Martin is very clear that this is not a "for your Mom" kind of tool, but if you are a keep it all in text files kind of person, and want to take things up just a little bit, I think it might be worth looking at. Most of the OSAF folks were in Martin's talk and it sparked some interesting discussions about Martin's work. The travel file example that he showed is exactly the kind of thing that we are aiming to be able to support using our collection system, so it was nice to see something that was similar in spirit.
Day 2 started off with Guido keynote, which was mostly a review of community activity and new stuff in 2.5. Most of the community projects that he called out had to do with stuff being done by the PSF, related the PSF infrastructure. I was surprised that he didn't call out the large amount of progress on web frameworks, especially given his recent interest in web stuff.
As far as the new features of Python 2.5, Guido said that 2.5 will have the most new stuff in it since 2.2. There's a fair amount of stuff related to expanding the usefulness of generators for coroutines and for managing various kinds of resources. I suppose that I'll have to go look at the PEPs for the new features, but my initial reaction was that it seemed kind of complicated, and that if you weren't scared of this stuff you wouldn't be scared of something like continuations either.
Brian Kirsch's I18N talk went pretty well. There were a good number of questions which were all practically focused, which is a good sign that other people are also struggling with building internationalized applications.
This year's Chandler BOF was one of the better ones. I attribute a lot of that to actually having enough software that questions shifted from "what are you going to do" to "can it do this". We did a brief demo of the latest version of Chandler and after that we had a lively back and forth about lots of topics. I hope that means that some people will be excited enough to join us at the sprints.
The most packed out talk that I saw so far was Ian Bicking's talk on Python Eggs. It was standing (and sitting) room only, which resulted in an encore presentation in one of the large ballrooms. I was really happy to see this, because this sort of thing has been long overdue.
Lightning talks are frequently among the best talks at conferences that have them. Here are that ones that stuck out to me:
- Titus Brown showed some cool web testing / debugging using twill and wsgi_intercept
- David Creemer from MerchantCircle talked about their experiences building a commercial web app using Python. A lot of their components are the same components in Turbogears
- Ben Collins-Sussman gave a very entertaining talk about his experiments in replacing himself with an IRC bot. I wonder if his Werewolf moderator bot will get broader distribution.
- Katie Parlante from OSAF showed off Chandler 0.6.1 and some of our recent parcels, including evdb/eventful and a Mac dashboard widget
Here's brief report on the first day of PyCon.
Almost none of the usual notetaking suspects made it to PyCon this year, and even if they had, the hotel's network appears to be Bonjour unfriendly. This means that unlike previous years, there aren't any detailed session notes to post.
The Django and Turbogears projects are doing pretty well on the marketing front as well as the technology front. The Turbogears people showed some very nice browser based UI building stuff. I've been looking for a web framework to do some poking around, and I've been looking a lot at Ruby on Rails via our study group on Bainbridge Island. I've been waiting till PyCon to check out the happenings with Django and Turbogears.
The first two OSAF presentations were prettty well received. Actually, there was more interest than I expected, so that was gratifying. A few people asked me why there was no Chandler talk this year. It was fun to watch their faces when I replied that actually there were 3 talks this year. I am glad that people are starting to see that we are contributing stuff back into the Python community.
I was really interested in the presentation on bzr. It was interesting to see some of the work that Canonical has done, not only on bzr, but tools around it, such as the patch queue manager and launchpad.net. I hope that people continue to work on bzr support for trac. Martin Pool rightly pointed out that people who are afraid of decentralized version control systems are afraid of a bunch of bad community things that can happen using these systems. He also rightly pointed out that these are inherently social problems, and I think that he is right. Just because you have a centralized system doesn't mean people are going to work together in a good way.
Perhaps flying overnight isn't the best idea. Between various factors, I didn't end up getting any sleep. Alaska Airlines managed to deliver us to Dallas about 40 minutes early, which put a crimp in my plans a bit.
My flight was originally scheduled to land at 5:45AM, and via sunrisesunset.com, I knew that sun rise in Dallas was around 7am. Factoring in the amount of time needed to deplane and collect my check bag, I figured that I might be done with all that just in time to catch the golden hour and grab some nice sunrise pictures of Dallas. Things moved a bit faster than I thought, and Dallas turned out to be quite cold (good thing I had my Seattle cold weather gear), so I ended up just heading for the hotel.
I spent the morning helping out with various aspects of the conference, including manning the registration desk. The coffee that I had over breakfast pretty much ensured that I wasn't going to sleep, so finding something productive to do was good. It was a great opportunity to see who was going to be around, and to greet people that I knew as they registered.
The reason that I came on tutorial day was to see the Agile Development and Testing tutorial. Normally I take a pass on technical tutorials, because I can usually learn more by reading the documentation for a project for 3 hours than I can listening to someone talk for 3 hours, unless the topic is difficult or unless the presenter is really good. Titus and Grig's tutorial was different because they have looked at a bunch of tools that are useful for agile development (I was mostly interested in testing), and presented what they felt to be the best tool set. Stuff that stuck out to me was nose, coverage,py, twill, and usage of the statistical profiler. This definitely saved me the time of trying to sift through the piles of projects that are out there.
The rest of the day turned out to be pretty low energy. From our hotel room we could see huge swarms of birds flocking back an forth between trees and buildings. So while Grant went to the panel for authors, I wandered out to the parking lot and tried to grab a decent photo of these bird swarms. I don't think that I got one, and now of course, I wish that I had brought the big lenses with me (I only brought a little bit of camera stuff).
Grant was gracious enough to put up with my skating mania, so I was able to see NBC's coverage of the ladies final. Commentary on that somewhere else, some other time.
[via Clever Name TBD ]:
If you are interested in WebDAV in Python, then you might be interested in Fred Sanchez's TwistedDAV:
Yesterday, I got an OK from Apple to release TwistedDAV, a Python WebDAV server add-on to twisted.web2 that I've been working on at Apple, as an open source project under an M.I.T. license.
Thanks to Luis Gonzalez for pointing me to Mark Dofour's ShedSkin project. ShedSkin is a Python to C++ compiler based on Mark's master's thesis work, and was one of the Python Software Foundation's Google Summer of Code projects. It looks like ShedSkin can compile a subset of Python, and runs on Windows, Linux, and OS X. Unfortunately, there are no published benchmarks, so it's hard to get an idea of how much of an improvement ShedSkin actually produces. Mark is looking for additional help, so you should definitely drop by his blog if you are interested.
[via hack a day ]:
Apparently Phil Zimmerman's latest project is based on shtoom:
The app is based on the shtoom project (open source VOIP written in Python) and the crypto is strapped ontop. A nice feature of the protocol is hashing part of the previous conversation’s key into the current conversation. If you and the other person read the hash aloud and they match it means that this conversation and every previous one has been fully secure.
He’s shopping the project around to venture capital right now to make a commercial product written in C. The source will still be free though.
Good thing Anthony is in town this week...
The DrunkenBlog has a great inteview with Jonathan Rentzsch, a big time Mac Hacker. Buried in there is a plug for Python and PyObjC:
Objective-C's big weaknesses today is its lack of a Windows story, its lack of automatic memory management and its method call syntax, in that order.
That said, my eye isn't on Java or C# to put the knife in Objective-C's back -- it's Python. Python addresses all the issues and PyObjC makes it easy to use Python with Cocoa. Indeed, PyObjC can do things Objective-C can't do by itself.
but later on he also says this:
Windows is so backwards that the ancient Objective-C/AppKit was better. C#, while not aimed at Objective-C per se, gets them closer. So let's widen the gap again. It's highly arguable if Python is "better" than C#, but from a control-your-own-destiny angle, Python is a complete slam dunk. Python works well on *nix, Java, .NET and Mac OS X. It's open source. It's sane.
But I won't argue it's fast. It's usually just not so slow you care. (grin)
Speed *does* matter.
Here's my report on day 3 of PyCon.
Greg Stein gave the keynote for Day 3. He talked a lot about how Google is using Python, which was pretty interesting. I had no idea that Google was using Python so much -- I bet that's news to the rest of the world as well. The SubEthaEdit crew did a really good job of transcribing the slides for Greg's talk. Simon Willison joined us for that SubEthaEdit session, apparently his first, and we met in person after the session was over -- courtesy of SubEthaEdit as IRC channel. I hope that the content of Greg's talk will make it easier for people to use Python.
Glyph Lefkowitz read my blog entry about being disappointed to miss his talk, so he invited me to sit with him during lunch and he did a practice run, so I got to see his talk after all.
My favorite talk of the day was Abe Fettig's talk on Yarn. Abe's talk got delayed (and I suspect a little shortened) by the talk before his going long. Yarn lets you convert messages in one format into another format, using various protocols. So if you want to get Atom over SMTP, you can do that, which is pretty cool. Abe is even turning Google search results and del.icio.us bookmarks into messages that can be manipulated by Yarn. It turns out that you can also search the messages, which is kind of nifty. Yarn preserves the underlying representation of the message, so that changing an attribute of an RSS message via Yarn's API, actually modifies the original RSS data. This is also pretty cool. I think that Yarn would fit really nicely with the import/export functionality in Chandler.
Itamar's talk on Fast Networking in Python was also educational.
My talk on PyBlosxom went pretty well, especially since it was in the last block of the conference, and opposite Glyph's talk. I did meet a few happy PyBlosxom users, and one person promised to send his patches to the mailing list, so I'm happy with that result. Will pushed out version 1.2 yesterday, too.
PyCon was really fun this year, although not quite as fun as last year because I actually had stuff to do during the course of the week.
A bunch of us OSAF'ers bolted after my talk ended, because I had a flight to make. At the end of the talk, Steve Holden remarked to me that he had read my account of getting home from PyCon 2004, and that he hoped I would have an easier time of it this year. You'll have to wait until the next post to find out the details of what happened, but suffice it to say that this post is being brought to you courtesy of US Airways, United Airlines, Alaska Airlines, Marriott International, the Washington State Ferries, and Mobilisa...
Today I was pre-occupied with Chandler stuff. Our talk this morning had a few demo glitches, but it seems like it was well received. I'm relieved that people seemed to connect with what we were able to show during the talk. Twenty minutes just isn't a lot of time, especially when most people have never seen or downloaded Chandler before. If you are interested in the details of what we talked about, the Wiki version of our paper is up, and there's a longer tutorial that goes with it. Our open space in the afternoon was also well attended, and people had lots of questions about what they saw. One of the attendees works for Wingware, and he was able to answer some questions that I had about Wing.
I went to the talks on PyChinko, PJE's generic function talk, and Alex Martelli's talk on generators/iterators. In hindsight, I wish that I had gone to Alex's other talk on Metaclasses and Descriptors. My graduate school minor was in AI, so a good portion of the PyChinko talk was a review. It is good to know that it is in the same space as cwm for when I (someday) get around to experimenting.
One more day of PyCon and just the PyBlosxom talk to give.
PyCon has a slightly different feel to it this year. I think it's due to the size and being split up across multiple floors of a building. It's still a fun conference, but it has a slightly less intimate feel to it. That probably doesn't impact the talks very much, but it does reduce the chances of running into folks in the hallways.
It probably also feels different because there are more OSAF people here this year. This year, we're more like some of the other projects. In addition to myself, we also have three people in the Eastern timezone who are working full time on Chandler. That means that we're using PyCon as precious face time, just like many of the other projects are. I missed most of the afternoon sessions while catching up, working through issues in person, and preparing for our presentation. The two presentations that I'm giving might have something to do with the different feel as well.
I did manage to make it to some sessions, though. The highlights of today was the Mac track, which included appscript and Bob Ippolito's two talks on PyObjC. Perhaps next year we'll start to see some other projects making use of all the good work that the PyObjC folks have been doing. The next best talk was Brett Cannon's talk on Localized Type-Inference. This was a "good science" talk, in the sense that scientifically, negative results are just as important as positive results (see the notes for the gory details). So while I appreciated the talk from that point of view, I was disappointed that type inference in the local cases is so hard.
Lots of the usual suspects are back from last year, so there is a decent sized effort to provide you with notes of the PyCon 2005 sessions. PyCon is much larger next year, so one of the auditoriums has not wireless, which may hamper getting transcripts of some of the larger talks.
The two groups have finished their parcels to the level where we can show them as part of our presentation on Thursday. I think this is great - It helps a bit with the presentation nerves as well.
Other happenings at the sprints:
PJE and Bob Ippolito have been hard at work on PythonEggs. This is going to be really good for Python -- it should make delivering applications of all kinds (including Chandler) much easier.
Best quote of the day: "You know what? I'll eat the microseconds."
Donovan Preston showed me his LivePage Test framework yesterday, and I forgot to mention it. Donovan is one of those folks who was doing AJAX stuff before the current AJAX hype got started. The stuff that I saw looked really useful for people who want to try to build richer in browser applications.
Day 3 was the first day of the Chandler sprint. We had two people who joined us with the goal of learning to write a parcel. We've split into two groups. One group is working on a parcel for working with del.icio.us bookmarks, and the other group is working on a parcel for grabbing pictures from Flickr.
A sprint like this is a good way to get live feedback, and we've gotten a lot of feedback so far. The two groups are making good progress. We spent a bunch of time getting infrastructure setup -- a subversion repository, some wiki pages to record notes, sorting out the various builds, and doing some tutorial/walkthrough. So it wasn't until after lunch until the groups sat down to work on their projects.
So far things are going pretty well -- it looks like both groups will get basic functionality done by the end of tomorrow, and I'd like to be able to show the fruits of their labor as part of our presentation on Thursday. We have gotten a lot of feedback about things that are hard, error-prone, or redundant. It's also clear that we need to work some more on documentation. So it feels like there's good information exchange - Bill, Mark, and Kragen are learning how to write parcels, and we're learning a lot about the kind of support that we need to work on.
I woke up late today -- the after effects of jet lag flying in the wrong direction (West to East).
People highlights of the day:
I officially met Richard Jones (who I'd knowingly met the day before) via his need to borrow a cell phone charger.
I also got to spend some time talking to Kragen Sitaker -- our orbits have slowly been converging over the years, and this was another step in that direction.
Technical highlight of the day
I fixed a bug in pysqlite-2.0 that kept it from building on OS X. The patch is going into SVN.
The Chandler sprint starts today, so things really start to heat up...
The PyCon sprints are underway. This year, the Zope sprint(s) seem to be the largest, as well as the sprint for PyPy.
The Chander sprint doesn't start until Monday, so in the meantime, I've been catching up on the day that I missed on the plane, and having good conversations.
I'm flying out for PyCon in the morning, so that I'll be there bright and early (especially for west coast time) for the sprints.
Here are the talks that I'm most interested in and why.
There are a pair of talks related to type inference. If we have to have static typing, I prefer to obtain it via type inference, as opposed to lots of declarations or optional declarations.
I've been interested in Roundup for a while - I could use something like it for personal use.
Python is a lot like Lisp in that there are lots of tricks that you can play. In fact, it's a lot like C++ for similar reasons.
- Descriptors, Decorators, Metaclasses: Python's "Black Magic"?
- Iterators and Generators: it ain't your gramps' loop any more!
PJE is talking about generic functions, and I'm curious to see where his explorations have lead him.
There are a bunch of sessions blocks where I am torn.
In one pair of blocks, Bob Ippolito is going to do intense coverage of PyObjC, which is of interest to me personally. If I'm going to do any heavy Macintosh programming, it's going to be via PyObjC.
opposite Bob's talks are a pair of talks on testing
In another block we have talk on Python on Series 60 (one of the reasons I bought a Series 60 phone
up against PyLucene, which I want to go to for moral support
up against Abe Fettig's Yarn, which I'm interested in for personal reasons.
And of course there had to be a conflict between my PyBlosxom talk
and Glyph's peer to peer talk
There is also the talk that Katie and I are giving on building parcels in Chandler, which is going to be challenging because 30 minutes just isn't going to be enough.
There's a lot of action happening at the sprints this year: There's a mega PyPy sprint, the core Python sprint, and probably a huge Twisted sprint. We are doing a 2 day sprint to build some parcels for Chandler. If we succeed, I'd like to show them during our talk.
And like any conference, there will be the hallway conversations, the conversations over meals, the late night hacking in the halls and more. I'm already tired thinking about it all. But it's going to be great fun. PyCon was the best conference I went to last year, so expectations are high for this time around. Things will be a little different this time around because there will be a lot more OSAF people attending.
I'm not exactly sure how much I'll be liveblogging PyCon. It is a ton of work to do it right, and the novelty of doing it has worn off. We'll probably do the SubEthaEdit thing like we did next year. Bear tells me he is bringing his wireless keyboard so he can type *really* fast. Given that he already types scarily fast, we're going to have to have a fire extinguisher handy for when the keyboard catches fire. If we do the SubEthaEdit thing, I'll be posting files here.
He envisions a world of cheap personal fabricators. He’s put together a prototype for $20,000 that includes a laser cutter, a sign cutter, and a milling machine that are all controlled through an extension to Python. They’ve put these in rural areas around the world. There is not just a digital divide, there’s a fabrication divide. He shows a video of kids in Ghana using one of these prototypes to make things they want. He shows how rural Indians fabricated a part for about $1.00 to test the quality of milk—something that’s very important to them. Local computers and technology for local needs.
Another step on the path to world domination?
A few notes:
The presentation on parcels in Chandler will given by Katie Capps Parlante and me, not just me.
Andi Vajda from OSAF is giving a presentation on the voodoo work he did to make pylucene work.
OSAF will do a sprint and a BOF as well. More details about that as it happens.
Unrelated to OSAF, I will be giving a talk about pyblosxom.