In the last year or so, I’ve given a number of public presentations about BuddyPress. One of my main goals in giving these presentations to WordPress groups is always to convince WP developers to give BP a try. My angle on this has been “BuddyPress compatibility”: the idea that you can take existing WordPress functionality and, with just a bit of pixie dust and elbow grease, integrate it into BP. While there are countless ways that a WP plugin could integrate with BuddyPress, the big three are: (1) displaying group-specific content in groups, (2) displaying user-specific content on user pages, and (3) registering items in the activity stream.
As of this past Saturday, I’ve now given presentations on all three of these methods:
- BuddyPressifying a WordPress Plugin Using the Group Extension API (BuddyCamp Miami 2013)
- Herding Cats with the BuddyPress Activity Component (WordCamp Europe 2013)
- BuddyPressifying a WordPress Plugin Using
BP_Component (WPSessions, June 21, 2014)
If you’re a WP developer who’s looking for an on-ramp into BuddyPress work, I think these presentations are a good place to get started.
Mostly for my own records, here are a few recent Boone-related videos and interviews from around the web:
- Code Poet interview – April 18, 2013. In which I speak at length (ramble?) about BuddyPress, the university, and the value of free software
- WordSesh panel – April 13, 2013. A livestreamed discussion about BuddyPress with John, Paul, Ray, and Tammie.
- BuddyCamp Miami presentation – April 5, 2013. A brief talk where I talk about how to use BuddyPress’s Group Extension API to add BP features to a WordPress plugin. The slides are at blo.so/bcmia.
- WPNYC presentation – January 15, 2013. A talk I gave on the big new features in BuddyPress 1.7
This weekend at BuddyCamp Miami (which ruled btw) I chatted with a number of folks about putting GPL clauses into client contracts. It can be especially challenging when working with universities or other bureaucracies that have hardcore, work-for-hire-ish intellectual property clauses already built into their consultant contract boilerplate. On a number of occasions, my clients and I have worked with the legal departments at universities to develop new language that fits the spirit and law of GPL software. In my opinion, this kind of work is among the most important work I’ve done since I started in this business, even more important than most of the software I’ve written. By having the discussions with legal, and by getting free-software-friendly boilerplate on their books, we take steps toward legitimatizing free software in the university, and making it part of the culture.
Anyway, I was asked privately to share some of this contract language, and I figured it would be more useful to do it in a blog post than in an email. So here are a few examples that have been approved by the legal departments at large universities. (Side note: We should come up with a system for sharing these kinds of strategy docs in a more organized way.)
This clause replaced one university’s extremely restrictive IP boilerplate:
Foundation acknowledges and agrees that enhancements, bug fixes and other custom developments produced under the scope of this agreement will be subject to release under the GNU Public License v2, or another compatible and relevant open-source license.
The following clause is added as a footnote to the existing language about IP:
Section VIII (1-3) shall not apply when work is being performed in the public domain. Consultant agrees to comply with the GNU General Public License version 2, as set out in the Attachment #2, when work is being performed in the public domain.
A few notes about the language in this second example (which their lawyers wrote, not me). First, “Attachment #2” is a copy of the GPLv2. Second, I think there is a little bit of confusion here about “public domain”, because strictly speaking, “public domain” means that no one owns the copyright, while the GPL is dependent on copyright. I think the spirit of the phrase “performed in the public domain” is supposed to be something like “written for public consumption”. But a literal reading of this clause probably means that I must relinquish copyright over the work done under this contract into the public domain. In this specific case, the end goal is for me to extend one of my existing GPL-licensed WordPress plugins; so I will then be integrating this newly-created public-domain code into the plugin, and then distributing the whole thing under the GPL, with a note that the newly added library is in the public domain. This is not ideal, but it’s OK for this case where I’m building a standalone add-on for my own work – good enough not to continue negotiations 🙂
If I can dig up others, I’ll post them here. If you have real-life examples, please share in the comments.
Anthologize, I haven’t forgotten about you! I have some very cool stuff in the works, but for now, a quick update on the progress of the campaign-funded work.
Back in 2011, Patrick Murray-John added some unit tests to Anthologize, covering a number of public methods in the
TeiApi class. A number of the major refactoring jobs I’m currently undertaking will require additional test coverage, but they are (unlike
TeiApi) dependent on WordPress being initalized. So I’ve migrated Anthologize’s tests to use the WP test suite. I’ve used the scaffold provided by the dope and phatte wp-cli (incidentally, I hope that their scaffold becomes the de facto standard for WP plugin tests).
This change means that, in addition to requiring PHPUnit, you’ll also need to have the WP test suite installed. You can install it manually, but I recommend using wp-cli to get the job done in just a command or two. In brief:
$ wp core init-tests /path/to/wp-tests --dbname=wp_test --dbuser=root --dbpass=asd
$ mysql -u'root' -p'asd' -e 'CREATE DATABASE IF NOT EXISTS wp_test'
To run the tests,
$ cd /path/to/wp/wp-content/plugins/anthologize
$ WP_TESTS_DIR=~/path/to/wp-tests phpunit
You can define
WP_TESTS_DIR in your .bashrc file for quicker use in the future.
This post is brought to you by Anthologize campaign supporter Demokratie & Dialog. D&D, a Major Sponsor of Anthologize (woo hoo!), is using WordPress and BuddyPress in amazing ways both to study the way that government policy affects youth and to get youth themselves involved in the development of said policy. I had a chance to get to know the very excellent Andreas Karsten of D&D at BuddyCamp Vancouver last year, and we have big plans to start a BuddyPress jazz band. Many thanks for your support of WP, BP, and Anthologize!
Anthologize 0.7 is here. Get it while the gettin’s good!
Version 0.7 includes a number of important, under-the-hood improvements. Some highlights:
- The way Anthologize loads itself has been largely rewritten, which means that it fires up more reliably – and using fewer resources – than ever before.
- Some validation issues with epub exportsr have been cleared up
- In previous version of Anthologize, PDF exports sometimes failed because Anthologize could not copy inline images to the necessary temporary directory. This process has been rewritten so that our PDF library uses WordPress’s standard upload locations, avoiding permissions errors
- A Spanish translation is now available
- Full compatibility with PHP 5.4 and WordPress 3.5
In addition, a Credits page has been added to the Anthologize menu. This new page includes shout-outs to all those supporters of my fundraising campaign. If you donated (and opted not to remain anonymous), check out the Credits page to see your name in lights! And if I’ve made a spelling error, or linked to the wrong URL, please let me know.
This round of development was brought to you by Cyri Jones. Cyri is an educator and technologist doing amazing things with WordPress and BuddyPress in lovely British Columbia, including his ZEN Portfolios platform for student portfolios, and private social networks for a number of local school districts. I’ve had the good fortune to do some work for Cyri’s projects, and I think that the work he’s doing with these free software platforms points toward a very interesting model for putting social learning technologies in the hands of those who can use them. Cyri was also the brains (and brawn) behind the very first BuddyCamp, held last October in Vancouver. Rock on, Cyri!
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? 🙂
For those Bo(o)neheads who follow me to every event in VW vans, I’ll be giving three talks in Vancouver next month:
- BuddyPress: Beyond Facebook Clones, Oct 13, WordCamp Vancouver. I’ll highlight some uses of BP that are not straightforward social networks. (BTW, if you know of any really cool ones, please let me know in the comments!)
- Free Software and the University: The Story of the CUNY Academic Commons, Oct 14, BuddyCamp Vancouver. I’ll be using the story of the Commons as
an excuse to rant about an allegory about the importance of free software in public schools.
- Getting Started with BuddyPress Plugins, Oct 14, BuddyCamp Vancouver. I’ll be giving an overview of what WordPress plugin developers need to know about getting their feet wet with BP plugins.
Hey you! It’s just been announced that I’ll be keynoting BuddyCamp Vancouver in October. Have you carved the date in your calendar (assuming your calendar is made of wood, otherwise any other form of marking will do just fine)?
Yesterday the first ever BuddyCamp was announced. BuddyCamp Vancouver 2012 is the brainchild Cyri Jones, a Vancouver-based educator and entrepreneur who works a lot with WP and BP. I think it’s going to be a very cool event.
The idea of a BuddyPress-specific event along the lines of WordCamp has been tossed around a lot in the past, at least between the most active members of the BP community. Some have argued that BP is a bit “niche” to serve as the foundation for an event like this (see some of the comments in this WP Realm post, for example). However, while it’s clear that BP has far fewer users than WP, those who do use BP on an everyday basis are often very passionate about it. I think that the community is plenty large at this point to support local events of this type.
In the past, John Jacoby has suggested that a more general “WordPress Plugins Camp” might be a logical precursor to a BuddyCamp – after all, there are lots more plugins than just BuddyPress, which translates to many more potential attendees. I think a general Plugins Camp is a pretty kickass idea, and devs/designers working with BP would have a lot to bring to such an event. But it’s worth noting that this first BuddyCamp will be about a lot more than just devs and designers. I’d wager that over half the attendees will be people who are using free software to build online community space, from a non-technical point of view. These people may not know the first thing about building a WordPress plugin, but they have lots to say about how software can facilitate community – and this is something very specific to a BuddyPress event. So I think there’s really a need for something like a BuddyCamp, where the people who are building the software can get in the same room with the people who are pushing it to its practical limits in real-world scenarios.
Also, while I wish that the whole thing had been arranged a few months sooner (sometimes the best ideas happen at the last minute!), I think the timing of BuddyCamp Vancouver is really great. It’s sandwiched between two events, also being held in Vancouver, which should have huge overlaps in terms of interested attendees: WordCamp Vancouver and Open Ed 2012. I’m hoping that, in particular, a lot of people coming into town for Open Ed will think about coming a day or two early to talk about BuddyPress and its uses in supporting online learning communities. Spoiler alert: I may be talking about this very topic in my own BuddyCamp Vancouver session 🙂
I’m hoping that this is just the first of a series of BuddyCamps. I can easily imagine that there’s enough interest in BP to support a handful of similar events around the world each year. If you’re a motivated fan of BuddyPress, you may want to think about planning such an event in the future!