So What Do You Think You’re Doing, Sonny?

A tweet from @benjamindyer alerted me to a trial being run in Portsmouth where “behavioural analytics” are being deployed on the city’s CCTV footage in order to “alert a CCTV operator to a potential crime in the making” (Portsmouth gets crime-predicting CCTV).

I have to say this reminded me a little, in equal measures, of Phillip Kerr’s A Philosophical Investigation, and the film Minority Report, both of which explore, in different ways, the idea of “precrime”, or at least, the likelihood of a crime occurring, although I suspect the behavioural video analysis still has some way to go before it is reliable…!

When I chased the “crime predicting CCTV” story a little, it took me to Smart CCTV, the company behind the system being used in Portsmouth.

And seeing those screenshots, I wondered – wouldn’t this make for a brilliant bit of digital storytelling, in which the story is a machine interpretation of life going on, presented via a series of automatically generated, behavioural analysis subtitles, as we follow an unlikely suspect via the CCTV network?

See also: CCTV hacked by video artists, Red Road, Video Number Plate Recognition (VNPR) systems, etc. etc.

PS if you live in Portsmouth, you might as well give up on the idea of privacy. For example, add in a bit of Path Intelligence, “the only automated measurement technology that can continuously monitor the path that your shoppers or passengers take” which is (or at least, was) running in Portsmouth’s Gunwharf Quays shopping area (Shops track customers via mobile phone), and, err, erm… who knows?!

PPS it’s just so easy to feed paranoia, isn’t it? Gullible Twitter users hand over their usernames and passwords – did you get your Twitterank yet?! ;-)

Speedmash and Mashalong

Last week I attended the very enjoyable Mashed Library event, which was pulled together by Owen Stephens (review here).

My own contribution was in part a follow on to the APIs session I attended at CETIS08 – a quick demo of how to use Yahoo Pipes and Google spreadsheets as rapid mashing tools. I had intended to script what I was going to do quite carefully, but an extended dinner at Sagar (which I can heartily recommend:-) put paid to that, and the “script” I did put together just got left by the wayside…

However, I’ve started thinking that a proper demo session, lasting one to two hours, with 2-4 hrs playtime to follow, might be a Good Thing to do… (The timings would make for either a half day or full day session, with breaks etc.)

So just to scribble down a few thoughts and neologisms that cropped up last week, here’s what such an event might involve, drawing on cookery programmes to help guide the format:

Owen’s observation that the flavour of the Mashed Library hackathon was heavily influenced by the “presentations” was well made; and maybe why it’s worth trying to build a programme around pushing a certain small set of tools and APIs, effectively offering “micro-training” in them to start with, and then exploring their potential use in the hands-on sessions, makes sense? It might also mean we could get the tools’n’API providers to offer a bit of sponsorship, e.g. in terms of covering the catering costs?

So, whaddya think? Worth a try in the New Year? If you think it might work, prove your commitment by coming up with a T-shirt design for the event, were it to take place ;-)

PS hmm, all these cookery references remind me of the How Do I Cook? custom search engine. Have you tried searching it yet?

PPS I guess I should also point out the JISC Developer Happiness Days event that is booked for early next year. Have you signed up yet?;-)

An Ad Hoc Youtube Playlist Player Gadget, Via Google Spreadsheets

A tweet from Keir Clarke from Google Maps Mania last week tipped me off to this post from maps evangelist Pamela Fox – Geocoding with Google Spreadsheets (and Gadgets) – in which she demonstrates how to improve the spreadsheets to maps workflow using a Google spreadsheet gadget.

I’d actually been thinking about using a mapplet in the maps environment, (rather than a gadget in the spreadsheets environment) to do something similar, so it was great to see how someone else had set about tackling the matter :-)

Anyway, a quick look through the spreadsheet gadgets tutorial convinced me it should be easy enough to create a gadget that could act as a video playlist player for a set of Youtube movie URLs listed in a spreadsheet. I already had some gadget code that I guessed may be reusable, and it turned out it was (Google Gadgets – RSS Feed Powered YouTube Playlist Player).

Here’s a demo:

Highlight the list of cells and include the custom gadget URL for the player:

As to where the list of videos came from? I scraped them from a webpage that included lots of embedded videos (i.e. a webpage that was essentially an ad hoc video playlist). A quick peak at the source of a candidate page showed me where I could find the URLs:

If we now load this page in to a Google spreadsheet using the =importXML formula (not the =importHTML formula), we can use an XPATH expression to pull out all the movie URLs from the page.

Here’s the expression you need:

For a couple of examples, see this how to scrape a list of Youtube movies from a webpage using Google spreadsheets and view them in a Google gadget.

Visual Controls for Spreadsheets

Some time ago, Paul Walk remarked that “Yahoo Pipes [might] do for web development what the spreadsheet did for non-web development before it (Microsoft Excel has been described as the most widely used Integrated Development Environment)”. After seeing how Google spreadsheets could be used as part of quick online mashup at the recent Mashed Library, Paul revised this observation along the lines of “the online spreadsheet [might] do for web development what the spreadsheet did for non-web development before it”.

In An Ad Hoc Youtube Playlist Player Gadget, Via Google Spreadsheets, I showed how a Google gadget can be used as a container for arbitrary Javascript code that can be used to process the contents of one or more Google spreadsheet cells, which, combined with the ability to pull in XML content from a remote location into a spreadsheet in real time, suggests that there is a lot more life in the spreadsheet than one might previously have thought.

So in a spirit of “what if” I wonder whether there is an opportunity for spreadsheets to take the next step towards being a development platform for the web in the following ways:

  • by offering support for a visual controls API, (cf. the Google Visualization API) which would provide a set of visual controls – sliders, calendar widgets and so on – that could directly change the state of a spreadsheet cell. I don’t know if the Google spreadsheet gadgets have helper functions that already support the ability to write, or change, cell values, but the Google Gdata spreadsheet does support updates (e.g. updating cells and Updating rows). Just like the visualization API lets you visually chart the contents of a set of cells, a visual controls API could provide visual interfaces for writing and updating cell values. So if anyone from the Lazyweb is listening, any chance of a trivial demo showing how to use something like a YUI slider widget within a Google spreadsheet gadget to update a spreadsheet cell? Or maybe a video type, that would take the URL of a a media file, or the splash page URl for a video on something like Youtube, and automatically create a player/popup player for the video if you select it? Or similarly, an audio player for an MP3 file? Or a slideshow widget for a set of image file cells?
  • “Rich typed” cells; for example, Pamela Fox showed how to use a map gadget in Google spreadsheets to geocode some spreadsheet location cells (Geocoding with Google Spreadsheets (and Gadgets)), so how would it be if we could define a location type cell which actually had a couple of other cells associated with in “another dimension” that were automatically populated with latitude and longitude values, based on a geocoding of the location entered in to a “location type” cell?
  • “real cell relative” addressing; I don’t really know much about spreadsheets, so I don’t know whether such a facility already exists, but it is possible to “really relatively reference” one cell from another; for example, could I create a formula along the lines of ={-1,-1}*{-1,0} that would take a cell “left one and up one” ({-1, -1}) and multiply it by the contents of the cell “left one” {-1, 0})? So e.g. if i paste the formula into C3, it performs the calculation B2*B3?
  • Rich typed cells could go further, and automatically pop-up an appropriate visual control if the cell as typed that way? (e.g. as a “slider controlled value”, for example; and a date type cell might launch a calendar control when you try to edit it, for example?

PS for my thoughts on reinventing email, see Sending Wikimail Messages in Gmail ;-)

Video, Video, Everywhere…

Now I know I live in the provinces, but I have to admit I had a huge dose of futureshock when I went up to London earlier this week: videos on the underground…

You know those big adverts on the wall opposite you on the tube, at the other side of the track – now they move, powered by magic lanterns in boxes suspended from the ceiling… (It’s called XTP, apparently: Cross-track projection.)

And that’s not all – how about the DEPs – Digital Escalator Panels?

There are also large LCD panels displaying video ads at other strategic locations, such as T-junctions, on various parts of the tube hall network…

The future – as portrayed in Blade Runner and Minority Report – is becoming a part of everyday life. The following movie, produced by CBS Outdoor, is called “Future of the Underground“. But what it describes appears to be the present…

Also on the video front, Google just got a little bit more aggressive in terms of grabbing video search traffic. Not content with already competing for second place behind Google web search itself in terms of search volume, embedded Youtube players now include a Youtube search box (you may have noticed…;-):

Youtube embedded player now with search box

If you paste the full Youtube embed code into your pages, then you can disable the display of the search box with the showsearch=0 embedded player parameter. (You can also disable the display of both related videos and the search bar by setting rel=0.)

However, if you are using WordPress, and embed movies using the construction, as I am, you’ll have to settle for whatever defaults WordPress chooses to embed…

I’m actually finding this so annoying that if the hosted WordPress folks don’t change the default embedded code to disable the search box, or they don’t provide me with the option to disable it, for example by using the construction [youtube=], I may well have to move blog again…

Displaying Events from Multiple Google Calendars in a Single Embedded Calendar View

Of all the things Google Calendar is good for, producing a single embedded calendar from a set of Google Calendars has not been one of them…

[Cue sideaways glance] Or so I thought…

In a flurry of activity earlier today, the Reverend posted this:

while I was admiring the new link to UMW Blogs on the UMW homepage, I clicked on the Events link, and to my surprise it was a Google calendar. Wow! Who knew? When looking at the source code, I released it was actually an aggregation of 10 different Google Calendars–all the more fascinating.

Jim went on: “I did a search for the term “UMW” through Google’s public calendars and found over 40” and the describes subscribing to the calendars, looking at them in the single aggregated view within Google Calendar itself, before hitting a problem: “Google won’t given me an embed code for the aggregation of all of the public calendars I subscribed to around UMW”

Err… rewind one moment… “When looking at the source code, I released it was actually an aggregation of 10 different Google Calendars“…?

This is what Jim saw but didn’t see:

Got it yet?

Take these two calendars, discovered by searching the Public Calendars in Google Calendar:
Snooker Championships Listing (some events are listed over the next four months or so).
Formula One Grand Prix listings for 2009 (the events start during March, 2009).

Now look through to March on this calendar: aggregated calendar view. It shows events from both calendars in the same view.

So what we have here is an aggregated calendar view that can be used to display several (that is, multiple) Google calendar feeds in a single view. To embed the calendar in your own page, just stick it in an iframe.

For each extra calendar feed, just add &src=CALENDAR_ID to the URL. The CALENDAR_ID will probably be of the form:

PS I did wonder whether I could add the aggregated calendar view as a single calendar to my Google Calendar. It seems not:

That is, it looks like each calendar feed will be added separately, rather than as a single, combined calendar.

But while that would have been a “nice to have”, the ability to display events from multiple Google calendars in a single calendar view in such a straightforward way is probably a big enough win anyway:-)

PPS aren’t comments wonderful (thanks Steve:-) – it seems thaqt you can generate the combined embed code within Google Calendar… Subscribe to the calenders you want to display, then go to the calendar settings:

Select the “Customise the color, size and other options” in the “Embed the Calendar” area:

And then select the calendars you want to include:


How OUseful.Info Operates…

After receiving an honorable mention (and a bottle of bubbly:-) at the IWR Info Professional of the Year Awards, I’ve picked up a few new subscribers from the Info Pro community, so here’s a quick run down of how is (dis)organised to explain how an (un)professional (in the sense of an unconference…) such as myself goes about moving info I think is important around on the web., the blog

First up is, the blog. It lives on the web at (that is – “O U S E F U L dot info”;-), although that address currently redirects to a hosted WordPress blog at

The blog can also be accessed via a couple of RSS feeds. The feed I recommend that people use, (a) because it is enriched…; b) because then I can move blog engine and the feed will remain) can be found at; a pure blog feed can also be found (and autodiscovered) direct from the WordPress blog at

To keep up with comments to the blog, you can subscribe here:

OUseful Archival Blog Search

Long time readers may know that, the Blog changed blog engine just before the summer. The old posts are archived at The searchbox on the archive site still searches the original blogsite (the URLs from that site now redirect to, but that facility may die at any time.

A comprehensive search over both the legacy (blogarchive current blogsites can be found at: (I’ll get a proper search page set up sometime whenever…!). This OUseful search engine is implemented as a Google Custom Serarch Engine, and searches over most of the blogs I maintain/post to (or have maintained in the past). I may try to get it to trawl the other OUseful properties too, but its focus for now is on blog content.

The OUseful linkblog

The enriched blog feed on Feedburner also pulls in content from one of my delicious bookmark tags on a daily basis: (the feed can be found at These bookmarks are ones that I think are important or likely to be of particular interest to readers. I try to annotate them with a description that reveals why you should clickthru… My feedthru bookmarks are also syndicated on the blog sidebar. My full bookmark list can be found at

The OUseful microblog

At the moment, the microblog conversation appears to be on Twitter, so to keep up with snippets of things I find interesting, and want to share, check out my Twitter stream – My recent tweets are also syndicated in the sidebar on the blog.

OUseful Presentations

Whenever I do a presentation, I try to post the slides to my slideshare account within a day or two of the presentation (often with a draft copy of the slides a day or two before the presentation): (feed).

Many of my presentation slides are a little, err, “opaque” without me there to talk around them. This is partly deliberate (I disagree with seeing more than half a dozen words on a slide;-) and partly because I’m still trying to find a style of presenting that suits me. If you haven’t had to suffer sitting through a OUseful presentation yet, my rates are very reasonable ;-)

To see the presentations I’ve bookmarked as particularly special, you can see my favourite slideshare presentations here: (feed). Note that I am considering refining this to use the feedthru tag for presentations I really want to share across the OUseful network (in which case, the URL will become and the feed URL will also change).

The OUseful Video Channel

Every so often I come across a Youtube video that gels with something I’ve been thinking about. Rather than submit these to delicious (or the delicious feedthru tag), I tend to favourite them on Youtube. You can see my favourites here:, or subscribe to them here:

The homepage

It’s been some time since I updated the OUseful homepage at explicitly as the intention behind it is that it aggregates and resyndicates other OUseful stuff. However, there are some static links there to some of the miniprojects I’ve dabbled with that I think are particularly OUseful. It’s also a demonstration of how to use a webtop (in the OUseful homepage case, I use Pageflakes).

Some OUseful firehoses

As well as the “published” content sources described above, you can keep up with my random doodlings via a couple of channels with a lower signal to noise ratio: my Yahoo Pipes (feed), where I mess around with prototype pipes, only some of which get blogged about, and my flickr stream – (feed) – where you can get a feel for what posts I may be about to post from the screenshots I’m capturing…

One of the easiest ways to feed from the OUseful firehouse is to tap into my friendfeed account: (feed).

So there you have it – a worklife/hobbylife lived in public…

PS you may be wondering why “OUseful” – that’s because when I started the blog, my intention was to write about stuff that might be OUseful, one day… (that is, useful in an OU context).

PPS you might be wondering why “psychemedia”. Psychemedia was a “counterculture” magazine I ran for a limited time. As a neologism, I like to think it’s defined as “the means by which minds communicate”.

OU Podcasts Site Goes Live

Another day, another OU web play… Realising that the OU on iTunesU presence has its downside (specifically – having to use iTunes), you can now get hold of OU “enhanced podcasts” from the OU Podcasts (beta) site.

The architecture of the site borrows heavily from the OU Youtube presence, offering Learn, Research and Life options (even if they aren’t populated yet).

I’m not sure whether there is duplication (or even triplication) of content across the Podcast, iTunesU and Youtube sites, but then again – would it matter if it was? And I’m not sure if there is a pipeline that allows content to be “deposited” once behind the firewall, then published on the podcast, Youtube and/or iTunesU sites in one go, as required (can anyone from any of the respective project teams comment on how the publishing process works, and whether there is any particular content strategy in place, or is content being grabbed and posted on the sites howsoever it can?!;-)

The pages for actual “programme” elements contains an embedded (though not shareable or embeddable?) player, along with subscription feeds for the topic area the “programme” is assigned to.

The programme page has a rather redundant “Permalink for this page” (err – it’s in the browser address bar?), and there doesn’t appear to be a link to the actual audio file, which might be useful going forward, but there is a range of topic/channel podcast subscription feeds.

I don’t think the podcast page resyndicates audio content from the, podcast feeds from OU/BBC Radio programmes or archived (real player, bleurghhh:-( content co-produced by the OU that is still available on the BBC website. (For examples, see the far from complete RadiOBU player.)

Design wise, I wonder how well this sort of page design would cope as a container for OU/BBC TV content? Maybe I should try to steal elements of the CSS stylesheet to tart up the OU/BBC 7 day catch-up service?! (Or maybe one of the podcast team fancy a quick doodle on the side?;-)

The URL design looks neat enough, too, taking the form: (that is,

The eagle-eyed amongst you may notice that there is an option (for OU Staff?) to Login, which leads to the option to “Join [the] hosting service”:

So while it doesn’t look like there is much benefit to logging in at the moment, it seems as though there is a possibility that the site will be offering hosting for individually produced podcasts (using Amazon S3, I believe…) in the near future?

I’m not sure where individually produced podcasts would live on the podcasts site, though? In the appropriate topic area?

Once again, great job folks… :-) [Disclaimer: I have nothing to do with the OU podcasts site.]

PS a couple more minor quibbles, just because…;-) The favicon is a KMI favicon. This doesn’t really fit, IMHO. The release of the Podcasts site has not been reflected (yet) with a mention on the /use site, which looks increasingly “stale” (there’s no mention of Platform there, either…).

Although there doesn’t appear to be an opportunity for Faculties or Departments to have a presence, as such, on the site (unless they provide content for topic areas?), I wonder whether the podcast site back end could actually be used as a content delivery service for Departmental content (e..g. the content on the Department of Communication and Systems website).

PS see also: Getting Open University Podcasts on your TV with MythStream

Merging Several Calendar iCal Feeds With Yahoo Pipes

Following up on Displaying Events from Multiple Google Calendars in a Single Embedded Calendar View, and picking up on a quip Jim Groom made in the post that started this thread (“Patrick suggested Yahoo Pipes!, you ever experiment with this? “), I did have a quick play with pipes, and this is what I found..,

The “Fetch Feed” block is happy to accept iCal feeds, as this iCal Merge pipe demonstrates:

(I grabbed the iCal feeds from pages linked to from the Stanford events page. A websearch for “ical lectures events” should pull up other sources;-)

If you import an iCal feed into a Yahoo pipe, you get an iCal output format option:

You can then render this feed in an online calendar such as 30 boxes: pipes merged iCal feeds in 30 boxes (here’s the 30 boxes config page for that calendar).

(NB it’s worth noting that 30 boxes will let you generate a calendar view that will merge up to 3 iCal feeds anyway.)

Using the Pipe’s output iCal URL to try to add the merged calendar feed to Google Calendar didn’t seem to work, but when I converted the URL to a TinyURL ( and used that as the import URL, it worked fine.

Do this:

then this:

and get this:

(I couldn’t get the Yahoo pipe iCal feed to work in iCal on my Mac, nor could I resyndicate the feed from the Google Calendar. I think the problem is with the way the Pipes output URL is constructed… which could be worked around by relaying/republishing the Pipe iCal feed through something with a nice URL, maybe?)

That okay for you, Reverend? :-)

PS having to add the feeds by hand to the pipe is a pain. So how about if we list a set of iCal feeds in an RSS feed (which could be a shared bookmark feed, built around a common tag), then pull that bookmark feed (such as the feed from a delicious page (e.g. into a pipe and use it to identify what iCal feeds to pull into the pipe?

Got that? The Loop block grabs the URL for each iCal feed listed in the input RSS feed, and pulls in the corresponding iCal events. It seems to work okay, too:-) That is, the feed powered iCal merge pipe will aggregate events from all the iCal feed listed in the RSS feed that is pulled into the pipe.

So now the workflow, which could possibly be tidied a little, is this:
– bookmark iCal feed URLs to a common somewhere (this can be as weak as shared tags, which are then used as the basis for aggregation of feed URLs);
– take the feed from that common somewhere and pop it into the feed powered iCal merge pipe.
– get the TinyURL of the iCal output from the pipe, and subscribe to it in Google Calendar, (for a personal calendar view).

Hmm… we still can’t publish the Google Calendar though, because we don’t “own” the calendar dates (the iCal feed does)? But I guess we can still use 30boxes as the display surface, and provide a button to add the calendar to Google Calendar?

OKAY – it seems that when you import the feed, it makes sense to tick the box that says “allow other people to find this calendar”:

… because then you can generate some embed code for the calendar, provide a link for anyone else to see the calendar (like this one), and use the tidied up iCal feed that Google calendar now provides to view the calendar in something like iCal:

PPS To make things a little easier, I tweaked the feed powered pipe so now you can just provide it with an RSS feed that points to one or more iCal feeds:

I also added a block to sort the dates in ascending date order. It’s simple enough to add the feed to iGoogle etc, or as a badge in your blog, using the Yahoo Pipes display helper tools:

Hmm, it would be nice if Pipes also offered a “calendar” output view when it knew there was iCal data around, just like it generates a map for when it sniffs geo-data, and a slideshow view when it detects appropriately addressed media objects? Any chance of that, I wonder?

Immortalising Indirection

So it seems that Downes is (rightly) griping again;-) this time against “the whims of corporate software producers (that’s … why I use real links in th[e OLDaily] newsletter, and not proxy links such as Feedburner – people using Feedburner may want to reflect on what happens to their web footprint should the service disappear or start charging)”.

I’ve been thinking about this quite a bit lately, although more in the context of the way I use TinyURLs, and other URL shortening services, and about what I’d do if they ever went down…

And here’s what I came up with: if anyone hits the blog (for example) via a TinyURL or feedburner redirect, I’m guessing that the server will see something to that effect in the header? If that is the case, then just like WordPress will add trackbacks to my posts when other people link to them, it would be handy if it would also keep a copy of TinyURLs etc that linked there. Then at least I’d be able to do a search on those tinyURLs to look for people linking to my pages that way?

Just in passing, I note that the Twitter search engine has a facility to preview shortened URLs (at least, URLs shortened with TinyURL):

I wonder whether they are keeping a directory of these, just in case TinyURL were to disappear?