Join the lunchtime ‘Blogging and the Social Web Interest Group’!

Do you blog? Are you interested in blogging and other aspects of the Social Web? Do you know that the university has its own WordPress blogging and social networking platform to support all students and staff in their research, teaching and learning? (You probably do if you’re reading this on my blog!)

Blogs are modern, easy to use websites for personal, team, project and departmental use.

The Centre for Educational Research and Development are starting an informal lunchtime ‘blogs and social web interest group’. The group will meet monthly and is open to all staff and students to drop in and talk about how you use the social web and how you would like to use the social web. Share ideas and what you know; learn from other members. Bring your lunch and your laptop if you have one. Some laptops will be available during the hour.

The first get-together is on Wednesday October 14th, 1-2pm in MB1009 (the ‘Bean Bag Room’). Here’s the full calendar for the year. Click here to subscribe to this calendar or use the Google button below.

Leave a comment below, if you have any questions.

Jailbreaking WordPress with Web hooks

As is often the case, I struggle at first glance to see the full implications of a new development in technology, which is why I so often rely on others to kick me up the arse before I get it. ((I am not ashamed to admit that I’m finding that my career is increasingly influenced by following the observations of Tony Hirst. Some people are so-called ‘thought-leaders’. I am not one of them and that is fine by me. I was talking to Richard Davis about this recently and, in mutual agreement, he quoted Mario Vargas Llosa, who wrote: “There are men whose only mission is to serve as intermediaries to others; one crosses them like bridges, and one goes further.” That’ll do me.))

Where I ramble about WordPress as a learning tool for the web…

I first read about web hooks while looking at WordPress, XMPP and FriendFeed’s SUP and then again when writing about PubSubHubbub. Since then, Dave Winer’s RSSCloud has come along, too, so there’s now plenty of healthy competition in the world of real time web and WordPress is, predictably, a mainstream testing ground for all of it. Before I go on to clarify my understanding of the implications of web hooks+WordPress, I should note that my main interest here is not web hooks nor specifically the real time web, which is interesting but realistically, not something I’m going to pursue with fervour. My main interest is that WordPress is an interesting and opportunistic technology platform for users, administrators and developers, alike. Whoever you are, if you want to understand how the web works and how innovations become mainstream, WordPress provides a decent space for exercising that interest. I find it increasingly irritating to explain WordPress in terms of ‘blogging’. I’ve very little interest in WordPress as a blog. I tend to treat WordPress as I did Linux, ten years ago. Learning about GNU/Linux is a fascinating, addictive and engaging way to learn about Operating Systems and the role of server technology in the world we live in. Similarly, I have found that learning about WordPress and, perhaps more significantly, the ecosystem of plugins and themes ((Note that themes are not necessarily a superficial makeover of a WordPress site. Like plugins, they have access to a rich and extensible set of functions.)) is instructive in learning about the technologies of the web. I encourage anyone with an interest, to sign up to a cheap shared host such as Dreamhost, and use their one-click WordPress offering to set up your playground for learning about the web. The cost of a domain name and self-hosting WordPress need not exceed $9 or £7/month. ((I am thinking of taking the idea of WordPress as a window on web technology further and am tentatively planning on designing such a course with online journalism lecturer, Bernie Russell. It would be a boot camp for professional journalists wanting (needing…?) to understand the web as a public space and we would start with and keep returning to WordPress as a mainstream expression of various web technologies and standards.))

… and back to web hooks

Within about 15 minutes of Tony tweeting about HookPress, I had watched the video, installed the plugin and sent a realtime tweet using web hooks from WordPress.

https://videopress.com/v/25KHD2dF

It’s pretty easy to get to grips with and if a repository of web hook scripts develops, even the non-programmers like me could make greater use of what web hooks offer.

Web hooks are user-defined callbacks over HTTP. They’re intended to, in a sense, “jailbreak” our web applications to become more extensible, customizable, and ultimately more useful. Conceptually, web applications only have a request-based “input” mechanism: web APIs. They lack an event-based output mechanism, and this is the role of web hooks. People talk about Unix pipes for the web, but they forget: pipes are based on standard input and standard output. Feeds are not a sufficient form of output for this, which is partly why Yahoo Pipes was not the game changer some people expected. Instead, we need adoption of a simple, real-time, event-driven mechanism, and web hooks seem to be the answer. Web hooks are bringing a new level of event-based programming to the web.

I think the use of the term ‘jailbreak’ is useful in understanding what HookPress brings to the WordPress ecosystem. WordPress is an application written in PHP and if you wish to develop a plugin or theme for WordPress you are required to use the PHP programming language. No bad thing but the HookPress plugin ‘jailbreaks’ the requirement to work with WordPress in PHP by turning WordPress’ hooks (‘actions’ and ‘filters’) into web hooks.

WordPress actions and filters, are basically inbuilt features that allow developers to ‘hook’ into WordPress with their plugins and themes. Here’s the official definition:

Hooks are provided by WordPress to allow your plugin to ‘hook into’ the rest of WordPress; that is, to call functions in your plugin at specific times, and thereby set your plugin in motion. There are two kinds of hooks:

  1. Actions: Actions are the hooks that the WordPress core launches at specific points during execution, or when specific events occur. Your plugin can specify that one or more of its PHP functions are executed at these points, using the Action API.
  2. Filters: Filters are the hooks that WordPress launches to modify text of various types before adding it to the database or sending it to the browser screen. Your plugin can specify that one or more of its PHP functions is executed to modify specific types of text at these times, using the Filter API.

So, if I understand all this correctly, what HookPress does is turn WordPress hooks into web hooks which post the output of the executed actions or filters to scripts written in other languages such as Python, Perl, Ruby and Javascript (they can be written in PHP, too) hosted elsewhere on the web.   In the example given in the HookPress video, the WordPress output of the action, ‘publish_post‘, along with two variables ‘post_title’ and ‘post_url’, was posted to a script hosted on scriptlets.org,  which performs the event of sending a tweet which includes the title and URL of the WordPress post that has just been published. All this happens as fast as the component parts of the web allows, i.e. in ‘real time’.

In other words, what is happening is that WordPress is posting data to a URL, where lies a script, which takes that data and creates an event which notifies another application. Because the scripts can be hosted elsewhere, on large cloud platforms such as Google’s AppEngine, the burden of processing events can be passed off to somewhere else. I see now, why web hooks are likened to Unix pipes, in that the “output of each process feeds directly as input to the next one” and so on. In the case of HookPress, the output of the ‘publish_post’ hook feeds directly as input to the scriptlet and the output of that feeds directly as input to the Twitter API which outputs to the twitter client.

Besides creating notifications from WordPress actions, the other thing that HookPress does (still with me on this ‘learning journey’ ??? I’ve been reading, writing and revising this blog post for hours now…), is extend the functionality of WordPress through the use of WordPress filters. Remember that filters in WordPress, modify text before sending it to the database and/or displaying it on your computer screen. The example in the video, shows the web hook simply reversing the text before it is rendered on the screen. ‘This is a test’ becomes ‘tset a si sihT’.

The output of the ‘the_content‘ filter has been posted to the web hook, which has reversed the order of the blog post content and returned it back to WordPress which renders the modified blog post.

Whereas the action web hooks are about providing event-driven notifications, the filter web hooks allow developers to extend the functionality of WordPress itself in PHP and other scripting languages.  In both cases, web hooks ‘jailbreak’ WordPress by turning it into a single process in a series of piped processes where web hooks create, modify and distribute data.

Finally, I’ll leave you with this presentation, which is all about web hooks.

In the presentation, there are two quotes which I found useful. One from Wikipedia which kind of summarises what HookPress is doing to WordPress:

“In computer programming, hooking is a technique used to alter or augment the behaviour of [a programme], often without having access to its source code.”

and another from Marc Prensky, which relates back to my point about using WordPress as a way to learn about web technologies in a broader sense. WordPress+HookPress is where programming for WordPress leaves the back room:

As programming becomes more important, it will leave the back room and become a key skill and attribute of our top intellectual and social classes, just as reading and writing did in the past.

Open Education: Talis Incubator Proposal

Back in May, I woke up with an idea in my head which, in a slightly modified form, I’d now like to try and find funding for. ((I figure that if I repeat this idea enough times, someone will see that it’s worth funding ;-))) The idea is based on work we’re doing on our JISCPress project, which itself is based on work Tony and I have been doing with WriteToReply since February. In my original blog post, I proposed that WordPress Multi User ((and here I’ll repeat what is becoming my mantra: ‘the same software that runs six million blogs on wordpress.com’ )) and Scriblio, a set of plugins for WordPress which allows you to import an OPAC library catalogue and benefit from all the advantages of the WordPress ecosystem, would together allow libraries to host independently branded catalogues on an open, union platform.

Imagine that JISC, Talis or Eduserv offered such a platform to UK university libraries. It could be a service, not unlike wordpress.com, where authorised institutions, could self-register for a site and easily import their OPAC, apply a theme, tweak some CSS, choose from a few useful plugins, and within less than a day or two, have a branded, cutting-edge search and browse interface to their OPAC, running under their own domain.

Paul and I gave a Lightening Talk about this at Mashoop North, which I present to you below.

Slide four is the useful one. It show the various slices of the platform and, by implication, the various uses each layer offers.  The bottom slice shows the OPACs converge with WPMU to the benefit of the institution. It’s a nice, easy, hosted service that would offer an end-user experience not unlike the one that Plymouth State offer to their users. The middle slice – the WPMU bit – is where the OPACs converge together in union, under a single administrative interface that is easy to manage, widely used and supported. For $5000/year, Automattic, the company that leads the development of WordPress and runs wordpress.com, would provide support and advice with a six hour SLA. On top of that, anyone with a knowledge of PHP, can quickly learn the guts of WordPress, as Alex who’s working on JISCPress, will testify. My point is that this is a well tested and widely understood technology.

Now, once you have one or more OPACs hosted on WPMU, you bring together a lot of library catalogue data into one database and the platform’s web analytics (i.e. usage trends) can be a rich source of data for learning about what library users are looking for. Each library, would have access to their own analytics, while the analytics for the entire platform would also be collected. I do this on our university WPMU installation.

The next slice in our diagram, shows a few different ways of getting data out of the platform (and this would also apply to each individual catalogue site, too).  First, you can see that the platform as a whole could act as a union catalogue where, from a single site, users could search across library holdings. That union catalogue would have all the useful features of WordPress, too. Next to that, you can see Triplify, a nice little web application that transforms a relational database into RDF/N3, JSON and Linked Data. Triplify could re-present the data in each catalogue as semantic data and this could be subsequently hosted on the Talis platform.  We’re already doing this with JISCPress. Every night, changes to any of the library catalogue data could be pushed to Talis, where the data can be queried and mashed up using the Talis API. Finally, don’t forget good old RSS and Atom feeds, which are available for almost every WordPress endpoint URL, as I’ve previously documented.

Given the work we’ve done on JISCPress, which covers our experience with WPMU and Triplify, I think that a demonstrator prototype, using entirely open source software, could be developed within the constraints of the Talis Incubator fund. I canvassed my original idea to the Scriblio mailing list and had positive and useful feedback from Ross Singer at Talis. Leigh Dodds at Talis also sees potential in the use of WPMU and Triplify, although I understand that neither of these people are endorsing the idea for the Talis Incubator fund, but their interest has been encouraging.

So, what I’m proposing is that Paul and I work with Casey Bisson, the Scriblio developer, on a short project to get this all up and running. In my mind, Scriblio needs some more work to make the set up process easier for a variety of library catalogues and the last time I looked, it needed documenting better, too. I think that the maximum of £15,000 from the Talis fund is workable. In fact, I’d like to bring it down a little to make it more attractive to the judges. Paul would bring his knowledge and expertise from working with our university library catalogue, I would bring what we’ve learned from JISCPress and could manage the WPMU server side of things and the project in general, as well as write documentation, while Casey could be funded to spend some dedicated time fine tuning Scriblio to meet our objectives.

So what do you think? A wordpress.com like platform for library OPACs that pushes semantic data to the Talis platform. Each catalogue remains under the control of its owner institution, while contributing to a wider union OPAC that will benefit users and offer the library community some useful analytics. The platform as a technology, would be as flexible as WordPress itself is, so additional features could be developed for the platform by other future projects. Only last week, Tony was discussing on his new Arcadia project blog, how it would be useful to be able to capture library catalogue links as QR codes. Well, using WordPress in the way I’ve described, we could implement that across every UK HEI Library catalogue in a snap using this plugin. Hoorah!

Student timetables in iCal format

When I first set up the Learning Lab, ((it’s nothing fancy, just a Linux server and what goes on on that server is called ‘Learning Lab work’)) I had it in my mind that clever people might be able to use it as space to experiment with web applications that would benefit the university community. Until now, it’s just been me in my lab coat poking at things until they work. I didn’t really spread the word very well.

Anyway, Alex, who’s a 2nd year Computing student and working with me on the JISCPress project, tweeted this earlier…

Got bored so I wrote a script to convert your University of Lincoln timetable to an iCal.

…which seemed like a very clever and useful thing to do for his fellow students, so I asked if he’d like to host the script on the Learning Lab and here it is:

Click here! >> MyTimetable << Click here!

It’s nothing fancy to look at but it means that students can now grab their timetable in the .ics format that will import into Google Calendar and Apple’s iCal. Students are already using calendar applications like these so it easily integrates into whatever they’re using and, if it’s something like Google Calendar, it works well on their mobile phone, iPod Touch or similar gizmo, too.

Very handy.

ALT-C 2009 Demo: WordPress Multi-User: BuddyPress and Beyond

This is just a reminder that I’ll be giving a demonstration of WordPress Multi-User and BuddyPress at the ALT Conference at 10:50-11:50 on Wednesday, 9 September in room 1.219

Here’s the blurb I submitted.

I write quite a lot on this blog about the use of WordPress and WPMU. Here’s a list of posts that may interest you. Here’s the RSS feed for that search, so you can keep updated with anything I write on the subject.

I’ll be setting up an ALT-C BuddyPress site for anyone to play around with over the course of the conference. It will be available from the 6-17th September 2009. Expect to find it at: http://learninglab.lincoln.ac.uk/altc2009

Books, LibraryThing and me

We recently planned, designed and built our own, small, house. Once the builders had gone, I finished off the interior, laying the finished floors, decorating and tiling. I also put up book shelves that went up one side of the back door, over it and then down the other side, so that when you walk through the door, you walk under our books. There’s about 500 or so, I guess.

Why am I writing about this? Well, those books, accumulated by my wife and I over many years, look good against the wall there, and when people visit, they often stand looking across the shelves at the range of books we’ve bought and sometimes even read. Personally, I buy books on a whim and there are many that I’ve yet to read. I rarely read books cover-to-cover and rarely read fiction. When you look across the shelves, tilting your head to read the spines, you’ll come across the fiction I started reading in my late teens, the books on Buddhism, philosophy and Japanese, that I bought as a student; you’ll see the books I bought while a post-graduate student, studying film archiving. Then there are all the books I bought in-between, while teaching myself about computers, not to mention all my wife’s books. I don’t know about you, but those books say a lot about me and about the last 20 years of my life. Many of them reflect my interests and ambitions before I sent my first email, before I first used the World Wide Web and before I knew 70% of the people I now call ‘friends’ (such an abused word these days).

The thing is, I haven’t opened many of those books since I first looked at them. I’ll never read them again and most of the people I know at work and online, will never scan my bookshelves. We can chat over Twitter, subscribe to each other’s FriendFeed and read each other’s blogs, but I’ll tell you now, that’s not even half of me.

I signed up to LibraryThing a couple of years ago, added a couple of Cormac McCarthy books and then left the account alone. I thought my wife would enjoy it more than me. She reads books cover-to-cover all the time. I don’t. I use books to learn about things that I don’t know. With the exception of a few authors, I rarely read books for relaxation. I relax in my own time online and have done for years. It suits my wandering mind.

It occurred to me a few days ago that LibraryThing could enrich my digital identity in a way that no other social networking site could. By importing my book collection into LibraryThing, I could go back over my book collection, dust off the covers and gradually enrich my online identity, and at the same time people would get to know me better, if they cared to look. Never mind Twitter, where I’ve read that we’ll get to know one-another through a glimpse of the small details of our lives. I don’t buy it. You’ll learn more about me by perusing my LibraryThing collection, I can assure you.

As I write this, I’ve added 110 books that I own, about a third of the total, I reckon.

This also got me thinking about e-portfolios and how the books I accumulated as a student reveal a lot more than my CV about my depth of study and research interests during and shortly after those periods of learning. To build a book collection over time is an achievement in itself. We tend to think of a portfolio as an accumulated, curated presentation of work that we have undertaken. It’s a product – something to show; but until recently we couldn’t include a book collection in our portfolio.

As a student, I spent more time reading than writing and I read wider than my term papers and exams reflected. Despite a good degree, my undergraduate essays aren’t worth your time today, even if I could still find them, but I still have the books I collected and they are worth your time. If I was employing me, I’d take an interest in my book collection. It’s a background check I can recommend.

Of course, I could have added books I don’t own to give a false impression of myself (I haven’t). And I could exclude books from LibraryThing that I do own, because they might give a false impression of who I think I am (I have – the exceptions are trivial). But this is my point about Identity and LibraryThing: I’ve got a collection of physical books that I’m now curating online to develop a ‘portfolio’ that better represents me.

I guess that’s what a lot of LibraryThing members do. Have you?

PubSubHubbub: Realtime RSS and Atom Feeds

It’s made Dave Winer happy, which is no easy task, so I think PubSubHubbub is worth mentioning here. If it’s working as it should, this post should appear in my Google Reader, almost immediately after I’ve published it. That’s because PubSubHubbub is “a simple, open, server-to-server web-hook-based pubsub (publish/subscribe) protocol as an extension to Atom [and RSS].” My blog feed is managed by FeedBurner which has already implemented the new protocol, as has Google Reader FriendFeed. They should therefore ‘talk’ to each other in realtime. Watch the video and you’ll see how it works. It’s pretty straightforward. It just takes a company the size of Google to push it through to adoption. The engineers say they were using it like Instant Messaging the night before the demo, which says something about how responsive this is. Technically, it should be another challenge to Twitter in that it allows for a distributed method of near realtime communication.  I’d like to see that. I feel like an idiot communicating within the confines of  Twitter, sometimes.