I’ve mentioned the service a couple of times. This allows you to convene small meetings (up to 8 people) with video, voice and chat without the need for logins or additional browser plugins on both desktop and mobile (my quick video demo here). Today I got an email from saying

Get notified when someone enters your room!

We have now made it even easier to start a video conversation. When someone enters your room, you will receive a desktop notification that you can click to enter the room.

How can you use notifications?

  • Get notified when someone shows up for a meeting
  • People who want to talk to you can just go into your room
  • Make sure everyone on your team is alerted when your team meetings start

Read more on our blog.

Rooms you followNotifications work using a Chrome extension, but once you have this installed to can monitor multiple rooms.

So if you were wanting to run remote tutor support hours you could claim an room and enable notifications. Once you advertise your office ours you can monitor the room, get on with other work and wait for notification.

Because allows you to ‘lock rooms’ if you are providing one to one support you can prevent someone else ‘walking in’.

The awkward bit is handling the locked room. There is no queuing service and anyone visiting a locked room will be presented with the message below. Unfortunately if someone visits a locked room, sees the locked message when the message doesn’t go away when the room is unlocked.

Locked room

A way around this might be to have two rooms – corridor and office. The corridor room would always be open. As people arrive in the corridor room you could greet them and invite them to your ‘office’ and lock the office during consultation. Once done you could go back to the ‘corridor’ room if anyone else is waiting. If the ‘corridor’ gets busy (more than 7) you’ll have to sit in it yourself or lose the ability to enter (unless as an owner you get priority).

[Writing this it’s all sounding very faffy. I’d imagine you could do something similar with Google Hangouts but I love the fact requires no login. What do you think?]



Happy New Year to you too Simon! Having worked with Twitter and Google Maps API I was aware that their terms are becoming increasingly restrictive making the environment for 3rd party services for doing this increasingly difficult. There is a solution for doing using a modification of my Twitter Archiving Google Spreadsheet (TAGS) project (the guerrilla approach so to speak). The result for #rhizo14 is here (classic Maps seems to be struggling with this so here is what it looked like) (only viewable in non-mobile app versions of Google Maps and not the current preview version) and this post outlines how it was done. ...continue reading


New item starred in Google Reader then add to DiigoIFTTT is a web service that lets you do some basic plumbing between web services. The idea is that if something happens on one service (referred to by IFTTT as ‘channels’) then you do something else on another (options also exist for other triggers including time, SMS and external sensors). To illustrate this I use IFTTT to bookmark anything I star in Google Reader in my Diigo account. Setting up these recipes takes no more than selecting a trigger and assigning an action, so no coding required.

There are currently 41 channels in IFTTT (including Twitter, Facebook and RSS feeds) users can link together in this way. One of the most recent additions is Google Drive. With Google Drive integration you can store files or, the one that interests me more, insert a new row in a Google Spreadsheet.

A nice feature of IFTTT is the ability to share and reuse recipes. Here’s a selection of recipes that use Google Spreadsheets. You’ll see there is already a range of quick hacks people have shared including things like:

and my contribution:

Backup RSS Feed to Google Spreadsheet

Examples of RSS backup

RSS is great for accessing machine readable data but often one of the limitations, particularly with blogs, is results are limited to the last 10 or so items.  This has created problems in some of my projects like the OERRI Projects Dashboard where I need all the posts. The solution to date has been to rely on 3rd party services like the Google Feed API.

Blog posts

By using IFTTT I’m able to easily capture blog posts as they are written.  Having the data stored in a Google Spreadsheet makes it easy for me to query and export to other services (here’s an example from my blog) [this might be something JISC might want to do to capture and mine funded project feeds – other solutions/techniques already exist]

Is a service which lets users collect posts around topics and display in an online magazine format. I use to collect examples of how people are using Google Apps Script. Since June last year I’ve collected over 200 examples. I mainly do this for my own benefit, in part as a directed task to make sure I’m up-to-date with Apps Script developments, but also as a reference source of apps script examples. I can query these examples using a Google search but it concerns me that I’ve got no way to bulk export the data. Recently added a RSS option so I use this recipe to Backup to Google Spreadsheet.


There’s lots more you could do with the data now it’s in a spreadsheet and once I’ve built up a corpus I’ll have a play. One thing to note which might put some people off is to allow IFTTT to add data for you, you need to give them authenticated access to your Google Drive. I can live with that risk, but you might not.


Finding free ways to send and receive SMS messages is something I’ve covered before (Twitter Ye! Twitter Ye! Keep your students informed with free SMS text message broadcasts! and Free SMS voting using intelliSoftware SMS Gateway service). Browsing the Google Apps Script site I saw there is a new tutorial by Romain Vialard which lets you Link a Gmail Filter to Google Calendar SMS Notifications in which it “shows how to create a specific filter in Gmail and be notified by SMS when you receive an important email”. This got me thinking if there was a way of using this feature to send free SMS updates to students, say for example, when they they received some Fast-tracking feedback.

This solution needs the student to configure their calendar for SMS notifications and not all mobile operators are supported, but I will show how to make this work and you can decide if its worth the effort.

Student side setup

To enable SMS updates all the students need a Google Calendar and to have enabled SMS notifications for event invites (you may want to tell students about this anyway just so they can get SMS notifications for event reminders). This is done by:

  1. Google Calendar Settingsopening Google Calendar going into ‘Calendar settings’ from the cog icon top-right
  2. on the Mobile Setup tab the student needs to verify their mobile number (the supported UK providers are: 3; O2; Orange; T-Mobile; Virgin Mobile; and Vodafone – full international list here), then click ‘Send Verification Code
  3. once a code has been received enter it in the ‘Verification code’ field and click ‘Finish setup
  4. this then takes you to the ‘Notifications’ settings for your default calendar. In the New events row tick the SMS checkbox (you might want enable other SMS services), then click ‘Save
    Google Calendar Notification Settings

Sending SMS notifications manually

To send a message to students open your Google Calendar and create an event (you might want to create a new calendar so you don’t mess up your own schedules – creating a new calendar and creating events using your current date/time also means you have a record of when a message was sent - SMS notifications appeared to only be sent for events in the future). The fields included in the SMS are the event title, location and date/times. Here’s an example message recieved:

 Example SMS notification

In the ‘Add guest’ field paste in a comma separated list of student email addresses (these addresses need to be associated with the student’s Google Calendar so if you are not using Google Apps for Education some prep is required to get this list) and click ‘Add’. I would also recommend making sure the guest options to modify, invite and see a guest list are unticked.

When you save the event shortly afterwards students should receive the SMS message and an email similar to the one shown below:

Example email notification

You might want to agree a system with your students where they have to confirm they have seen it by clicking ‘Yes’ in the ‘Going’ option. This will give you a summary of who has seen it in the event details. You may want to utilise other Calendar features like notes.

guest list

Using Google Apps Script to automatically send SMS notifications

This whole idea came from a Google Apps Script tutorial so it only seems fitting to show how this could modified to automate the guest list creation, which in turn would trigger the SMS notification. I’m not going to go into any detail about what Apps Script is but basically as one of its main uses in to automate tasks it’s fairly easy to write a script that will take a list of email addresses from a Google Spreadsheet, create a new event in your calendar adding those addresses as guests. And here it is:

For this to work all you need is a column of email addresses associated with personal Google Calendars and within seconds your sending  free SMS messages to people.

So what do you think, a viable solution or is student side setup/concerns over network coverage going to prevent you using it?


When I initially pushed TAGSExplorer to the world one of the first reactions I got was from my friend Tony Hirst who suggested having a simple version which let users select two columns to generate a force layout diagram (that’s what I think he was suggesting anyway ;).

I’ve played around with other ways to get online network (force layout) visualisations from tools like NodeXL and Gephi, but these need a high level of faff. To take an edge list (here's an example of edge data), upload it to Google Spreadsheets and then point a browser window it makes the process a lot easier.

So stripping out some of the extra code from TAGSExplorer gives:

*** EDGESExplorer – A tool to generate force layout diagrams from a Google Spreadsheet ***


How to use it

  1. Generate or upload a 2 column edge list (target/source) to Google Spreadsheets
  2. File > Publish to the web…
  3. Copy the spreadsheet url and paste it in
  4. Click ‘get sheet names’ and select the sheet with your data on
  5. Enter the comma separated column letters for where your data is stored
  6. ‘go’

Advanced tips

You can specify a 3rd column with link styles for each of your edge rows. The default is solid but there are two more options ‘dashed’ and ‘dashedblue’

Like TAGSExplorer the data used for your diagram is queryable  so you can refine what you see.

Something for TAGS users

If you are using a more recent version of my Twitter Archiving Google Spreadsheet (TAGS), v2.3 or greater, you can generate an edge list for follow/followee relationships from the Summary sheet data. To do this create a sheet called ‘Edges’ then run Twitter > Get Protovis.  Here’s an example from the #devxs tweets I captured

(note the relationships are generated from the Google Social Graph API so aren’t 100% accurate. The code for this is based on Tony Hirst’s Friendviz)

BTW I had a query about whether the code for this is open-source and for the processing/generating d3.js svg area the answer is yes (I feel the html and css parts include too much from yohman's Twitter Smash so I’m asking for approval first).

PS I now have a nagging voice in my head to turn EDGESExplorer into a Google Gadget as a replacement to the protovis version. Anyone?


Would it surprise you that since I’ve fallen out with Google Reader, we’re on a trail separation (I’m having a fling with Tiny Tiny RSS) that we’re back together again. We’ve got some new ground rules though, the main one being when I Google +1 a news item it should also hit my Twitter feed.

“How?” You might ask. Well it’s not through the Google+ API which currently omits +1 activity and there are no hidden RSS feeds on a persons +1’s page (that I’ve found anyway). No instead I’ve gone for a good old fashioned screen scrape.

Using this Google +1s to RSS (Reader to Twitter) Yahoo Pipe that I put together I can generate a basic RSS feed to put in the service to tweetout on my behalf. The main reason for going to this extreme is I liked having the share button on Google Reader that wasn’t device dependant which could be hooked up to other services.

If you want to do something similar here’s how (I should point out that I won’t be using this method myself as @fstoner has reminded me, that for now anyway, you can use to convert starred items into tweets)

  1. On your Google Plus profile page click on +1’s in the tab and then ‘Edit Profile’ to make sure your that you ‘Show this tab on your profile’. While your here also take note of your Google+ user id which should be a long set of numbers your browser address bar e.g. profile image
  2. Visit the Google +1’s Pipe and insert your Google Plus ID, Run Pipe then copy the Get as RSS link (if you want to skip this step just replace the plusid in this link with your own
  3. Head over to and sign-in/register and Add Route specifying the RSS feed from above and then setup your Twitter account as the destination.

Some things to be aware of. This will tweet all your plus ones, not just those from Google Reader. To prevent timeouts the pipe only pulls the last 5 items. It ain’t full proof. Because Google shorten post titles the pipe gets the full title from the link so it may come a cropper with missing page titles and redirects.

Hopefully all this will soon be obsolete when a person’s +1s are accessible in the API.   


My pseudo PhD supervisor for my mocorate degree, Dr Tony Hirst (Open University – and now Visiting Senior Fellow in Networked Teaching and Learning/Senior Fellow of the University of Lincoln – congrats) recently, amongst many other things, started Tinkering with the Guardian Platform API – Tag Signals and Visualising New York Times Article API Tag Graphs Using d3.js.

Like any fake PhD candidate it’s important to follow the work of your supervisor, after all they will be marking your imaginary neverending thesis. So after much toil and many pointers from Tony here’s what I’ve come up with - a collision of the Guardian Platform API and visualisation with the d3.js library – GuardianTagExplorer.

In this post I’ll highlight a couple of features of the interface and then try to recall many of the lessons learned. Below is a short clip to show how it’s supposed to work or you can have a play yourself via the link above (because it uses SVG the 9% of you who use Internet Explorer 8 or less won’t see anything):

What does it do

When you enter a search term it asks the Guardian Open Platform if there are any articles associated with that term. Each of these articles has some metadata attached including a list of tags used to categorise the piece. Using a ported version of Tony’s python code these tags are collected and the number of other articles from the search result with the same tag are counted. The page then renders this information as a force layout diagram using the d3.js visualisation library (tags and links = nodes and edges) and a histogram by putting the same data into the Google Visualization API.

I didn’t show it in the video but you can create predefined searches for linking and embedding. For example, here’s one for the term ‘JISC’ and if your RSS reader hasn’t stripped out the iframe the same page is embedded below:

How it was made/What I learned

I mentioned to my unsupervisor that I was thinking of doing something with the a live version of the Guardian Open Platform with d3 based on his Friendviz example and he immediately spotted a couple of problems, the biggest being the Guardian API prefer it if you keep your api key a secret.

Yahoo Pipes as a proxy service

Fortunately Tony also had the answer of using Yahoo Pipes with a private string block as a proxy sketchservice (I’m not sure if there is much benefit to doing this as while the API key is still hidden anyone can access the pipe. The API is rate limited anyway and I hope the Guardian people see I’m keeping to the spirit of the terms and conditions.

So data source, check. Porting python to JavaScript. Relatively straight forward apart from no combinations mapping function, but having sketched out what was going on I think I’ve got an equivalent.

ddd dd dd d3.js

Big headache! even though I’ve churned out a fair bit of code I’m not or never have been a professional programmer so getting my head around d3.js has been a big challenge. There were a couple of examples I spent a lot of time picking over trying to understand what was going on. The main ones were:

[These examples are renderings of GitHub Gists using the service created by … mbostock and is a great way to publish little snippets of stuff]

I also got a peak at the generated code for Tony’s Visualising New York Times Article API Tag Graphs Using d3.js. You’ll notice that my offering is similar in appearance and functionality to yohman’s example (I’m quietly ignoring his copyright mark – fair use etc :-s).

Its hard to convey exactly what I learned from the last couple of days of pushing pixels. The big difference between d3 and the similar protovis library I used here is there is a lot more setting up to do in the code. The payoff is you have far more control of the end result. Having spent days trying to understand d3, it was contrasted by the minutes needed to create the tag histogram using the Google Visualization API.

One thing I never got working is a zoom/pan effect. I’ve seen tiny snippets of code that does this for charts. Unfortunately the API Reference for this behaviour is still to be written.

Where next

Now that I’ve got a basic framework for visualising tag/category information I interested in refining this by trying out some other examples. So if you have an API you want me to play with drop me a line ;)

PS my code is here and you can see how it renders in blocks here

PPS really must setup a labs page outlining my various experiments

PPPS forgot to say during a d3 low I few together a prototype of the tag explorer using protovis in a couple of minutes


@mhawksey just used the twitteralytics script to create the following tweet archive: . thx for the awesome script! :)
Oct 06 via webFavoriteRetweetReply

One of the great things about open development is people take your stuff and do interesting things with it that you never thought about. As you’ll see from the embedded tweet above that’s exactly what Saqib Ali did, taking my Google Spreadsheet Twitter Archive mashup and combining it with the oEmbed API to create this curated page of tweets, brilliant!

Inspired by this, in this post I highlight why using a spreadsheet as a data source for embedded objects might be useful and how I made the SpreadEmbed prototype which allows you to do this.

What is SpreadEmbed?


You take a spreadsheet like this with a column of links, run it through SpreadEmbed and get a page like this. That’s all there is to it.

On a technical level SpreadEmbed reads a column using the Google Visualization API, passes the links to and generates a page from the result.

Why use a Google Spreadsheet as a data source?

Of course you could use a tool like Storify (which also is powered by to do this but as I highlighted in this recent post there are limitations to far back you can go in the twitter search. I also like the concept of reusing a spreadsheet of tweets because as I’m discovering in my own analysis of event hashtags there are some very complex and interesting stories to tell which would benefit from some actual quotations. So for me I can filter a large archive of tweets and render it in a more visually appealing way (rather than as in this post directing people to a spreadsheet of data).

Another consideration is Google Spreadsheets are in themselves very collaborative environments allowing multiple editors, submissions via Google Forms or custom interfaces (I’ve started collecting article suggestions using a custom bookmarklet).

How SpreadEmbed was made: Some highlights

Putting this prototype together took about 4 hours to get it working and about the same again with tweaks. Fortunately there was already an example on the github, which embeds YouTube clips from a Twitter search. As my prototype iterates across cells most of the work has already been done.

The remaining headache was providing a way to access cell data from a user defined spreadsheet. The solution was using Tony Hirst’s Google Spreadsheets as a Database code (just for fun … (more because I wanted to see if I could do it) I wrote some code to generate a dropdown list of sheet names to allow the user to indicate where there links were). The source code is here, feel free to re-use/mod.

Limitations and better ways

One of the reasons I’m presenting SpreadEmbed as a proof of concept/4 hr hack and not a service is if you are making more than 10,000 calls a month the the API you gotta pay. Also there are probably better ways of doing it. Saqib hasn’t said how exactly he did his version, but I’m guessing you can just copy and paste a list of urls into a post and if you’ve got an type plugin it’ll do the rest of your work for you.

Anyway it was all just for fun  …

By me: SpreadEmbed: Turning a Google Spreadsheet of links into a page of embedded objects
Oct 12 via Tweet ButtonFavoriteRetweetReply

The Higher Education blog for Scotland North and East recently hit it's 100th post. Since its first post in May last year a wide variety of topics have been covered from the analysis of research publications, interviews with noted academics and tips on how to enhance teaching and learning using a range of tools and techniques.

For it's 100th post MASHe highlighted how a simple ‘mashup’ of twitter and Yahoo Pipes could be used as a free electronic voting system. This post has kindly been highlighted in Seb Schmoller’s Forthnightly Mailing and Jane Hart’s Social Media in Learning blog, which has resulted in a small flurry of ‘retweets’ as others pick up on the idea.

Click here to read the TwEVS post on MASHe