Socialtext 2.0 Released

Congratulations to Ross Mayfield, Peter Kaminski, Adina Levin, and all the excellent folks at Socialtext for the release of Socialtext 2.0. Even bigger props for slipping in “Purple Consulting” in the screencast. I’ve been cranking so hard over the past six months, I didn’t have a chance to congratulate them on their Open Source release last July, so now I get to combine my commentary here. (In fact, I’m sitting on a bunch of Wiki-related posts right now that I need to push out; a lot of really cool stuff has been happening.) That’s good, because I have plenty to say.    (L72)

Socialtext 2.0 is an important release for three reasons. First, it doesn’t just look good, it’s highly usable. Adina and Pete deserve big-time credit for this. They’ve spent months painstakingly experimenting and testing the design. More importantly, they haven’t just focused on making it easy to use, but they’ve also agonized over how to accomodate expert usage as well.    (L73)

Have they succeeded? I think the personal home base concept is great. I love the fact that Backlinks are visible on the page and get lots of love. I love their new Recent Changes interface (and I hope to see a Tag Cloud view of the all pages index in the next release). I hate the fact that a Recent Changes link is not on every Wiki page. Both Pete and Adina are well aware of this beef, and I’m also well aware of their reason for not including it. Testing and user observation will tell what’s better.    (L74)

Second, Socialtext 2.0 has a really cool REST interface. Chris Dent has been boasting about it for months, but I didn’t look at it myself until Kirsten Jones walked me through it last week. (Her WikiWednesday presentation from earlier this month is online.) It really is cool, and it’s also useful. Congrats to Chris, Kirsten, Matthew O’Connor, and Matt Liggett for their excellent work!    (L75)

What’s great about this API is that it could very well serve as a standard URI scheme for all Wikis. This would obviate the need for a separate SOAP or Atom API. You just have a regular Web app, and you get the API behavior for free.    (L76)

For example, Alex Schroeder‘s currently going through the same process that Chris went through a year ago with Atom and OddMuse. An easier way around this problem would be to implement these REST APIs.    (L77)

(This is also a great opportunity for me to mention WikiOhana again, which gained great traction at WikiSym last month and which now has a lively Wiki of its own. PBWiki recently announced its own Wiki API, which is a good thing. We are all part of the same Wiki family. Socialtext and PBWiki need to talk about how their two efforts can work together. That’s the WikiOhana Way.)    (L78)

The third important thing about Socialtext 2.0 is that it’s Open Source. (Big props to Jonas Luster and Andy Lester for finally making this happen.) Here’s the thing. I think the announcement a few months back was overblown by a lot of blogosphere hype. The reality of all corporate Open Source releases is that — in and of themselves — they’re mostly meaningless. Mostly, but not completely. The fact that Socialtext 2.0 is Open Source means that other Wiki implementations can benefit from the great work that the Socialtext developers have done, from the APIs to the user interface. That makes for a healthier ecosystem, which is good for everybody.    (L79)

That said, the reason the actual open sourcing of Socialtext 2.0 (and any proprietary software project) is mostly meaningless is that the license is a critical, but tiny part of what makes Open Source software interesting and important. The big part is the community and collaborative process, and a lot of other things besides an open license are required to make that successful.    (L7A)

Before Socialtext went Open Source, I spent many hours talking to a bunch of people there about the impending release. I wanted to know how committed they were to making this a truly open and collaborative software project, because I felt the potential impact on the Wiki community was enormous. The answer I got was complex. The fact that everyone was willing to talk to me with no strings attached, in and of itself, demonstrated a commitment to openness, and I’m still grateful for that. The code itself will be a short-term bottleneck, as it needs a lot of work before outside developers will find it compelling. I also think the licensing terms are weaker than they need to be, although I also understand the outside pressures that make it so.    (L7B)

In short, I think the spirit is strong within Socialtext to fully realize the potential of this Open Source project, but there are also roadblocks. Hopefully, external pressures won’t squash that spirit. If Socialtext ever fulfills its potential as an Open Source company, it will not only help the ecosystem, but it will also tremendously benefit Socialtext as a business.    (L7C)

Purple Numbers and WIKIWYG

For a while, it was looking like I was going to break another personal blogging record last month, then things got so busy I had zero time to blog whatsoever. That means I’m in catch up mode again, so as usual, I’ll post in reverse chronological order (which in the blogosphere is really reverse reverse chronological order).    (JYN)

Yesterday, I spent the afternoon at Socialtext, where they were having an all-hands meeting. They graciously invited me to participate in the Open Space segment of their gathering, which meant quality time with Chris Dent and a rare opportunity to evangelize the Church Of Purple together. Of course, Chris has been spreading the Purple religion at Socialtext for a while now, so it wasn’t as much about evangelism as it was about next steps.    (JYO)

As I’ve mentioned many times before, browser-based WYSIWYG editors are an exciting development because they allow us to make Purple Numbers transparent in the authoring process. Right now, when you edit a PurpleWiki page, you see the node ID tags (e.g. {nid 123}). This is impossible to get around with the default browser text-editing widget. However, with a WYSIWYG editor, you can hide the Purple Numbers while still maintaining their associations with a node behind the scenes.    (JYP)

That’s the theory, anyway. In particular, I’ve been excited about WIKIWYG ever since Ross Mayfield showed me an early prototype last August. I had a personal bias, since Chris Dent and Matt Liggett helped write it, as did Casey West and the inimitable Brian Ingerson, whom I finally met last weekend at Tag Camp.    (JYQ)

Yesterday afternoon, we discussed Purple Numbers and WIKIWYG, and it was good. Then in the evening, Ingy and I spent a few hours trying to get WIKIWYG integrated into PurpleWiki.    (JYR)

We didn’t quite make it. Our biggest roadblock was a bug we discovered in Mozilla’s design mode that we can’t do much about. (My days of statically typed languages are well behind me.) But, we got something somewhat working, and I learned a heckuvalot. You can play with our semi-working demo.    (JYS)

WIKIWYG seems well-architected and is easy to customize. For folks with relatively standard Wiki editing requirements, I highly encourage you to play with it. PurpleWiki has some special formatting funkiness (mainly due to the Purple Numbers), but we were able to get around this fairly easily. (This was also true thanks to PurpleWiki‘s model of parsing to an intermediate data structure, then using view drivers to serialize. I wish more Wiki engines did this. I know Magnus Manske is thinking about doing this for Mediawiki, and I think Janne Jalkanen is already doing it with JSPWiki.)    (JYT)

The Mozilla bug annoyed me, because it’s a show-stopper in some ways, and there’s not much I can do about it. I didn’t realize it, but all of the JavaScript WYSIWYG widgets actually switch to the browser’s “design mode” in order to handle WYSIWYG editing. As with many HTML editors, design mode does not handle structure cleanly, and you end up getting weird artifacts such as spurious break tags. Our problem was that we serialize node ID information as id attributes in the HTML tags. However, Firefox does not maintain those attributes correctly when you move content around.    (JYU)

I’ll report the bug (if folks have suggestions as to the best way to bring this to the right people’s attention, let me know), but it also puts the kibosh on my hopes for WIKIWYG and Purple Numbers. Even if the bug is fixed in the next version of Firefox, we’re still prey to all the folks using older versions as well as Internet Explorer or Safari, which have their own problems with design mode.    (JYV)

Chris and I discussed one workaround that I’m still pondering: render the Purple Number and have users be responsible for maintaining the association with the nodes. That’s the status quo, except users are doing it in WikiText rather than in WYSIWYG. Doing it in WYSIWYG certainly lowers the bar, and it’s probably the next best thing for us to do.    (JYW)

BAR Camp 2005 Redux

Thoughts on BAR Camp. Yeah, yeah, a little late, I know. Less late than the rest of my Wikimania notes, though.    (JQX)

Many Hats    (JQY)

The most bizarre experience for me at BAR Camp was the number of people I knew from different worlds. My brain was constantly context-switching. It made me painfully aware of the number of different hats I wear, all in the name of Blue Oxen Associates.    (JQZ)

  • Purple Numbers guy.    (JR0)
  • Wiki geek.    (JR1)
  • Identity Commons contributor.    (JR2)
  • Doug Engelbart translator.    (JR3)
  • Usability guy!!! Obviously because of the sprints I’ve organized, but awkward for me, since I have no actual background in usability.    (JR4)
  • Pattern Language hat. I’ve been doing the collaboration Pattern Language dog-and-pony show the past few months, and some folks who’ve heard me speak on the subject were there. I’ll be doing a lot more of it too, so stay tuned. Patterns are damn important, useful, and interesting.    (JR5)
  • Facilitation / event organizer hat.    (JR6)
  • Nonprofit hat. The lack of nonprofit contingent was disappointing, but I had a good conversation with Ho John Lee, who’s done some great work in that space. (We were also both wearing our Korean hats, along with Min Jung Kim, a rarity at events like these.) I also met Phil Klein, a nonprofit guy who also participated in our usability sprint the following week.    (JR7)
  • Ex-DDJ hat. Some fogies, young and old, remembered me from my magazine days.    (JR8)

All this was testament both to my ADD and to the job Chris Messina, Andy Smith, and the other organizers did in only one week. Three hundred people walked through the doors over the weekend. Amazing.    (JR9)

Talks    (JRA)

The best part of the event was strengthening familiar ties and building new ones. I met lots of great people, including folks I’d only known on the ‘net. I wasn’t blown away by the talks for the most part, but some stood out.    (JRB)

  • Ka-Ping Yee did two talks, one on voting methods and another on phishing. Sadly, I only caught the tail end of the latter, but the Wiki page is fairly complete. I’ve never seen Ping do anything that I didn’t find interesting or, in many cases, profound, and these talks were no exception. (I’ll have more to say on Ping’s latest work in a later blog post.)    (JRC)
  • Xiong Changnian presented some interesting quantitative analysis of the Wikipedia community. I didn’t have as much of an opportunity to talk with Xiong as I’d like, but for those of you who have interacted with him, try not to be turned off by his bluster. He’s doing some good work, and he seems to mean well.    (JRD)
  • Rashmi Sinha and I did a roundtable on Open Source usability on the first night. Afterwards, we both agreed that we didn’t learn much new, but simply having the conversation and especially listening to a new audience was valuable. One unintended outcome: A participant (who shall remain nameless, but not unlinked!) complained about Socialtext‘s usability, which I dutifully reported on the Wiki. Adina Levin and Ross Mayfield quickly responded, saying they’re looking to hire a usability person. If you’re in the market, let them know.    (JRE)

I was so busy chatting with people, I also ended up missing a bunch of good talks: Rashmi’s tagging session, Rowan Nairn on structured data for the masses, and Tom Conrad‘s Pandora talk, which seemed to generate the most buzz at the camp.    (JRF)

Throwing Great Events    (JRG)

I toyed with the idea of doing a techie session, but in the end, the talk I should have done was one on patterns and throwing great events. BAR Camp was great, and as with all great collaborative events, there were some common patterns:    (JRH)

  • Food. One of the most critical and, amazingly, most overlooked element in an event. Lots of credit goes to Kitt Hodsden, who made sure there were enough snacks to feed a small country, and the sponsors, who kept the beer flowing and underwrote the party on Saturday night.    (JRI)
  • Introduce Yourself. The organizers borrowed the FOO Camp tradition of saying your name and three words to describe yourself, and they did it each day.    (JRJ)
  • Shared Display and Report Out. Folks did a great job of documenting on the Wiki and on their blogs and Flickr. BAR Camp owned the foobar Flickr fight.    (JRK)
  • Backchannel. I’m not a big fan of IRC at face-to-face events, and there were definitely times when I thought it detracted from the face-to-face interactions. But, it was there, and it was useful. It wasn’t logged, though.    (JRL)
  • Permission To Participate. Lots of Open Space techniques were present — again, borrowed from FOO Camp — like the butcher paper for scheduling sessions. Lots of this was also cultural, though. I think this is the hardest thing for folks who do not live in the Silicon Valley to get — the spirit of sharing that comes so naturally to folks here.    (JRM)

I’d do two things differently at the next event:    (JRN)

  • Incorporate a ritual for new attendees to make them feel welcome and to avoid clique-formation.    (JRO)
  • Add slightly more structure. Now that the organizers have done it once, they can use it as a template for the next event — for example, publishing the time slots ahead of time, and actually enforcing them, at least as far as room usage is concerned. Also, I like scheduled Report Out sessions.    (JRP)

In the postmortem, we talked a bit about what BAR Camp is supposed to be, and I really liked how Chris positioned it: As a model for organizing grassroots, free (or very cheap) alternatives to more expensive gatherings. I’m toying with the idea of incorporating BAR Camp-style alternatives to complement some non-free events I’m organizing.    (JRQ)