All Things Considered had a story yesterday on PostSecret, a web site which invites people to send in postcards with their deepest secrets, and have them posted online. Some of the secrets are poignant, and some and a little scary. But what an amazing way to connect people in collaborative art that can actually move people.

Oh, and in less interesting news, mozCC 1.0 is out. I guess I have to remove the bit about it being “pre-release software” now.

date:2005-03-31 10:19:35
category:mozCC, my life

What’s a .1 between friends?

OK, that’s embarassing. The ccPublisher 1.1 distributions didn’t get all the necessary supporting files, so the app crashed on Mac OS X. 1.1.1 available here.

date:2005-03-30 12:31:53

ccPublisher 1.1 Out

ccPublisher 1.1 is out. Get it here, or from Sourceforge.

This is a bug fix release, and fixes the following major bugs:

  • ccPublisher crashes when unicode characters are present in metadata
  • ccPublisher crashes under some circumstances when extracting metadata from MP3 files with existing ID3v2.2 tags
  • Media types other than audio and video are now uploaded to the opensource_media collection at the Internet Archive.

Now back to hacking on the 2.0 framework.

date:2005-03-28 21:33:34

PyCon Wrap Up

PyCon is over, and I head back to balmy Indiana tomorrow. Overall PyCon was once again an excellent conference. I will, however, remember this as “The Year of Stairs.” For the first time ever the conference was split between the 1st and 3rd floors of the Marvin Center at GWU, and as a result I climbed lots of stairs. And my room is on the 8th floor of Hotel Lombardy, which has a slow, small elevator with an actual elevator operator. So as a result I’ve been using the stairs instead. Am I ever out of shape.

As with past years, there’s lots I want to look into post-PyCon. So in no particular order:

  • I had the opportunity to talk about Roundup with it’s principal developer, Richard Jones. I’m hoping to modify a Roundup tracker to help manage crash reports from CC applications.
  • Yarn looked darn cool, and I want to explore the possibility of building a “desktop information client” that uses Yarn to consume email, RSS, etc. I’m just not satisfied with my current email clients, and Yarn looks like a very capable tool.
  • I want to take another look at Zope 3’s component API, and how it might work outside of Z3.
  • Traits looks like a cool way to do type checking and validation in applications. When they actually ship code, it’ll be worth looking at.
  • I want to download Chandler 0.5 when it’s available and see what I can do with it.
  • I want to look again at rule based “inferrence” engines.
  • Lots of efficiency and implementation talks made me want to download the source to Python and start seeing how Python works under the hood.

But first, ccPublisher maintenance release and catching up at work.

date:2005-03-25 17:42:53

PyCon Day 3

Today was the final day of PyCon. The day started with a keynote by Greg Stein on “Python at Google.” Before the keynote started we were sternly warned that Greg had been requested (by Google legal, I and others around me assumed) not to publish his slides, so we should take notes. With that preface, I was anticipating a “sneak peak” into Google’s secret sauce of Python. Too bad that wasn’t the case. OK, so it was interesting to know that Google considers Python to be one of it’s top three “approved” languages (along with C++ and Java), and that Greg’s intuition is that Google has more Python code than Java in use, but really, how interested can I be in the fact they use SWIG. It’s interesting once, but really, move on, folks. Overall, interesting, but it could have been done in about a third of the time.

After the keynote, I went to Fred Drake’s “Acceptance of XML in the Python Community” followed by Abe Fettig’s “Yarn: Working with Messages in Diverse Formats and Protocols.” Fred’s talk, delayed by technical difficulties can be summarized as follows:

  • Python has several ways to handle XML
  • Most of them are un-Pythonic
  • As developers, its our fault that the documentation isn’t better. Or, as he put it, “I know you don’t like to write documentation. Get over it!”
  • There should be “one way to do it.”

OK, so his points are not completely without merit. But frankly, if it pisses you off, present a working alternative, not a parental lecture. But that was just my take.

Abe’s talk, on the other hand, was really cool. Yarn provides a standard interface for messages of all types. Abe demonstrated the “Yarn Browser,” which was able to easily use Yarn to retrieve message lists from IMAP, mbox, RSS and Atom feeds. He also demonstrated using Yarn to retrieve an RSS feed, modify it in place (and see the XML change as you modified class properties), and emit it as Atom. Darn cool.

The final talk of the morning was Evan Jones’ presentation on improving the Python memory allocator. I didn’t realize that Python currently doesn’t free memory when objects are garbaged collected. The memory is freed up for future allocations made from that Python process, but isn’t released back to the operating system until the task terminates. Ouch. Evan wrote a patch which implements a freeing algorithm that attempts to be a little friendlier to resource constrained platforms. Tim Peters said it will probably go in for Python 2.5 (which Guido, incidentally estimated for early 2006 in his keynote yesterday).

After lunch I hung out in the network block, which could probably be more accurately be called the Twisted block. The first talk of the afternoon, “Fast Networking with Python” was actually Yet Another Optimization Discussion (YAOD), during which Itamar Shtull-Trauring talked about things which you can optimize to improve your network application performance. All good suggestions, but I don’t do enough I/O bound networking to make it that worthwhile. Of particular interest was his discussion on the most memory efficient way to copy and concatenate strings, especially in light of Evan’s earlier talk on the memory allocator.

By far the most interesting talk of the afternoon was Thomas Vander Stichele’s demonstration of Flumotion, a Python app that binds to GStreamer and provides a distributed architecture. In his demonstration, he showed how you can perform the video capture on one machine, the encoding on another, and the actual streaming on yet another. And it really, really works. Oh, and did I mention that it contains support for CC licensing, displaying the CC logo superimposed on the stream? Very cool.

Tonite I’m having supper with Shawn (whom I met at Abe’s session this morning) and his wife, because they are truly kind people who didn’t want me to just hang out in my hotel room tonite.

date:2005-03-25 17:10:19

PyCon Notes

I just noticed that Ted Leung is once again hosting PyCon SubEthaEdit notes. You can find the directory here.

In other social editting software news, there was an open space session on “SubEmacsEdit: Developing Social Editting for Emacs” yesterday (seriously, I can’t make this shit up). I wonder what the outcome was.

UPDATE: Here are the notes from my desktop apps talk. From the looks of things, I guess it went OK.

date:2005-03-24 19:49:23

PyCon Day 2

Today was presentation day, which understandably occupied most of my thinking. So I’ll address that first. My desktop applications talk went well, and I had good questions. I think I’ll be doing some fine tuning for PyUK in April, but overall I think I hit the points that I wanted to. My RDF was less successful, in my mind. I never quite got into the rhythm of the talk, and as a result I don’t think I was very successful in connecting with my audience. Hopefully they’ll check out the wiki page and be inspired by some of the details there.

I had dinner with my former boss, Latin teacher and mentor, Vern, and he had some suggestions. His feedback was that I seemed to “come alive” when answering audience questions, and that if I could inject that energy into the primary portion of the talks, I’d be much further ahead. He suggested figuring out what “story” I was trying to tell with each slide before hand, so they could serve as backup instead of main exhibit. Vern was also encouraging about the RDF talk. While he agreed that I didn’t seem to get into the rhythm of speaking, he didn’t think it was a bomb, and thought there was some good information in it.

This morning before I spoke I had the opportunity to see Ted Leung and Katie Capps Parlante from OSAF present on building Chandler parcels. I’m sort of interested in that. I’m currently really unhappy with my email clients (Thunderbird and Evolution), not because they’re not doing their jobs, but because I’m having trouble keeping track of everything. vFolders help some in Evolution, but I like some of the Chandler features they demoed today. Hopefully it’ll be minimally functinal “real soon now”.

After lunch I attended the block of “database” talks and saw two database projects which approach the domain very differently. Patrick O’Brien presented on Schevo, a framework for creating object database applications. Schevo allows you to create an object schema, and provides a built in data “navigator” which essentially generates the basic selection/deletion/query user interface for you. A key feature that wasn’t demonstrated but alluded to is the ability to version your schema and “evolve” your database as needs change (or are corrected, depending on the client, I suppose).

Ed Leafe’s presentation on Dabo was from the polar opposite position. Ed is a former (current?) Visual FoxPro developer, and Dabo is a framework for developing 3 teir database applications in Python. The major difference of opinion between the two presenters is the role of SQL and RDBMS. O’Brien was really frank in his distaste for SQL (really, does anyone like it?) and the constraints relational databases place on development, while Leafe clearly longed for the days when Fox was king and Access was a toy.

Overall, though, it was good to see two different, well thought out view points and projects in a domain I don’t work with much lately. The one area of overlap between those projects, though, is automatic UI generation. It must be in the water this year, as David Morrill demonstrated a similar feature in his talk on Traits yesterday.

Following the afternoon break I attended what I suppose you could call the “rules and triples” block of talks, of which mine was last. Yarden Katz’s talk on PyChinko was interesting, although I found myself longing for a demo. Katz and his colleagues have obviously thought quite a bit more about RDF than I want to, and I’d be curious to have seen their inference engine in action. Between the two RDF talks was Phillip Eby’s talk on writing rule-driven software using PEAK’s Dispatch. I think he had an important message, but the talk seemed designed for a larger time slot, and I found it difficult to follow the reasoning. Again, I think a working example, followed by discussion of the details would probably have kicked ass.

date:2005-03-24 19:44:57

Best. Man. Ever.


I’ve already mentioned that yesterday’s PyCon seesions were a little long, not ending until after 7. What I failed to mention is that when I returned to my room, a dozen roses sat on my desk.

“Hope you have a great week… can’t wait till you get home! All my love, Garrett”

He is the best man ever.

date:2005-03-24 19:14:46

Finding CC

We break from our continuing PyCon coverage to bring you this bulletin. Yahoo! has launched a Creative Commons search engine. You can search the Yahoo! catalog for CC licensed content, optionally restricting for either commercial use, or derivative permission.

I should note it was pointed out on Boing Boing that you can also restrict A9 search results for CC licensed results as well. For example, this search for eiffel tower.

date:2005-03-24 15:47:59
category:culture, geek

PyCon Day 1

So the first day of PyCon is over. After Jim’s exciting keynote about Python on .Net, I attended Bob Ippolito’s sessions on PyObjC (and introductory session and a hacking session). I’ve become really interested in Smalltalk lately, and (due to cosmetic similarities) Objective-C. I also continue to be interested in writing OS X applications a little closer to the actual OS.

Bob’s hacking talk was particularly interesting, as he demonstrated using PyObjC to inject code into running applications, or override implementation of particular methods. Pure evil, but darn cool.

After lunch I crunched email while watching John Hunter’s talk on matplotlib. Very cool, very straightforward. Makes me wish I had something to plot.

Other points of interest from day one:

  • David Morrill’s talk on Traits. Traits provide strong-typing (sort of) for Python, as well as a host of other facilities. For example, you can state that a variable should hold an integer from 0 to 10, and Traits will do validation for you. It also has some UI generation facilities, which seem to make it ideal for allowing non-geeks to extend applications.
  • Brett Cannon reported on his Master’s thesis, in which he modified Python 2.3.4 to do local type inferencing to see how much of a speed boost he’d get. The answer: not much. Sorta surprising, given last year’s talk on massive speed improvments with Starkiller.
  • Finally, the day closed (at 6:30 PM) with Jim Fulton’s talk on “A Layered Event System to Provide Method Extensibility”. He discussed events, and (tangentially) Zope 3’s component architecture. We’re dealing with some issues of 3rd party extensibility in ccPublisher 2, so I’ll have to look into whether or not this will help us out.

So yes, day one was long. Worth it, but long. After grabbing a burrito and heading back to my room, I spent the next two hours finishing my RDF talk and crashed. Slides are available here, and I’m actually more pleased with it than my Desktop Apps talk. We’ll see how they go.

date:2005-03-24 08:49:15