Facebook Tip… make your profile more presentable

So after Looking at Mackenzie and Ciara’s Facebook profiles I saw that they both look much better than most people’s. The reason being that instead of having comma denominated lists like “Interests: running, swimming, hiking, hockey…” they put them in an actual list form like so:






Ciara even adds breaks using dashes. I did the same and now my profile is no longer a jumbled mess… yay!

In fact it looks so good I’ll just include it on my about page on this site.

My Vision for a Semantic UBC

This is my vision as for what we can do at UBC to create an expandable eduglu solution.

Most content will be stored in a wiki. Our wiki will be extended so that we can lock more sensetive pages for certain users.
In order to make our content semantic and to allow it to be remixed in ways that make sense we would use the SemanticMediaWiki plugin for our MediaWiki. A working example of this kind of wiki can be found here.This plugin allows users to define relationships between the article and its content. This data is then Collected and can be navigated in a semantic way. Lists are then also generated and dynamically maintained. For instance in Chemistry someone could define the property “has boiling point” for a certain element. The page for “is metal” will then contain all the elements that have a boiling point (like this example).

Once we have the Semantic MediaWiki the next step is to republish content from the wiki into other contexts. We are still working on exactly how to do this (what tools to use etc) but the basic concept is simple: Use some kind of feed to publish the content in another context (we will probably use WordPress as the new context for most of our services). Then periodically check the feed to see if it has been updated. If it has been updated, then update the republished content. This ensures that not only is content dynamic (like it should be) but it also means that it is searchable and that the server-breaking parsing of hundreds of feeds doesn’t happen all the time. Another step would be to build in a system whereby people who take feeds from the wiki are notified when the content changes (I know the watch page function does that already, but one time users that just wanted to quickly grab and republish some content would need to be informed of major changes to their content). This would create communities of watchdogs around more used content to ensure that vandalism is quickly curbed.

So that is the start. Content is dynamic and open on the wiki. It will be easy to grab content and republish it in other places. It will also have meta data that can used in the immediate term to navigate data and in the long term to drive applications like those created by the MIT simile project.

My essential Facebook Applications:

Here is a list of some of my favorite Facebook Apps:

FriendFeed: Allows me to publish my life stream on my Facebook profile

Boost: Boost is a Firefox add on that allows you to change the look and feel of Facebook. Adds a bunch of cool functionality like “download whole album” and showing full size images when you mouse over them.

Nexus: Creates a graph of your network. Really interesting to see how you are connected to other people and how connected they are to your friends.

FBcal: Generates an iCal file of your upcoming Facebook events and/or upcoming birthdays. Seeing as my Google Calendar plans my life, I don’t know how I’ve lived without this application for so long!

Today's realization:

Enej and I decided today that we need to start making this a reality at UBC:

from digitalbazaar

Still have no idea how. We will figure it out though.

So here’s how:

Now for where!

Edugluing things together

so here is a mapping of my plan for a UBC content management strategy. It is designed to overcome two obstacles:

1) Content changes, therefore the content stored in repositories has to change and be updated when the source is updated. This is overcome by using a wiki (this has been Novak’s vision of content management for a while) that produces RSS feeds along with an aggregator like Feed WordPress that updates the repository when a feed gets updated (that feature is still buggy at the moment, but I will get to fixing that ASAP).

2) The second obstacle is the fact that RSS and JavaScript are not easily searchable (a must for a content repository or even an end user site). Republishing is a must until we find an easy way to index and search RSS and JSON.

So here is what it looks like (click on it for larger view):

The last piece of course blog the puzzle… for now

So it’s 4:30 in the morning and I am nowhere near ready to go to bed. So instead I did the final quality testing for my “add user widget” WordPress Mu plugin.

This plugin eliminates the question that I’ve been asked plenty of times “what if a student who is not in the class adds themselves to a course blog?”. I think the answer is simple (and I think Jim and Brian would agree with me)… just delete and/or ban the user. However, in order to eliminate this barrier on implementing course blogs I modified the plugin to allow professors to enter a list of student emails. If the student’s email is in the list they can then add themselves to the list. This means that in conjunction with my Add to BDP RSS widget that Professors or institutions can decide whether anyone can add themselves, subscribers to the WordPress Mu system or only users that are in a specific list. This will now work for all three of the course blog types that I created.

Add User Widget

This plugin is a modification of sidebar add user widget by DSader. It adds a whole bunch of control functionality that allows admin to change who is allowed to add themselves to a blog and also what type of permission is allowed. It also changes the way that the widget appears depending on the user’s status. It was developed primarily for course blogs.

Final, final update:

WordPress. org has started to show OLT some love and we are now rapidly publishing all of our plugins there. The new direct link to download sidebar add user widget is here and the plugin page is here.

Final Update:

Now that OLT has a place to house its plugins I will no longer be maintaining add user widget on this site. Instead it will live on blogs.ubc.ca. The direct link is here.

Update: V1.2.4

Fixed the problem with the plugin not reloading user’s status when they first add themselves.

Update: V1.2

Changed the way restricting users works. Now the admin can simply set a password in the widget control menu and users who know the password can add themselves to the blog.

Download V1.2.4

Download V1.2.1

Download V1.0


Just drop into the mu-plugins folder.

Any problems/suggestions just leave a comment

Getting the creepy out of Facebook

Facebook ModelThis was supposed to be a long and intense post, blending many different discussions that I’ve had over the past week, but I don’t have time and since I just got my new WordPress site, I need to write! (I’ll get the rest of it up some other time).

Here is the Jist of it:

I have spoken to so many people who tell me that “Facebook is creepy”. One of the biggest taboos here is to say “oh, I saw it on your mini-feed”. People get all weirded out as if they didn’t know that one of the key reasons of Facebook’s success is the fact that it is so good at distributing your information to those who know you.
Jocelyn and Ciara... Ballas
Jocelyn and Ciara (my resident Facebook experts) were lamenting that fact with me and we came up with the idea that maybe the problem is just the language that has evolved around Facebook. We put information on Facebook for people to see. We have complete control over who can see that information. It’s like creating a poster about yourself. It isn’t creepy looking at someone’s poster. Jocelyn and Ciara came up with some alternative names. They suggested something like “exploring” or “learning”. I think of it as “researching your personal social network”. Someone reading your profile is a good thing… it helps them to know you better. Someone reading your wall-to-wall with someone else is also a good thing. It’s flattering. Someone cares enough to read about you. If there is something that you don’t want people to read about you… you shouldn’t publish it and if you have to tell somebody something private… that’s what private messages are for.

Time to be a mentor

I am technically a “mentor” for the UBC Blog Squad. Although I haven’t done much mentoring. In fact they pretty much school me in dedication and writing ability. Many of them have written some absolutely fantastic stuff.

So here goes, my attempt at a bit of helping out:

I’ve noticed that many of you haven’t changed your blogroll yet (although I see that Genevieve has added a bunch of things to her one). Your blogroll can really complement your blog, by telling people at a glance what you are interested in. It shows people what you are reading and gives background for your own writing. It also doesn’t have to simply be one long list. If you go to the “blogroll” tab in WordPress you will see that you can add categories.
You can then add specific blogs to each category. Here is a quick example of what this would look like:

There is also a link at the bottom of the “add to blogroll” section that you can drag into your browser so that when you see a site that you really like you can add it to your blogroll very quickly.

P.S. My actual blogroll is a terrible example. Seeing as I am not using WordPress at the moment changing it is a lot harder for me to do than for all of you!

Examples of course blog possibilities and plans for the future

So here they are, examples of the three kinds of blogs that I outlined in this post, as well as explanations for how to create them within WordPress MU. Jon has kindly let me use his Spanish 312 class as and example, so some of my examples are actually fully populated and active courses. (click on the headings to see the actual blogs)

Ghost Course Blog

This blog uses BDPRSS to output the content of an aggregated feed of the class. I created a widget to add to the list in BDPRSS so students can auto-populate themselves into the course. The other feature that I developed for this blog is an auto-populating class list (with the heading our class). The class list is the reason that I took so long to get these examples up and running. I spent a good chunk of this week working on an “add to blogroll” widget so that students could add links to their blogs in the sidebar. I tried many methods, but just couldn’t get the plugin to work. Gardner Campbell was paying a visit to UBC and while he was showing me some of the successes and issues that he has been having with his course blog Rock soul Progressive I saw that he was using the BDP RSS widget to display comments. A light bulb went on and I realized that I could simply tweak the widget to show a list of blogs in the course. Here is what you have to do:

  1. Create and output format in BDP RSS that contains the same blogs as the one that is being used to display entries in the course.
  2. In the “output format types” section select the radio button that says “list by sites alphabetically”
  3. In “about the items” set “maximum items per site” to 1, check “print site names” and “only display item’s title”. Uncheck “print the item’s age”
  4. in the “XHTML formatting” section, add list tags around “title for each site” and comment tags around “each item’s title”. (see picture )

If you add the BDP RSS widget for the output to the sidebar then you create a class list.

Spam Course Blog

This blog uses a spamblogger (I’m using feedWordPress because it actually updates posts if they are changed in the original feed) combined with BDP RSS to quickly create the course. Basically what happens is a feed aggregated by BDP RSS is fed into the spamblogger and feedWordPress republishes it. I have three reasons why I run the feeds through BDP RSS before I feed them to the feedWordPress:

  1. I’ve already created my Add to BDPRSS widget to add feeds to BDPRSS. If I wanted students to add their own feeds to the spamblogger I would have to create another widget (and the widget would have to be specific to the spamblogger).
  2. BDP works really well with a large range of feeds as well as with a large number of feeds. It acts as a kind of normalizing process, ensuring that each entry is parsed in the same way.
  3. It allows for the auto-generation of a class list as described for the ghost course blog.

Communal Course Blog

This Blog is the simplest to set up and is probably closer to what most faculty members will imagine when they think of a course blog. I simply use the sidebar add user widget to add authors and the Wp-Authors widget to display the class list. Quick and simple. My example isn’t as good as the others simply because all of the content had to be written from scratch (or copy pasted from Wikipedia). K1, one of the work study students at OLT was kind enough to post a few items under different authors to show how this kind of course blog would look.

A fourth option is of course mashing the Spam Course Blog and the Communal Course blog together, thus giving students the option over whether or not they want to have their own course.

If there is anything that I am missing in my thinking here, please let me know.

Some notes on policy and where I’m going from here: As I have been making these ways for students to self-populate a course, the question keeps on coming up “what if people who don’t belong to the course add themselves”? At the moment the sidebar add to BDP widget gives three levels of permission, global (anyone), system (on the same MU system) and blog (subscribers to the blog). I will be working on changing the “add user” plugin to accept a list of people (I’m thinking student numbers or emails?) and check those against people who are trying to add themselves to a blog. This would mean that a professor could just paste a list in the control of the widget and not have to worry about people who are not in the class adding themselves. Then to close off the spam and ghost course blogs one would set the sidebar add to bdp widget permissions to “blog” and display the add user widget forcing students to add themselves as subscribers to the blog first so that they can be checked off against the class list before adding their feed.