Thursday, May 01, 2008

Twisting the Planet

As Steve blogged the other day, we've been jamming on some Twisted lately. But it's not the kind of thing you usually hear from us. We're not doing something esoteric and mind-blowing. We're doing something much harder: working out how to bring Twisted to the masses.

The motivation for this is philanthropic: we believe in Twisted's goodness :-) As Allen Short paraphrased on IRC the other day after listening to MIT entrepreneur Raffi Krikorian "it sounds like he's saying Twisted makes you smarter." Humor aside, Allen is right. Twisted does make you smarter: with increased familiarity and experience, you start thinking outside the box. Twisted helps you become a more creative problem solver.

In particular, we're reviewing the "Teach Me Twisted" open space session we had at PyCon. A bunch of you showed up for it, and the energy in that room was just phenomenal. 30 minutes after the session, people were still talking excitedly about what they were learning or how they were using Twisted or just sharing their love for the code :-)

For those of you that missed it, Steve Holden was the headliner while Alex Martelli played impromptu co-star. The humor and enthusiasm from these two was just incredible. Glyph, Itamar, and Chris played educators while JP, Zooko and I handled one-on-one questions in the audience. There were more players, but you get the point: it was a highly dynamic, lively and fun experience. Folks were so jazzed that conversations that night lasted long into the wee hours of the morning.

After almost two months' worth of post-PyCon follow-up, we're finally getting around to comparing notes. My biggest concern is for the absolute new-comer and the lack of intuitive and useful metaphors that would help aspiring Twisted users grasp the event-driven concepts of our code quickly. Steve and I are both interested in establishing a Proper and Good motivation for using Twisted. My girlfriend, who has a Masters in anthropology, was also there. Thanks to her insight and background, she has a completely different perspective of the community (and the new-comer dynamic at the session that night) and has some completely unique ideas for crafting a new generation of tutorial materials.

We're just getting started, but it's quite exciting. We expect to have more thoughts to share on the matter... in the form of materials as well as potential news items.

One last parting thought: despite the rumors and well-earned reputation to the contrary, Twisted coders are not exclusionists: everyone's invited to the party. We're just trying to make it easier to get there :-)


  1. As mentioned on Steve's post, we stole his format for our second Italian Python conference, and will have two such sessions: "Teach me concurrency" and "Teach me Twisted".

    Any further insight or suggestion you have about it would be very valuable. :-)

  2. Cool -- yeah, I saw your comment there. Steve's right, too: nice sponsor list! I was looking hopefully for Ferrari, but alas! It was nowhere to be seen ;-)

    Hrm... suggestions. At the moment, no. But I would implore you to listen very carefully to the kinds of questions that the new-comers have, with the intent of identifying general patterns in conceptual misapprehensions or misunderstandings. If someone can walk around the room and assist folks with some one-on-one attention, that would be great.

    I have a feeling (unsupported by any substantive statistical data) that we loose most of our potential users and future community members in the very early learning stages. If we can learn to communicate some powerful and expressive metaphors at that part of the learning process, we could fix that problem...

  3. I am glad to hear about this. Maybe you could do a traveling twisted show to user groups all around the United States. Of course a really kick ass screencast wouldn't hurt either :)

  4. Noah, I love the "traveling show" idea :-) It's starting to approach some of the other ideas we've got planned... As for the screencasts, they are definitely in order. However, they will likely be for our more visually oriented stuff (like a quick web app using Nevow or getting started with Mantissa).

  5. I was one of those lucky enough to just be in the room. I'd heard a bit about twisted before attending PyCon 2008 and thought that it was probably too far beyond my grasp to pursue. The session made it obvious that with a bit of code I could create my own asynchronous server application to provide info (process status, data lookups, whatever) to applications without holding those applications hostage while waiting for a reply. (This is true, isn't it?)
    In short, as a total new-comer to twisted, I left with the knowledge that I could use twisted to do some immediately useful stuff that would have been either hard or impossible without twisted. No web app, no Nevow, no Mantissa for me, just something I can use to make the stuff I'm doing now work better now.
    I'd love a screencast that goes no farther than what Steve learned in that session. (Or even the code that was developed in that session) I'd probably send the link to other non-twisted users that I think would be likely to find it useful. Now, what is a deferred anyhow? How do I do that?
    Steve's session was a dramatic demonstration of how twisted can be productive for people who didn't even know they needed it, and were not about to spend a lot of effort learning about it - at least until they saw what it would do with relative ease.