MASHe

The Higher Education blog from the JISC RSC Scotland North & East

I’m going to start this most with a small homage to Tony Hirst. Tony has the honour of posting the first ever comment on this blog and ever since I’ve been an avid follower of his work on OUseful.info. When I saw Tony had started playing around experimenting with using Google Apps Scripts to post data from Spreadsheet to Calendar and vice versa it looked like he was having way to much fun, so like with so many of Tony’s other ideas I thought I would have a go too.

The challenge I set myself was to take Tony’s work and see if I could use it as the basis on an online events booking system. The idea was to enter event details into a spreadsheet which would then be used to automatically populate a site and spreadsheet, delegates being able to book in via a form. Here’s how I got on …

#Issue 1 – This solution requires Google App Scripts which aren’t available to in the basic version of Docs/Site. To get access you need at least a Google Apps Standard, which is free but you need to register with a domain url.

Update: I like to think it was because of my post that Google now makes Apps Script available to everyone using Spreadsheet ;-)

Having signed up to Google Apps I then started following Tony’s posts on Updating Google Calendars from a Google Spreadsheet and Maintaining a Google Calendar from a Google Spreadsheet, Reprise. My spreadsheet layout is almost identical except I added 2 more columns, an ‘Added Date’ and ‘ID’.image

Tony, I was able to set the locale for the date in the spreadsheet via ‘File –> Spreadsheet Settings’ and added some conditional formatting to highlight items which hadn’t been added yet.

Below is the code I dropped into the spreadsheets script editor.

function processEvents() {
 //declare vars
 var cal = CalendarApp.getDefaultCalendar();
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var dataSheet = ss.getSheetByName("Events"); // ref sheet name (thought I might have ended up with multiple sheets)
 var maxcols = dataSheet.getMaxColumns();
 var dataRange = dataSheet.getRange(2, 1, dataSheet.getMaxRows() - 1, maxcols);
 var data = dataRange.getValues();
 var cal = CalendarApp.getDefaultCalendar();
 var site = SitesApp.getSite("sub-tweeter.net", "mashe-events-from-calendar"); // .getSite(domain, sitename)
 var annPage = site.getAnnouncementsPages();
 var col_added, col_title, col_desc, col_tstart, col_tstop, col_loc, col_num, col_ID;
 // pull column header
 for (var j=1;j<=maxcols;j++){
   var header= dataSheet.getRange(1, j, 1, 1).getValue();
   switch(header){
     case "Status/Action":col_added=j-1;
     case "Title":col_title=j-1; break;
     case "Description":col_desc=j-1; break;
     case "Start": col_tstart=j-1; break;
     case "Stop": col_tstop=j-1; break;
     case "Location": col_loc=j-1; break;
     case "Number of places": col_num=j-1; break;
     case "ID": col_ID=j-1; break;
   default:
   }
 }
 // pull data
 for (i in data) {
   var row = data[i];
   var added = row[col_added];  //Check to see if details for this event have been added to the calendar(s)
   if (added == "Add"){
     // collect event details
     var title = row[col_title];
     var desc = row[col_desc];
     var loc = row[col_loc];
     var tstart = row[col_tstart];
     var tstop = row[col_tstop];
     cal.createEvent(title, tstart, tstop, {location:loc, description:desc}); // create calendar event
     var message = "Start:" + Utilities.formatDate(tstart, "GMT", "dd/MM/yy HH:mm") +"<br/>Finish: "+Utilities.formatDate(tstop, "GMT", "dd/MM/yy HH:mm")+"<br/>"+desc; // prepare message
     site.createAnnouncement(title, message, annPage[0]); // add announcement to site
     var annList = site.getAnnouncements();
     var eventID = annList.length; // get announcement ID
     // set value in spreadsheet
     var v = parseInt(i)+2; // +2 is an offset to do with the numbering of rows and the "blank" header row 0;
     dataSheet.getRange(v, 3, 1, 1).setValue(eventID); // add the event ID
     dataSheet.getRange(v, 2, 1, 1).setValue(new Date()); // add today's date/time to 'Added Date' column
     dataSheet.getRange(v, 1, 1, 1).setValue("Added"); //set the fact that we have updated the calendars for this event
   }
 }

My main tweaks were:

  • dynamically capture the data range using getMaxRows() and getMaxColumns();
  • define a Google Site to push data to (as well as the Calendar);
  • adding the event to a Google Site using createAnnouncement(); and
  • adding the ‘added date’ and ‘Event ID’

Here is the public calendar and Google site populated with data from the spreadsheet (web page view) – I’m currently playing around with the script a bit more so these links are turbulent.

Having gotten this far my next plan was to use the Expense Report Approval Tutorial as a basis for a booking form which would allow a submit/approve workflow. To do this my plan was to have a template spreadsheet for each event which I duplicate using the event ID as an identifier.

# Issue 2 – Google Apps Script doesn’t have a method for duplicating spreadsheets

I think I might have got around this by creating a function which would cycle through an existing spreadsheet, storing the values and then creating a new sheet reversing the process to populate it with data. I don’t think it would however have duplicated form functionality. The concept was beginning to unravel however because …

# Issue 3 – You can only have one form per spreadsheet.

Oh dear!

It was all getting a bit too messy which is a shame because it would have been fun to use Contact Services API to add delegates to Google Contacts either using the setNotes() or setUserDefinedField() to record events the delegate had signed up for, dietary requirements etc. and lots more interesting stuff.

One solution to the who registration issue  might have been to Leveraging Google App Engine services from scripts, but that is going into a whole realm of coding I would prefer to avoid.

So SharePoint anyone? ;-)


Here's some posts which have caught my attention this week:

Automatically generated from my Google Reader Shared Items.

Me doing my bit for 'The Services' The 2nd and 3rd of March saw the 7th annual Enhancement Themes conference. As with the past two year I was a delegate at this event, but this time in the slightly different role of one of the exhibitors. In between showcasing some of the JISC wares I managed to slip into some of the keynote sessions. Each year the Enhancement themes do a great job is finding presenters who are incredibly influential and thought provoking. This year my favourite was Professor George Kuh, Chancellor’s Professor of Higher Education at Indiana University Bloomington, and founding director of widely used National Survey of Student Engagement (NSSE*).

Unlike the NSS which is looking at general student satisfaction, NSSE is a survey which aims to “assess the extent to which students engage in educational practices associated with high levels of learning and development”. It assesses this by asking how students spend their time and what they gain from attending their institution. My understanding is that NSSE is

using engagement as an indicator of “grades, persistence, student satisfaction and gains across a range of desired outcomes”

The survey is broken into four main areas: student behaviours; institutional actions and requirements; reactions to the institution; and student background information. For examples of type of questions asked you can view past and present NSSE surveys.

The NSSE has been widely adopted in North America (US: 3million responses from 1,400 institutions; Canada: 64 HEIs), South Africa and Australia and been used since 2000 resulting in a rice dataset.

Student engagement varies more within than between institutions

The NSSE has found that there is more local than inter institutional variation in student engagement. i.e. there is little difference in student engagement between the best and the worse institutions, but the differences between institutional departments is major. 

‘How can you get students more engaged?’ I hear you ask, why with ‘high-impact’ learning activities. As it happens George has written book on the topic, High-Impact Educational Practices: What They Are, Who Has Access to Them, and Why They Matter. Although it wasn’t explicitly mentioned I image George has used the NSSE survey to identify ‘high-impact’ activities. His top 10 were:

  • First-Year Seminars and Experiences
  • Common Intellectual Experiences
  • Learning Communities
  • Writing-Intensive Courses
  • Collaborative Assignments and Projects
  • “Science as Science Is Done”; Undergraduate Research
  • Diversity/Global Learning
  • Community-Based Learning
  • Internships
  • Capstone Courses and Projects

There are some Americanisms in this list but hopefully you get the picture. I would say all of these activities are reflected in the existing academic research on best teaching/learning practices.

Engaging in these activities George suggested that students are more likely to:

  • Invest time and effort
  • Interact with faculty and peers about substantive matters
  • Experience diversity
  • Get more frequent feedback
  • Reflect & integrate learning
  • Discover relevance of learning through real-world applications

The Enhancement Themes have already generated a number of resources covering these areas including research teaching linkages, integrative assessment and assessment, the first year and responding to student needs (as well as flexible delivery). The conference also saw the publication of 5 new briefing papers under the current ‘Graduates for the 21st Century strand:

In George’s presentation he highlighted three action steps:

  1. Use engaging pedagogies campus wide
  2. Put money where it will make a difference to student success
  3. Ensure programs are high quality 

I’m sure you would agree that all of these are what we are striving for anyway and not particularly earth shattering. If you adopted the NSSE locally there is an opportunity to use the data diagnostically to identify the your ‘local variations’, identifying courses that are not engaging students. I’m sure many of you are already doing this through end of module surveys, but I would recommend looking at the NSSE questions to see if these need to be re-examined.

Slides for all the conference keynote sessions including George Kuh’s are available on the Enhancement Themes plenary presentations page (videos of the sessions will be available shortly).

*pronounced Nessie, hence the title of this post


Here's some posts which have caught my attention this week:

Automatically generated from my Google Reader Shared Items.

JISC RSC-MP3 LogoThis month Kevin interviewed Ian Hart, the Director of Schools and Colleges Partnerships for the University of Wolverhampton. This role has enabled Ian to set up a number of collaborative partnerships across the area to enable effective networking of teaching professionals. These collaborative partnerships are enhancing the design and delivery of common courses and staff CPD programmes, etc, across local HE in FE networks. The net result is improvements in operational efficiencies, sharing of knowledge and leaner working practices. These local communities of practice are proving that true collaborative working is yielding very positive results, under current economic strains. Ian also makes comments about how networked e-portfolio software is being used as a conduit to further enhance collaborative and teaching practices across education sectors local to Wolverhampton.

Interview with Ian Hart

Part 1

 
Download Links
Duration:  34 minutes
Size: 24MB

Part 2

 
Download Links
Duration:  18 minutes
Size: 13MB

Subscribe to our podacst via RSS Subscribe to our podcast via RSS
Subscribe to our podcast via iTunes Subscribe to our podcast via iTunes

Summary Part 1

01:00 – Ian introduces himself and the liaison department he is Director of. Liason with HE in FE and schools, and role within area

02:40 – How they interpret requirements from HEFCE for HEinFE. Close co-operation with local HE co-ordinators. Importance of widening participation and ensuring standards are maintained from partner colleges and an integrated approach to the curriculum.

11:00 – How lifelong learning networks will be sustained. Whilst scheduled to be phased out looking at what they can do to safeguard. For example, could they be turned into member organisations or become more commercial. Also what can be sustained with no cost such as progression agreements used by feeder colleges. Use of strong and weak progression agreements. Strong agreements having a guaranteed route into HE.

16:50 – Ian gives more background around how and why strong progression agreements are used. Making students aware of the link between the course they are on at college and the related university course they may end up on.

21:40 - Aimhigher Learning Pathways System (ALPS) database of progression courses for the West Midlands

26:40 - University of Wolverhampton Collaborative Achievement Network (UWCAN) -pulled resources for staff development making it freely available to partner college staff

31:00 – IQER strategy support to partner colleges

Summary Part 2

00:15 – Collaborative provision and strong work partnerships. Reducing costs with a collective approach.

05:20 – Need to work more with employers to maximise impact. Shared and flexible approaches, which might include bite sized learning. Intelligent Career Development approach.

09:00 – Uses of technology to enhance progression include the use of WOLF (VLE), and the PebblePad e-portfolio system being used at college and school level. Supports communication as part of the learning process, removing the boundaries of physical space and time. Enhancing communication and understanding.

Intro/Outro music: 1-2-3-4 from stream of unconsciousness by Jeremy B. Northup


JISC RSC-MP3 Logo RSC-MP3 is a monthly audio podcast highlighting some Higher Education focused e-learning news, interviews and resources brought to you by Kevin Brace (JISC RSC West Midlands) and Martin Hawksey (JISC RSC Scotland North and East). As ever we have summarised links to the various topics we discuss and indicate the timestamps so you can jump straight to our insightful repertoire. You can listen to this podcast on your computer, or when “on the move” by adding it to your ipod playlist. Here is an archive of our recordings, which is also available on iTunes.

“Technological convergence – changing the way we create, consume, learn and interact with each other”

This month Martin responds to a listener request and discusses Google’s latest social feature Buzz. Buzz has been designed to make sharing easier, linking to Google other services including YouTube and Reader as well as third party networks like Twitter and Facebook. We conclude that whilst Buzz is currently of limited benefit to the majority of educationalists it is another example of how the interlinking of separate communication and media streams has the potential to benefit formal and informal learning, technological convergence ‘changing the way we create, consume, learn and interact with each other’. An example of this convergence is outlined in Martin’s recent work which allows twitter discussions made during television broadcasts to be replayed as subtitles in BBC iPlayer downloads.

Aspects of ‘convergence’ are further highlighted by Kevin has he discusses his months blog posts which includes his reflections on the recent Learning Technologies Conference and the JISC Business and Community Engagement programme. In particular Kevin highlights the growing importance of both informal and “rapid e-learning”, discussing some of the tools which can be used to facilitate and measure its impact as well as highlighting some effective practice case studies.

Kevin also highlights JISC’s Business and Community Engagement programme which is “designed to support institutions in their strategic management of relationships … in order to deliver services which benefit the economy and society”. This programme is a response to the Governments desire to enhance knowledge transfer/exchange and Kevin discusses some examples of this happening locally in the West Midlands and nationally. This also links to Kevin’s interview with Ian Hart who is Head of Schools and Colleges Partnerships at University of Wolverhampton. Click here for the interview with Ian Hart.

HE Update February 2010

 
Download Link

Duration: 36 minutes
Size: 34 MB

Subscribe to our podacst via RSS Subscribe to our podcast via RSS
Subscribe to our podcast via iTunesSubscribe to our podcast via iTunes

Our blogs

Links from Martin’s subjects: Timestamps represented as [minutes:seconds]

Links from Kevin’s subjects: Timestamps represented as [minutes:seconds]

Intro/Outro music: 1-2-3-4 from stream of unconsciousness by Jeremy B. Northup


Twitter Subtitles in BBC iPlayer Since my first post on Twitter powered subtitles for BBC iPlayer Tony Hirst has put together another interesting post presenting a method for curating supplemental content for students using his DeliTV. Tony finishes his post commenting that it would be useful to see how timed text could be used to supplement radio broadcasts with either embedded subtitles or a standalone player.

In my original post I mentioned that I tried the smilText JavaScript engine without any success. I also had a looked at how radio broadcasts are delivered via BBC iPlayer. As the majority aren’t available for download and the BBC are phasing out RealAudio next month (RealAudio can be synchronised with RealText for captioning) these were also dead-ends (I did however come across iPlayer Converter which is useful if you “want to be able to access BBC Radio programming but can’t use the iPlayer”). I also had a look at Tony’s suggested Accessible HTML5 Video with JavaScripted captions, again a dead-end without converting audio into a compatibly format.

Having exhausted these other avenues I decided to have another look at the smilText JavaScript engine again and guess what I got it to work! So as well as adding a real-time twitter player it made sense to add some other additional features below:

And here is the link to the tool:

*** Twitter Powered Subtitles Tool ***

How I got it to work

So what did I do wrong? Quite a bit as it turns out:

  1. Didn’t import all of the scripts for the JavaScript SMILText Player. In my defence the official documentation was a little missleading.
  2. Understanding the SMILText schema (need a <tev> before a <clear>???)
  3. Using closing tags like this <tev /> instead of <tev></tev>. Don’t know if this was because of the DOCTYPE was wrong or the way the JavaScript parsed the document.
  4. smilText JavaScript engine doesn’t appear to implement hh:mm:ss ClockValueSyntax

Observations and further development

It is worth noting that smilText JavaScript engine doesn’t appear to automatically wrap on white-spaces. I don’t no if this is a limitation of the engine or the SMIL language. I also wanted to keep <a> tags in browser playback but this doesn’t appear to be part of SMIL 3.0 smilText.

How this tool/concept be further developed? The playback browser is very basic but could be easily enhanced with some TLC. The smilText JavaScript API has some useful methods which could easily be exploited. There is also the question of how this tool could be integrated into other services like Twapper Keeper, opensubtitles.org (which is used by boxee and others) or FanHubz.

As always the source code is available here for further development.


Here's some posts which have caught my attention this week:

Automatically generated from my Google Reader Shared Items.

The Virtual Revolution Banner

Following on from my post on Twitter powered subtitles for BBC iPlayer below is the subtitle file for the latest episodes. More information on the series is available from The Virtual Revolution website.

  • The Cost of free Sat 13 Feb 2010 @ 21:15 | Subtitle file (search term: ‘#bbcrevolution -watching’)
  • Homo Interneticus Sat 20 Feb 2010 @ 20:15 | Subtitle file (search term: ‘#bbcrevolution -watching -RT)

To use these files follow these steps

  1. Download episode from iPlayer
  2. Locate downloaded folder for the episode (default for PC it is [My Documents] > [My Videos] > [BBC iPlayer] > [repository] > [obscure-broadcast-folder-name-like-b00qx4t0]
  3. Replace the file which ends ‘_prepared.xml’ with the one download above using the same obscure file name ie b00qx4t0_prepared.xml.
  4. Start the clip in iPlayer pressing the ‘S’ button to turn subtitles on/off.

If you would like to create twitter subtitle files for other BBC programmes available for download on iPlayer you can use the link to the tool below:

Click here to create twitter subtitles
for other BBC iPlayer downloads


Virtual RevolutionUpdate: Latest twitter subtitle file for The Virtual Revolution

Update: Revised code to include other timed text/caption formats

On demand television like the BBC iPlayer has changed the TV habits of many users. Instead of waiting to tune into the live broadcast views can download and watch programmes at a time of their choosing and on a range of devices. Another media revolution has been status update/social networking sites like twitter. Ever wanting to engage with the listeners twitter is becoming the new ‘phone-in’ or ‘SMS text your thoughts’ for broadcasters. Whilst in the general populous there is still uncertainty over the benefits of sites like twitter broadcasters are already exploring how this technology can be used. A case in point in the BBC/Open University The Virtual Revolution series which is exploring how 20 years of the web has shaped our lives. Its not surprising that a programme of this ilk is exploring how technology can be used to support the broadcast (including allowing viewers to mash-up and reuse clips from the series), it is also the first programme that I’ve seen broadcast a hashtag within its opening credits. The hashtag is a community driven invention which allows comments and content to be tracked across the web including in comments made as tweets.

I find watching the programme with this backchannel communication is entertaining and for me adds a new dimension. There are perhaps educational uses to be explored such as engaging students in real-time discussion, asking them to critically reflect and evaluate what is being presented in real-time.

But what if you are busy on a Saturday night? Whilst you can rewind the programme via iPlayer and use the twitter search to pull up the tweets, these have become decoupled. This might have been a problem Tony Hirst encountered when he tweeted:

psychemedia mulling over how to replay a hashtagged feed in real time from, say, a two hour window (bbcrevolution) View tweet

Tony has been a valuable source for me in past, providing inspiration for my Twitter voting mash-up (TwEVS). Another of his ideas is a Twitter YouTube subtitle mashup, which extracts tweets to use as subtitles in YouTube videos of live events. Using exactly the concept I’ve come up with a way to allow a user to replay a downloaded iPlayer episode subtitling it with the tweets made during the original broadcast.

In action

So first to see the results in action. The video below shows the iPlayer playing ‘The Virtual Revolution: The cost of free’ displaying the tweets made during the live broadcast as subtitles.

How it was done

When you download a programme to watch using iPlayer as well as the video several other assets including a subtitle file in W3C Timed Text Authoring Format. To see this episode in full with twitter subtitles download The Virtual Revolution: The cost of free here. Once downloaded by default the programme should be saved in [My Documents] > [My Videos] > [BBC iPlayer] > [repository] > [obscure-broadcast-folder-name-like-b00qx4t0] (not sure what this would be for non-PC). To view with tweets open this folder and replace ‘obscure-broadcast-folder-name-like-b00qx4t0_prepared.xml’ file with this one [righ-click save link as], keeping the folder name at the beginning of the file name. When you play the video and turn on subtitles the tweets should be displayed.

imageTo create the XML file for any downloadable BBC broadcast I created a tool using the same concept as Tony’s subtitling YouTube example. Here is the Twitter Powered Subtitles for BBC iPlayer Tool I created.

Whilst the tool was designed for the iPlayer it generates a timed text xml file which might be suitable for other applications. Hopefully the tool is straight forward to use all you have to do if find a programme with an active twitter back-channel (you might be surprised at how many their already are once you start searching). If you have any questions/problems post them in the comments below.

Here is the code used for this tool (it also uses the SimplePie code library for handling the RSS). The code includes comments to describe what is going on. Feel free to edit, modify or build upon again use the comments below to share developments.

Limitations and future directions

One of the limitations of this solution is it only replays tweets for the duration of the programme. Having looked around I haven’t been able to find any other twitter replay tools. A solution I did explore was using another W3C format called Synchronized Multimedia Integration Language (SMIL). This standard also integration of multimedia with text, images and other objects. My plan was to use the smilText JavaScript engine to replay tweets in the browser without linking it to any media. Having played around with the JavaScript engine I couldn’t get it to work. Perhaps the baton needs to be passed back to Tony … ;)