Should I continue hosting blogs and wikis on campus?

Given that the U of A is switching to Google for email, it would seem the primary argument for hosting stuff on campus may no longer be critical – if it’s OK to host content and student info from a Canadian university on an American server.

So, the question becomes: Should campuses host their own services? Email? Blogs? Wikis? Would it be better to just point people to recommended third party services (, etc…) and provide some support and context?

Should I still be running and Should they be transitioned to off-campus services?

I really need to hear from faculty, students, staff, and the off-campus community. Any opinions?

WPMU Post and Comment Growth

The group of WPMU rockstars at UBC’s OLT just whipped up a fantastic new plugin for administrators of a WPMU site to get a feel for the growth of the community. It generates a graph to display growth in numbers of blog posts and comments over time, and uses the Google Data Visualization API to let you interactively define data ranges to be graphed.

Here’s the growth of graphed for the last 2 semesters:


Another fantastic job by the OLT blogging platform crew. Now, to just add users and pages, and it’ll be perfect… 😉

wpmu activity reports using the blog_activity plugin

Jim Groom linked to a post by Patrick Murray-John with an interesting summary of the activity on – and I was curious about what activity patterns are on – so I fired up Sequel Pro and dug around in the raw data stored by the blog_activity plugin in the wp_post_activity and wp_comment_activity tables. The tables include aggregate and anonymous activity data for the last month.

There is a relatively new Reports plugin that could do much of this in an automated way, but it only supports generating activity reports for individual users or blogs, not aggregate reports.

Following is the MySQL code I ran to crunch the tables into usable data, which I then (cringingly) copied and pasted into (wincingly) MS Excel to generate tables and visuals.

Posts per Hour of Day

To get the number of posts published by hour of day, I ran this:

select distinct from_unixtime(stamp, "%H") as hour, count(*) as numberOfPosts from wp_post_activity group by hour order by hour;


Posts per Day of Week

select distinct from_unixtime(stamp, "%a") as day, count(*) as numberOfPosts from wp_post_activity group by day;


Comments per Hour of Day

select distinct from_unixtime(stamp, "%H") as hour, count(*) as numberOfComments from wp_comment_activity group by hour order by hour;


Comments per Day of Week

select distinct from_unixtime(stamp, "%a") as day, count(*) as numberOfComments from wp_comment_activity group by day;


Combining some of the data

Now that I’ve got the data out, it’s easy to combine sets to see what’s going on. Comments and Posts per Hour of Day:


and combined posts and comments per day of week:


What’s it mean?

I don’t know what it means. Mostly, I just like shiny graphs with lines that loosely correspond to something. Am I going to read anything into it? Nope. But if nothing else, it’s interesting to see that activity isn’t tightly synchronized with in-class time

Now, it’s clear that we’re nowhere NEAR the activity level of UMWBlogs, nor do we have the sustained activity (we don’t have The Reverend, after all), but I was surprised and impressed that the aggregate activity was much higher in “off” hours/days than I’d have guessed. Actual activity, outside of classroom hours. Who’d have guessed? Growth

I spent some time this afternoon poking around in the database that runs to see if I could get a better sense of how it’s growing. Turns out, it’s growing MUCH faster than I thought it was (and I thought it was growing pretty darned fast).


It’s still pretty small scale, compared with giants like and, but the growth looks pretty much exponential. I’m glad we’ve got lots of room to scale this puppy. And that campus IT isn’t upset with growing demands on database resources.

Testing WPMU 2.7

I thought it would be prudent to test the plugins, mu-plugins and themes I run at on the latest prerelease snapshot of WordPress Multiuser 2.7, to check for any incompatibilities or strangenesses. I grabbed the .zip archive from the SVN repository, dropped it onto my desktop, and installed a new site. I then grabbed the contents of my mu-plugins and plugins directories, and a subset of the themes that are used. After farting around repairing some file permission errors (caused by FTPing the files from the server to my desktop under a different user than apache runs under…) it looks like everything Just Works™.

It wasn’t an exhaustive test – I didn’t try upgrading the databases for the sites that are running on – all I really needed to know was if the plugins needed some love before thinking of upgrading to 2.7. The good news is that they appear to be fine. Woohoo.

Continue reading “Testing WPMU 2.7” Redesign

I’ve been meaning to redesign the main site at for awhile now – the Edublogs Clean theme isn’t intended to be dropped in as a stock theme, but as a starting point for hacking something tailor-made. The Edu-Clean theme is available as part of the fantastic Premium WPMUDev subscription – and it certainly helped me get off the ground quickly.

Edu-Clean has bugged me because it hijacks the front page by using home.php, rather than using a page template to render the front page. The annoying part of this technique is that it makes it difficult to list blog posts within that site – so news updates posted on the main blog only show up on the “latest posts” widget, and then disappear from sight when they roll off the bottom of the widget.

And, the Edu-Clean theme, while looking fantastic and being very well designed and polished, is really just the Edublogs theme. So, my straight reuse of the graphics and styles was a bit confusing (I had a couple people mention “oh, that’s edublogs. I know that.” – um. no. it’s not, but it’s using the same theme… confusing…)

So, today I decided to sit down and hack the best parts of Edu-Clean out, and graft them into a copy of the sweet and flexible Carrington theme.

I’ll post a description of what I did, why, and where, but for now it’s basically working. It’s still very much a work in progress (I’m thinking it’s a little busy, but I like the focus on community, content and function rather than marketing). The other nice thing that the use of page templates allows is the WordPress front page setting – I can set the front page to be rendered by a static template, and set the “real” blog to be displayed at another page on the blog – Site News, for example. Much better, IMO.

Here’s the previous design, powered by the elegant Edu-Clean theme:

And the redesign, based on Carrington:

I’m certainly no designer, but I like that the featured content is right up front, rather than marketing info about the service. It’s also much easier to spot the login info (if not logged in) and stuff you can do (list of your blogs, etc…) without having to scroll down.

I’ll be tweaking it, but I think it’s a keeper. now protected by Akismet

I got word back from Akismet that using it on to protect all of the blogs hosted there falls under the free license, despite the wording on their website that suggests it’s an enterprise use. This means I’m now able to protect all blogs on the service with Akismet, without requiring a Captcha challenge.

The current version of the Akismet plugin for WordPress installs just fine in the mu-plugins directory, meaning each blog automatically gets protected, without any configuration or setup. The Akismet key can be hardcoded into the plugin file, and when that is done, all configuration interface magically disappears from the wp-admin interface. Easy peasy.

All that was required by Akismet was that I provide a link from each blog to to give credit for the spam protection. I wrote up a VERY simple mu-plugin to automatically insert the text and link in the footer of each blog on

I’m curious to see how well Akismet functions on some of the topics of conversation – some post colonial courses commonly use language that trips up word filters pretty readily…

overzealous antispam and campus blogging

I just had to uninstall the TanTanNoodles Simple Spam Filter from – it’s a simple plugin that uses a dictionary lookup to try to detect what it thinks are REALLY obvious spam comment attempts. But it was a bit overzealous. Instead of just modifying the dictionary to remove some valid words (which words are valid? who gets to decide that? in which contexts?), I decided to just delete the plugin outright so that comments can be posted without censorship.

The problem showed up when a student tried to write a comment on a blog post, and used the word “rape” in the text of the comment. Simple Spam Filter threw a flag on the play, and the comment evaporated. Not cool. The student is now suspicious of the blog service, and is wondering if we’re censoring or filtering their conversations. Totally the WRONG feeling for a productive and engaging blog community. I’ve deleted the plugin, and hopefully assured the student that there was no intention of censoring their conversation.

Fun with antispam. Thanks again, Google, for making this such a wonderful problem to have to keep dealing with. It’s so thoroughly rewarding, having to battle spammers and work to make sure valid content gets around the filters that have to be constructed to prevent spammers from gaming Googlejuice.