Monthly Archives: October 2012

Introducing Participad: Realtime collaboration for WordPress

Today I’m releasing the first public beta of a new WordPress plugin: Participad. Participad integrates an Etherpad Lite install into your WordPress installation, enabling realtime collaboration on the WordPress Dashboard or the front end of your WP site. If you’d like to download Participad, learn more about its features, or play with a demo site, check out participad.org. In the rest of this post, I’ll give some of the technical background about Participad, and some explanation of why it was built.

Participad was developed as part of some work I’m doing for thatcamp.org. If you’ve even been to a THATCamp unconference, you know that the first thing that generally happens in a session is that someone starts a Google Doc for collaborative notes, and tweets the link to the #thatcamp Twitter stream. In one sense, this is great – it’s very much in the spirit of THATCamp to have shared, crowdsourced, online notes for each session. But Google Docs, for all its coolness, is not the ideal tool for the job. For one thing, Google Docs are tied to a user’s account, making it very difficult to assemble a persistent, searchable archive of all THATCamp notes. There’s also the concern of storing user-generated THATCamp content on Google, which is alternatively benificent and malevolent, depending on the swings of the market.

Etherpad provides an ideal solution to the Google Docs conundrum. It’s a free software project that can be locally hosted, giving organizations and admins full control over the software and the data within. Etherpad has recently been rewritten as Etherpad Lite, an implementation in Node.js that is far more lightweight and easy to install than the original Etherpad, and, notably, has a rich REST API for integration with external software. This is what makes Participad possible: Participad uses iframes to display the Etherpad interface inside of WordPress, and then uses the EPL API to sync content between Etherpad Lite pads and the associated WordPress posts.

Participad is shipping today with three “modules”, each of which is a separate implementation of Etherpad Lite in your WP installation:

  • Notepads are the solution to the THATCamp/Google Docs problem described above. Notepads are a WordPress custom post type that can be created and edited from the front end of the blog by any logged-in user. Participad comes with a widget and a shortcode for displaying the Create A Notepad interface. And Participad redirects the Edit link seen on the front end of WP blog posts, so that it leads to a front-end editing interface. Content is synced back to the WP database every two minutes, or whenever a user clicks away from the Edit interface. In the spirit of THATCamp, Notepads can be “linked” to WordPress posts and pages, and a Participad widget can be placed in a sidebar that will display a list of a post’s Notepads. And because Notepads are just a species of WordPress posts, you can access lists of Notepads via an archive page.
  • Frontend is the Participad module that allows you to enable front-end, Etherpad editing for *any* WordPress content type. Turn it on, and the Edit link for any post will lead to an Etherpad interface, embedded in your theme where your static content would normally appear. Participad has a permissions schema that works with your WordPress installation, ensuring that only the users with the proper rights to edit a given piece of content through WP are able to edit that content through Participad as well.
  • Dashboard enables Etherpad editing throughout the Dashboard of your WP installation. All Edit screens – posts, pages, and other posts types – will have their WP editors (the Visual and HTML tabs) swapped out with a Participad tab. Autosave works just like it does in WP, and content is synced back to the WordPress database when you click Publish or Update.

I have a feeling that these three modules will cover most of the potential uses of Etherpad in WP, but if you have an unusual need, Participad is designed to be extensible. Build your own module by extending the Participad_Module class, in your own WordPress plugin.

Full instructions on setting up Participad can be found at http://participad.org/faqs/. Please note that Participad requires a separate Etherpad Lite installation, and for the moment, that installation must be accesible on the same domain as your WP install.

If you’d like to follow development, contribute fixes or improvements, or suggest future features, please visit Participad’s development home at github.com/boonebgorges/participad.

A few highlights from BuddyPress Vancouver 2012

BuddyCamp Vancouver 2012

The first-ever BuddyCamp was held last weekend in Vancouver, in conjuction with WordCamp Vancouver. It was a fantastic event in so many ways. Here are a couple of personal highlights for me:

  • First and foremost, it’s always a thrill to spend face time with people I work with remotely. My Wisconsinite-in-arms John and I have worked closely for years on BuddyPress, and we see each other a few times a year at WP events. I’ve worked with Ray and Bowe for nearly as long, both on free software projects and client work, and this weekend was my first time meeting either in person. The list of other current-and-future-BP-community-members I met IRL for the first time this weekend is too long to spell out here. But there’s no question that these connections were the best part of the event.
  • Had a great time on Hack Day, where I believe I gave props to eight different people in commit messages – several of whom were first-time contributors. Of special note was #4600, which took me and Stéphane Boisvert a good 90 minutes to sort out. That’s the kind of over-each-other’s-shoulders, team bugfixing that I wish I got to do more of.
  • It was a pleasure to have Matt in attendance. Somehow, we’d never managed to meet each other before this weekend. He was generous with his thoughts on the state of BuddyPress and directions for further development, and he was gracious about those points where he and I disgreed (aside from the “intellectually lazy” line ;). Gave me lots to think about.
  • I hesitate to call BuddyPress’s founding developer a “prodigal son”, but it was certainly a kick to commit Andy’s first contribution to the project in several years!

The fact that this kind of event took place in the first place – much less that it was so successful – is, I think, hugely important to BuddyPress. It demonstrates that there’s a vibrant community around the software and its uses, the kind of cohesion that makes meetups like BuddyCamp worth traveling for. So I’d like to extend my sincere thanks to the organizing team of BuddyCamp Vancouver, whose hard work enabled a really incredible weekend for a lot of folks (or at least for me!): Cyri Jones, Joey Kudish, Jill Binder, Roland Frazer, all the BCIT and Capilano University students who helped out, and to the sponsors who made it possible. Thank you all so much!

Now, who’s gonna organize the next BuddyCamp? :)

Antholocheers

Totals

Antholocheers

I’m happy (and, frankly, a little surprised) to announce that my campaign to fund a round of Anthologize development, which ended last night, successfully met its funding goal of $2,500. Donations came from friends and strangers; individuals and organizations; and from the WordPress, ed tech, digital humanities, and other miscellaneous communities of awesomeness. Close to $1,000 (or more, depending on how you count – more on this in a moment) came in within the last 24 hours.

First off: Whoo! And thanks!

Second, here’s an exact breakdown of the funds:

  • The final tally from the Indiegogo campaign was $2,665.
  • I got an email late yesterday from the team in charge of the OpenLab project at CUNY City Tech. They pledged an extremely generous $1,000 for the Anthologize campaign. For bureaucratic reasons, their donation couldn’t come through Indiegogo, so we’ll be working out a different way to deliver the funds.
  • The Roy Rosenzweig Center for History and New Media agreed (amazingly) to match, dollar for dollar, all donations to the campaign. Their contribution comes to $3,665.

This gives us a grand total of $7,330, which translates to about 98 hours of development time. It’s worth saying again: Whoo! And thanks!

Next steps: In the upcoming week or so, I’ll be reaching out to donors to collect any information necessary for their awards: mailing addresses, links to their websites, etc. Over the course of the next few weeks, I’ll be talking to other members of the Anthologize dev team about a roadmap for using these dev resources. And I’ll be starting to work down those 98 hours around the middle of November, when my work schedule eases up a bit. That’s also when I’ll start blogging in earnest about progress on the plugin, as well as some more general thoughts about crowdfunding for this sort of project, about the viability of free software projects not owned by any specific institution, about the role of Anthologize in publishing, and other such philosophical delights. These posts will “sponsored by” the contributors who pitched in $75 or more, which means that I need to write at least 15 of them :)

I’m looking forward to the next stage of Anthologize. I hope you are too – you made it happen.

For your keyboard health

It only took a few months of working full-time with computers for wrist fatigue to kick in. After a stretch of 10-12 hour days at the keyboard (at the time, it was the chiclet keyboard of a Macbook), my wrists would feel tight, and my fingers weak. I’d just quit my job working for the state to be a freelancer, and I began to panic that my body wouldn’t hold out!

So I made a couple of drastic adjustments to the way I work. The one that’s had the most general benefit has been my standing desk, which allows me to keep my eyes straight forward, and my forearms parallel to the ground. Aside from this, there are two other big changes I’ve made to my setup. These are directly related to the keyboard itself.

  1. Dvorak – August Dvorak, inventor of the Dvorak keyboard layout, famously quipped that a text that would require 12-20 miles of finger travel on a QWERTY keyboard would take just one mile on Dvorak. This is probably an exaggeration.. Still, it’s hard to deny that Dvorak has a lot of intuitive appeal: vowels appear in the home row of the left hand, the most common consonants in the home row of the left hand, and typing English words generally requires fewer row jumps and other ugliness.

    Switching to Dvorak was hard – far harder, in my experience, than switching to a standing desk, or to Linux, or even to Vim. For a few weeks, I spent an hour or two per day doing drills in Master Key. Then I switched to using Dvorak in the morning, until my brain would hurt so bad that I’d switch to QWERTY by around 10am. When I could finally make it until noon using Dvorak, I quit QWERTY altogether, as code switching between the layouts was proving more difficult than Dvorak itself.

    During the transition, I was a slow typist (30-40 WPM for prose around the time of the final switch, down from 90-100 on QWERTY). This affected my work efficiency. Worse still, the stress of hesitating the slightest bit before each key press was actually making my wrist fatigue worse than it was with QWERTY. But I persisted. After about six weeks using Dvorak full-time, I was up to maybe 60-70 WPM. (I’m since up to at least my pre-Dvorak speeds.) And, most importantly, I finally started to reap the ergonomic benefits of Dvorak. I’m able to type with far less wrist movement than before, with the result that I have much, much more stamina – those 10-12 hour days tire my brain way before they tire my fingers. Totally worth it.

    (Side note: A lot of people – people who are not touch-typists to begin with, I guess – put stickers on their keyboards to show the Dvorak layout, or even pop the keys off and rearrange them. I never did this. It forced me to learn the layout much more thoroughly. Plus, it is an order of magnitude more bad ass to type Dvorak on a QWERTY keyboard.)

  2. Kinesis Freestyle keyboard – I’d been typing for a long time on chiclet-style keyboards: first the Macbook, then the Macbook Pro, then an Apple USB keyboard. These keyboards are beautiful and quiet. But they don’t give much feedback. And touch-typing on them requires you to crook your wrists outward, in order to get your fingers resting on the home row. On the recommendation of my main man Marshall Sorenson, I bought myself a Kinesis Freestyle. It’s got nice, clicky keys. And it takes the idea of ergonomic keyboards to an extreme: the two halves of the keyboard are actually separate pieces, separated by an 8″ cable (a 20″ version is also available). Now I can keep the two halves positioned in such a way that I don’t have to bring my wrists too close together, and I don’t have to bend them at a funky angle to touch type.

    Kinesis Freestyle 2

    Kinesis Freestyle 2

    I love this keyboard so much that, now that I’ve switched away from the Mac, I’ve bought myself a new, non-Mac version of the Freestyle. (I just got it in the mail yesterday, prompting me to write this post.)

It takes a bit of work – and some risk – to make radical changes for the sake of ergonomics. But it’s an investment in the future. And don’t we all want to Win The Future?

Bonus! Buy my old keyboard

Needs a good home

Needs a good home

[EDIT 2012-10-03 - The keyboard has found a good home. Take good care of her, Will!]

I won’t be needing my much-loved Freestyle for Mac anymore. Wanna buy it? It’s in perfect working order, and I’ll clean it up real nice before sending it out to you. These puppies are $100 new (and, actually, it looks like they’re discontinued at the moment, until the Freestyle 2 for Mac comes out). I’ll be happy to let it go to a faithful reader of this blog for $50, continental US shipping included. (If you’re outside the contintental US, contact me first to ask about shipping.) If I don’t get any bites, I’ll put it on eBay, but I’d rather see it go to a friend. Leave a comment or drop me an email: boone /at/ gorg \dot\ es.