Tag Archives: BuddyPress

Bebop is totally rocksteady

File this under “WPedu is killing it right now”.

The team at the Centre for Educational Research and Development at University of Lincoln (UK) has just announced the first public release of Bebop, their new BuddyPress plugin. Read more about the release and about Bebop itself. (Disclaimer – I have done some consultation for the Bebop project, though I’m writing this blog post outside of that consultant role.)

I find Bebop compelling because of what it does, and also because of how it was built. In a nutshell, Bebop is an aggregator for Open Educational Resources, or OERs. ‘OER’ is a term of art among open education folks, referring to learning resources that are available for free use, under an open license. (See OER Commons for a longer definition.) In practice, this can mean anything from videos to lesson plans to games to websites. Bebop is designed to allow members of a BuddyPress community to collect their own OERs from various web services – Twitter, YouTube, Flickr, etc – for display on their BP profiles. It’s a nice demonstration of how BuddyPress can be used as a tool for aggregating work done elsewhere on the web. It also demonstrates another way in which universities can use a free platform like BuddyPress as a non-commercial, locally hosted home for students and faculty, while recognizing that valuable work happens in spaces not under the university’s control. And from a technical point of view, I like how Bebop uses BP’s Activity component and profile metaphors to creative ends.

Bebop was built as part of a “rapid innovation” project. To put the term “rapid” in context: In the context of universities, projects usually move forward glacially. Getting approval and funding may itself take years, and by the time development begins, the original idea/technology is already obsolete. Bebop, in contrast, was conceived and developed over just a couple of months. It’s great to see these kinds of (relatively) rapid projects happening in universities – they can demonstrate to funders the benefits that come along with a bit of agility and risk and freedom.

If you’re running a BuddyPress installation in a university, you might consider taking Bebop for a spin. Get it from the wordpress.org plugin repo or follow development at Github.

WordPress in education, meet the free software community. And vice versa.

There’s a huge, amorphous community of people using WordPress in education. Let’s call it WPedu. There’s another huge community of people involved in the WordPress free software community. Let’s call it WPorg.

WPedu, meet WPorg. WPorg, meet WPedu.

WPorg should know that WPedu is killing it right now

I’d like WPorg to know that WPedu is kicking some serious ass. Take DS106 as an example. DS106 is a distributed course on the topic of Digital Storytelling (that’s the “DS”), where students all over the world – some of whom are enrolled in credit-bearing DS courses at their colleges, some of whom are just tagging along for the ride – use their blogs to complete assignments of various sorts. WordPress, FeedWordPress, BuddyPress, and a bunch of custom hacks are used to aggregate content from hundreds of participants into a single stream. The whole thing is built around the idea of openness: existing, open standards like RSS are being used to federate standalone instances of WordPress (alongside any other system that outputs RSS).

People working on free software – like you, WPorg! – should be flipping out over how awesome that is.

Similarly impressive innovations can be found all over the WPedu world. The innovation is motivated by the love of the work, and by principles: education should be open, individuals should control their data and their online identities, software should be free as in speech. These are the very same principles that are close to the hearts of free software enthusiasts.

People involved in the WPorg community should be spending more effort reaching out to WPedu people. The software developers, instructional technologists, faculty members, and other people working in WPedu are a huge, largely untapped resource for the free software project. People working in K-12 and universities, especially those working in public institutions, often have an incentive (even an imperative) to be sharing their work out to the larger community. (Contrast this with the fact that for-profit WP devs actually have a disincentive to contribute, an issue I wrote about recently.) People in WPedu are experts at piecing systems together, at writing documentation, at community moderation, and so on. They often enjoy flexible job descriptions and fairly loose oversight, and they’re less beholden to financial issues than people working in the private sector. Thus, for many WPedu people, it’d be quite concievable to shoehorn some free software work into their workweek. Most of all, WPedu people are totally awesome people – you have to be pretty awesome to put up with the lackluster pay and ridiculous bureaucracies that education folk have to deal with. Start talking to these awesome people. They have incredible ideas about where WP should go, and they have the resources to help get there.

WPedu should start tooting its own horn

On the flip side: WPedu, you are doing some cool shit, and deep in your heart, you know it. So don’t be afraid to talk about it. It’s true, ome of you are blogging, and that’s great. These blogs are usually addressed (understandably enough) to fellow WPedu people – “here’s a cool new way to use WordPress in a university”, etc. But you should stop qualifying yourselves: Lots of the stuff you’re doing is legitimately a cool new way to use WordPress, period, and you should be proud of that. Own your excellence and innovation.

I come from WPedu, so I say this from experience: there’s too much modesty, bordering on mousyness, among WPedu innovators. Many – most? – of you were never formally trained in software development (or design, or support, or documentation, or whatever). I know I never was. And being embedded in institutions founded on the very notion of Expertise – you can’t spell University without PhD – makes you too unsure of your own skills to reach out and get involved. Here’s a secret: Most of the people in the WPorg community came from non-technical backgrounds, too. (IMO, that’s one of the things that has made WordPress successful, but that’s a topic for another post.) You deserve to be involved, just as much as any of the current community contributors. Three-quarters of expertise is having the confidence to get involved.

If that’s not enough persuasion, here are some practical considerations.

  1. When you build systems using a piece of software – like, let’s say, a student blogging system using WordPress – you become dependent on the future development of that software. By getting involved in the community – submitting patches, doing beta testing, participating in support forums, writing plugins and themes, blogging, etc – you can earn a seat at the table where decisions about WP’s future are made. When your voice isn’t heard, someone else’s voice will be heard in your place. And, as someone who straddles WPedu and WPorg, I can say with confidence that edu and non-profit voices are way underrepresented in the WP project.
  2. Very Important People, such as your boss, your promotion committee, public and private grant committees, and so forth, will be Very Impressed by a list of contributions to free software projects. If you can tell funders that your software has been downloaded hundreds of thousands of times (as we are unashamed to do with the CUNY Academic Commons project), and if you can tie this into a broader narrative about engaging meaningfully with a broader public, it can help to guarantee your financial continuance, if you know what I mean.
  3. It’s the right thing to do. The work that you’re doing at your institutions is helping your students in a huge way. If, by putting in just a bit of extra work, you can increase the potential beneficiaries of your work by ten- or one-hundred- or one-thousand-fold, why wouldn’t you do so?

I shouldn’t make it sound like there’s no overlap between WPedu and WPorg. There is. But it’s much smaller than it should be, given the direct parallels between the ideological goals of the free software project and the ideological goals of the educational enterprise

I’m working on a couple ideas that I think will help to bridge some of the gaps between WPedu and WPorg. I’ll share more about them when they become more well-formed. In the meantime, I’d love to hear your thoughts about how to move these mutually beneficial connections from the realm of the practical to the actual.

BuddyCamp – it’s about time

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!

Add an “Other” checkbox (with textbox) to a BuddyPress profile field

This is a pretty common form format:

Foo
Bar
Other

(Imagine that the textbox was next to the word ‘Other’ – wpautop() or something is being a stupid craphead and inserting a line break.)

It’s not really possible with BuddyPress’s xprofile fields. Today I dove into the codebase to see how hard it would be to add such a feature natively. The answer: Too.

So I wrote a hackish plugin instead, which you can get from this gist. (Note that it’s not in a plugin wrapper. Put it in your bp-custom.php.) To use: (1) On the Admin screen for a profile field, select ‘Yes’ under “Other Field”. (Note: it only works for checkbox fields!!) (2) ??? (3) Profit.

Record user role changes across a WordPress network for troubleshooting

One of my WP/BP projects experiences a perpetual problem, where every few weeks a handful of users is demoted on one of their blogs – they go mysteriously from Editor to Subscriber, or something like that. This sort of thing is a beast to troubleshoot, because it’s not readily reproducible.

So I wrote a small utility plugin that will help site administrators keep tabs on every role-change through the entire installation. Put the plugin into mu-plugins and the run the installation script, and it’ll fire up every time a user’s `wp_x_capabilities` meta key changes, and record some helpful information about it in a custom database table (user id, logged in user id, blog id, BP group id, stuff like that).

For more on the plugin, and to download it, visit its page on Github.

Sowing the seeds

Today I devoted an unusually large amount of time doing free user support for BuddyPress and WordPress (in IRC, over email, through some Trac tickets, and on WordPress StackExchange, the latter of which I’ve been experimenting with for the first time, and I find pretty cool). I say “unusually large” because while I used to do a lot of this sort of thing, it now falls to the bottom of my list of priorities – I do paid work, and when I’m not doing that I do free software development, and when I’m not doing that I try to get the hell away from my computer. As one of the leaders of the BuddyPress project, I usually justify this balance to myself by saying: There are lots of people who can provide user support for this software as well as I can, but there are few who can do productive development for it like I can, so my time is better spent developing. Generally, I think this is a pretty good argument. But I’m glad that days like today come along occasionally, because they remind me of some basic things about the nature of the community around a piece of free software that you can forget when your head is buried too deep in the codebase.

As an aside, I should note that I use the word ‘community’ in a measured way. The word is often overapplied, as if calling a bunch of people working on similar things “the WordPress community” or “the Digital Humanities community” or “the CUNY community” will, in a feat of performative metamorphosis (like how the Queen’s saying “I dub thee Sir Boone” would ipso facto make me a knight), bring into being the thing it purports to describe. Terminological misgivings to one side, there is an undeniable sense in which the work that we do – and by “we” here I mean specifically free software developers, though the point is quite a bit more general than that – is done in a community, or at least (more formally) a network, insofar as those who work on a common piece of free software never really work in isolation from one another. The development process that underlies these software projects depends on the existence of feedback loops, from the end user to the administrator of the installation to the community leaders to the developers themselves, in the form of bug reports, software patches, feature suggestions, support requests, blog posts, and so on.

These feedback loops are not unique to free software development; they’re not even unique to software. But in free software circles the loops are perhaps uniquely malleable, and the distinctions between user and developer uniquely permeable. Each user is a potential contributor, be it through code or advocacy. But the potential is not realized automatically. It’s obvious enough that users who hate using the software and developers whose patches are ignored will never become part of the community. More interesting is the case where a newbie approaches the community with enthusiasm and skill, but where their offerings are not nurtured and so never become real contributions.

I think this happens more than we would care to admit, and I am happy to take my share of the blame. As a developer, I become emotionally attached to the project, and as a result I sometimes interpret criticism as a personal attack. The parts of development that are least exciting – hunting down and fixing the obscure bugs that affect only a small number of users but, for those users, are ruinous – these make me defensive and sometimes angry, as they take my attention away from the more generative work I’d rather be doing. I value my time so highly that I occasionally get annoyed when someone requests some of that time to answer a “simple” question. In each instance, my attitude as a developer and leader of the project could have the effect of chilling what might otherwise have been a fruitful engagement.

Taking the time to do some “support” is the ideal way to fight these tendencies. People ask questions about the software, contribute patches, suggest improvements, etc, because they like the software and want to use it. These people are friends of the project, and should not be treated as enemies. Taking the time to work directly with users is a way of closing the feedback circuit, of sowing the seeds of future collaboration and contribution. If one out of five people recommends the software to someone else, and one out of a hundred contributes back to the software in the form of documentation or code or advocacy, that’s fruitful enough to make the engagement worthwhile.

Ning nonsense is an opportunity for WordPress and BuddyPress developers

Another chapter in the Ning saga (see my previous posts on the subject): In the past few days, Ning has been sending out emails indicating that they’ll be wiping out non-premium networks in the course of the next couple weeks (see, for example, this blog post).

It’s no coincidence, of course, that I’ve gotten a number of emails in the last few days about support and/or paid consultation for Ning -> BuddyPress migrations, based on my free plugin Import From Ning. Unfortunately, I’m currently swamped with work, and I’m not available for active plugin support or for paid migration gigs related to Ning.

If you are a WordPress developer looking for work, this is a golden opportunity. For one thing, you can make a good amount of money helping folks to migrate their Ning data to BuddyPress, and generally helping to customize their BuddyPress installations. Most of the hard work is done for you: my Import From Ning plugin, while buggy and in need of some updates for recent versions of WordPress (in particular, the plugin has crummy error handling), has all of the logic you’ll need to parse Ning’s JSON files and process them for BP import. Even if you don’t know much about BuddyPress, you’ll find that the BuddyPress parts of the process are already spelled out for you. You might even learn something about BP along the way!

Furthermore, those developers who are really intrepid could take this opportunity to help the Ning/BP users more generally by taking over development on Import From Ning. If you are doing client work anyway, which may require fixing bugs and adding improvements in the plugin, why not contribute it back to the distribution version? By doing so, you’ll not only be helping to grow the BP community (and the cause of free software over proprietary services!), but you’ll be making a name for yourself as a contributor/committer to a popular plugin. In other words, it’s great publicity, and you’ll be creating a market for your services down the road.

If you are a WordPress or BuddyPress developer who is interested in receiving referrals for Ning migrations, and/or if you’re interested in making contributions to Import From Ning itself, let me know and I’ll add you to my list. (You can leave a comment below, or send me an email – boone <at> gorg <dot> es.)

Do something about SOPA

Hey you! Do something about SOPA and PROTECT IP..

The Stop Online Privacy Act (and its cousin in the Senate, the PROTECT IP Act) are inching closer to passage. Time is running short for you to do what you can to stymie this legislation, which could very well destroy the open internet as we know it. (Don’t know about SOPA? Get a nice overview in this short video, or check out Jeff Sayre’s helpful bibliography of resources about the bill.)

Why you should care about this

If you are reading my blog, you likely fall into one of a few camps, each of which has a vested interest in preventing the passage of SOPA and PROTECTIP:

  • If you are a developer, user, or advocate of free and open source software, you have several reasons to be concerned about the proposed legislation.

    For one thing, the small-to-medium sized web organizations that are most likely to be targets of SOPA’s blacklisting protocols make up the bulk of the clientele for many web developers I know. These organizations generally do not have the visibility or high profile to put up a stink when and if they fall prey to overzealous “copyright” claims, nor do they have the deep pockets to fund the necessary legal defenses. The danger is especially great for websites that accept – or are built on – user-generated content, like many WordPress and BuddyPress sites; SOPA provides for the blacklisting of entire domains, based merely on the a few pieces of “offending” content, even if the content was not created or posted by the domain owners. Over time, these threats and constraints are bound to make the development of these kinds of sites far less feasible and attractive, resulting in less work for developers – and less development on the open source projects that are largely subsidized by this kind of work.

    On a deeper level, those who are interested in the philosophical underpinnings of free software – the rights of the user – should be terrified by the prospect of media corporations gaining what amounts to veto power over our most fecund channels for the exercise of free expression. Free software lives and dies alongside a free internet. When one level of our internet infrastructure (DNS) is under the control of a self-interested few, it makes “freedom” at higher levels of abstraction – like the level of the user-facing software – into an illusion.

  • If you are an educator or an instructional technologist, especially one who endorses the spirit of open educational movements like (the OG) edupunk and ds106, you should be flipping out about SOPA.

    At an institutional level, thoughtful folks in higher ed and edtech have been fighting for years against a FERPA-fueled obsession with privacy and closedness. They’ve made strides. Platforms that foster learning in open spaces – stuff like institutional blog and wiki installations – have become increasingly commonplace, demonstrating to the powers that be that, for one thing, the legal dangers are not so great, and for another, whatever legal concerns there may be are far outweighed by the pedagogical benefits to be reaped from the open nature of the systems. The threats put into place by SOPA are likely to undo much of this work, by tipping the scales back in the direction of fear-driven policy written by CYA-focused university lawyers. Advocates of open education, and the platforms that support it, should be keen not to let their efforts go to waste.

    At the level of the individual student, the case is more profound. The most promising thread in the story of higher ed and the internet – the thread running through Gardner Campbell’s Bags of Gold and Jim Groom’s a domain of one’s own – is, in my understanding, founded on notions about student power and agency. Users of the internet are not, and should not be, passive actors and consumers of content. Instead, they should take control of their (digital) selves, becoming active participants in the construction of the web, the web’s content, and their own avatars. SOPA and its ilk are an endorsement of the opposite idea: the “ownership” of creative content on the internet is heavily weighted toward media companies, which is to say that you are allowed to be in control of your digital self until it causes a problem for a suit at MPAA or RIAA. The entire remix/mashup culture of ds106 is impossible in such a scenario. If you think that this culture, and the ideology of student personhood that underscores the culture, is worth saving, you should be fighting SOPA tooth and nail.

What can you do? Write a blog post. Join or support the Electronic Frontier Foundation. Most importantly, if you are an American, contact your representatives in Congress. The Stop American Censorship site makes this easy, and gives you all the talking points you’ll need. (“This bill is a job killer!”)

Do it now!

New BuddyPress plugin: BP Better Directories

BP Better Directories

BP Better Directories

BP Better Directories is a new BuddyPress plugin that will turn your (kinda boring) member directories into something a lot slicker. Site admins select which fields they’d like to be filterable in member directories. Site visitors can then use a nice AJAX interface for narrowing search results.

This plugin is being developed for the CUNY Academic Commons, and is in early beta. Don’t use on a live site. There’s also a pretty good chance that the technique I’m using in the guts of the plugin won’t scale all that well without proper caching. You have been warned! (Also, it requires at least BP 1.5.1.)

Download the plugin or follow its development on Github.

It’s here – BuddyPress 1.5!!

It’s finally here! After many, many months of bug squashing, refactoring, and general bloodsweatntears, BuddyPress 1.5 has been released!

This long development cycle has been frustrating in some ways and extremely rewarding in others. On balance, I’m quite proud of the work that’s been done, and quite pleased to have worked so closely and so well with John, Paul, and all the other contributors to BuddyPress. My sincere thanks to all the users and developers who have been supportive during this dev cycle.

Most importantly, BuddyPress 1.5 itself kicks ass. The bp-default theme has seen some serious improvements, some much-needed features have been added, and the codebase has been overhauled in terms of additional internal APIs, documentation, style, and so on. If you’ve done development with BuddyPress in the past, do yourself a favor and check out BP 1.5 – you are in for an extremely pleasant surprise.

Here’s to 1.6 and beyond!