The Pete Paradox

Peter Kaminski has a great maxim, which those of us who know and love him commonly call The Pete Rule:    (K8N)

“Time together in person is too important to spend working.”  T    (K8O)

I think it’s a great rule, but there’s a corollary, which I’ll call The Pete Paradox:    (K8P)

Time together in person is the best time to work.    (K8Q)

I actually had a specific experience with Peter last October that led me to think about this paradox.    (K8R)

At RecentChangesCamp earlier this month, I faced this paradox first-hand. On the one hand, I didn’t want to waste the opportunity to really get to know some of the excellent folks in the Wiki community who aren’t local to the Bay Area. On the other hand, I had some specific things I wanted to work on — namely SisterSites with Ward Cunningham and other Wiki developers and a YADIS implementation with the good folks at JanRain. Working on these projects meant breaking away from the larger group, popping open the laptop, and focusing on the work at hand.    (K8S)

The paradox resolved itself to my satisfaction. I got both projects done. We implemented SisterSites in PurpleWiki and a bunch of other Wikis, and Brian Ellin and I wrote a YADIS library in Ruby. I met several interesting and cool people for the first time, including Brian, and, I got to know folks like Bayle Shanks a lot better. On the second night, after the conference party, I decided to go to the main ballroom to check my email, even though I was exhausted. The ballroom was empty at first, but about half an hour later, Bayle showed up. We had met at WikiSym, but this was the first time we had a chance to sit down and really talk, and we stayed up past 3am. That was excellent. I had already known that Bayle had done some cool stuff, but it was great to dig deeper into his ideas as well as to talk about non-Wiki stuff.    (K8T)

I even got to discuss The Pete Paradox with Pete in person. (How’s that for meta?!) And here’s how I finally resolved it in my head. Both The Pete Rule and The Pete Paradox are about maximizing engagement. When you are working closely together, you are engaging in a way that is not only more productive, but more meaningful. Face-to-face time spent working can be a waste, but face-to-face time spent truly working together usually isn’t.    (K8U)

The Thrill of Pair Programming

I have a lot of different passions, which is lucky in a lot of ways, and unlucky in others. It’s lucky because it makes life incredibly fun. It’s unlucky, because life is finite, and I don’t have time to delve as deeply into things as I would like. It’s why I knew I would never become a professional programmer.    (JZB)

This past year, I spent most of my time doing field work and thinking about social processes. When I switched into technical mode, it was as an architect or a pundit, not as a programmer. And that’s the way it should be. It’s the right mode for me professionally and personally. Besides, the less time in front of a computer, the better.    (JZC)

However, that’s changed these past few months, as I’ve had to wear my coding hat for a variety of reasons. And I have to admit, it still gets me going. My skills have degraded a lot over the years, more from disuse than age, but I can still get it done. It makes me feel like one of those clean-cut, Midwestern types who comes home from his nine-to-five job, then plays poker all night at some seedy underground club. It’s liberating.    (JZD)

In particular, I had fun Pair Programming with Peter Kaminski a few weeks ago and with Brian Ingerson last night. Both of those efforts were toy one-offs, but they were great fun nevertheless, and it got me thinking. Coding with others, and pairing in particular, is one of the most intense, enjoyable collaborative experiences one can have. Read Evan Henshaw-Plath‘s account of his recent Ruby On Rails sprint with Blaine Cook and Kellan Elliott-McCrea, and you’ll see what I mean. It’s the sort of thing I never get to do anymore.    (JZE)

I know a lot of great coders, and I love talking shop. And, I still want to spend as little time as possible in front of a computer. But, I’m going to make a concerted effort to pair with folks at least once every few months. If you’re in the Bay Area and are in the mood to code up something that is small, cool, and will improve collaboration some way, somehow, let me know.    (JZF)

Fighting WikiSpam: Eaton and Shared Blacklists

WikiSym 2005 was awesome. Massive props to Dirk Riehle and the program committee for throwing an outstanding event and drawing tons of great, great people. With Wikimania last August and WikiSym this past week, the Wiki community is really starting to gel. And it’s about time. Can you believe Wikis are 10 years old?    (JXD)

Now the bad news: I walked away with some action items. How do I get myself into these messes?!    (JXE)

The first action item can be traced back to an ad hoc meeting that happened at Wikimania regarding WikiSpam. On August 6, a group of Wiki developers — me (PurpleWiki), Alex Schroeder (OddMuse), Brion Vibber (Mediawiki), Thomas Waldmann (MoinMoin), Sven Dowideit (TWiki), Janne Jalkanen (JSPWiki) — along with John Breslin and Jochen Topf, got together to discuss ways we could collaborate on fighting WikiSpam. Our goal was to identify the simplest possible first step and not to get mired in process discussions.    (JXF)

Since all of us were already maintaining URL blacklists, we decided to merge them and host it as a Sourceforge project. We agreed on a standard format (which I’ll document and post soon), and we agreed to send our respective lists to Alex, who already has scripts to slice, dice, and merge.    (JXG)

One of my action items then was to create the Sourceforge project. I did that immediately, but for some reason, the project was rejected. Thus began a month-long go-around with Sourceforge support where I tried to discover why they had rejected the proposal. In the end, the project was approved, and I never got an answer as to why it was rejected in the first place. At that point, I was mired in other work, and so I never followed up.    (JXH)

WikiSym was the kick in the butt I needed to follow-up. On Sunday, Sunir Shah hosted an antispam workshop, which about 40 people attended. First, Sunir reviewed techniques (many of which are listed at MeatBall:WikiSpam). Then we broke out.    (JXI)

In my breakout, I described what we had agreed on at Wikimania. Then Peter Kaminski described a very cute idea he had for making it easy to fight WikiSpam. In a nutshell, Peter suggested we write a simple drop-in replacement CGI wrapper that would filter a POST payload for spam and call the real CGI script — be it a Wiki, a blog, or anything else — if the payload were spam-free. Such a wrapper would enable users to install spam-protection for any CGI script without having to write a single line of code and without having to do any complex configuration. It wouldn’t require any special access to your web server, since it would just be a CGI script. And you could easily add other spam-fighting measures, such as throttling and IP blacklists.    (JXJ)

I thought it was a brilliant idea. So Peter and I sat down afterwards and whipped it up. Took about an hour. It’s called Eaton, it works, and it’s Public Domain. Peter Kaminski has already blogged about it, and there’s some important commentary there from Jay Allen, the creator of MT-Blacklist.    (JXK)

It’s a proof of concept, and it won’t scale. It can and should be improved, and I’d encourage folks to do so. Nevertheless, it’s pretty cool. Bravo to Peter for a very clever idea.    (JXL)

By the way, the first person to figure out the origins of the name “Eaton” wins a cookie.    (JXM)

WikiMania 2005 Redux

[I originally wrote this two days after the conference, but because of limited Internet access the past few days, I couldn’t post it until today. -EEK]    (JME)

Wikimania is over. What a whirlwind three days. I’m so glad I came early for Hacking Days, because it gave me a chance to meet key members of the community in a relaxed environment, the calm before the storm as it were. That I was able to blog my impressions each day is proof of that.    (JMF)

Blogging during the conference itself turned out to be impossible. I had no time to get away and gather my thoughts, at least on my computer. Ross Mayfield mentioned a Peter Kaminski maxim during my talk: Face-to-face time is too precious to waste working. Well, I embodied that philosophy this past weekend. I met people from roughly twenty different countries and managed to spend quality time with most of them. (According to Florence Devouard, there were 52 countries represented among the 300 participants and speakers.)    (JMG)

Right now, my body is complaining about the cumulative effects of repeated late night sessions over too much beer and apfelwein, but my mind and spirit are refreshed. Each day, a different group of us shared stories, laughed, and argued about international politics, Wikis, Fleischbutter, and our compatriots, families, friends, and selves.    (JMH)

Now, I find myself both moved and troubled. This is not the first time I’ve walked away from a great event like this and felt this way. In many ways, this gathering embodied what communities and collaboration should be about. The danger is that we might view it as the way things are. They’re not. Many of us will return to our banal lives, bracing ourselves for the inevitable stack of work that accumulated in our absence. Some of us will return to homes that practice rampant censorship, to populations with miniscule literacy rates and significant poverty. All of us return to a world that is dangerously volatile, where tensions between our respective countries are taut and frayed.    (JMI)

Did our little gathering make the world a better place? Sure. It will take years for our new and strengthened ties and our newly broadened perspectives to noticeably change the world, but the effects are real and will reverberate and grow over time. However, these changes are also barely apparent now, and the work that we must continue to do is daunting.    (JMJ)

In the end, I walk away from this conference a little wiser and a little scared, with a lot of hope and a renewed sense of purpose. More importantly, I look forward to the new partnerships that will inevitably emerge, and I wait excitedly to see my new friends once again.    (JMK)

I’ll have more to say about the conference itself, but not this week. This week, I’m in Berlin, exploring a great city that has changed so much in only fifteen years and spending time with old friends and new.    (JML)

[Berlin was fantastic! I’ll blog extensively about it next week after I post the rest of my Wikimania thoughts. -EEK]    (JMM)

People Time

Adina Levin quotes Peter Kaminski:    (21Y)

“Time together in person is too important to spend working.”    (21Z)

Reminds me of something Paul Visscher and Jason Cook told me when I had dinner with them a few weeks ago. I was asking about the hacker community in Dayton and whether folks ever got together to do code sprints. Paul responded, “When I get the chance to see these people in person, I’d rather just hang out with them.” Jason told a story of how he went to one local hacker gathering, where everyone was in a circle, staring at their laptops, something he found rather unappealing.    (220)

To some degree, it shows how spoiled techies are in the Silicon Valley. There are so many of us here, doing code sprints doesn’t necessarily interfere with socializing. When Seb Paquet met up with me in December, he had just come from Marc Canter‘s party and was in awe of how easy it was to run into cool and interesting folks — not just techies — around here. (Hey Marc, where was my invitation?!)    (221)