OUseful.Info, the blog…

Trying to find useful things to do with emerging technologies in open education

Archive for July 2010

Library Location Data on data.gov.uk

with 6 comments

Where do I find a list of of UK public libraries so that I can:
a) plot them on a map;
b) search for them by location (e.g. within five miles of a particular postcode)?

For UK Onine Centres, it’s easy enough (5 Minute Hack – UK Centres Online Map); and there’s the start of a hack for plotting out the locations of all HEI libraries via SCONUL data (UK HE LIbraries map); but when I asked the lazyweb this question with respect to public libraries at the end of last week, the best response I got back was to use Librarything (Libraries Near Me Map (Courtesy of LibraryThing)).

So how about data.gov.uk? Has any library data been logged there? Searching for library didn’t turn up much at all, though libraries was a little more successful; here’s the result for library OR libraries

Data.gov.uk - libraries

More specifically, at the current time, there are the following relevant datasets:

Libraries
A list of libraries in Warwickshire, including contact details Overview … Tags warwickshire-county-council libraries warwickshire Department … Council Wiki Libraries Resources Other XML …

Sunderland Libraries
List of all Libraries in Sunderland. Overview … Tags local-authority-services libraries sunderland Department … Wiki Sunderland Libraries Resources …

East Staffordshire Libraries
A list of the libraries in East Staffordshire. Overview … – Tags libraries east-staffordshire Department … Wiki East Staffordshire Libraries Resources Other XML …

Bournemouth Libraries
Details of Bournemouth Libraries, including location, opening times Overview … Tags bournemouth-borough-council libraries local-authority bournemouth … Wiki Bournemouth Libraries Resources …

Hampshire County Council Recreation Sites
… gardens reserve arts country-park library nature Department … Hampshire County Council, hampshire-county-council, library, museum, nature, reserve) …

The data is provided in a range of formats (I think I really need to do a set of recipes for handling each type..?):

- East Staffordshore Libraries provide a KML file, the URL of which can be pasted directly in to a Google search box to generate the corresponding map view (and hence an embeddable version etc.)

East Staffs Libraries

- Sunderland libraries use another recognised XML format, the ESRI ArcGIS 9.2 XML representation:

Sunderland libraries - ESRI

- Warwickshire libraries look to be using their own brand of XML, giving name, structured address, phone, fax, email, web address, co-ordinates (a lat, long pair) and a photo:

Warwickshire libraries

- Bournemouth Libraries publish their data as CSV including name, address, phone, email, an empty A column (A HREF=…? ie a slot for URLs?), and opening times by day of week; the geodata is provided as eastings and northings:

Bournemouth libraries CSV

- Hampshire County Council list their libraries in the context of recreational sites (cultural and leisure services is another description that often gets used, I think?) as a CSV file, with headers Name,Address,Town,Phone,Postcode,,Lat/long,URL,Short description,Tags. (NB there is an unlabeled column in there – the lat/long column header should be split over two columns – one for lat, one for long); libraries are identified from the description column (Local Library) and from the tag column (library).

Hampshire recreation services

So – what can we say? Five data sets describing the location of libraries from five councils using five different representations. Which is best? Which is easiest to generate? Which is easier to use, for what, by whom?

I think I need a couple more posts on this topic – one looking at ways of actually getting a quick map based preview of the data in the data sets, one looking at the issues involved with generating and publishing the data on the council side. (If any council developers read this, I’d appreciate your comments about how you would go about generating these data files and what issues there are wrt getting the data out in different formats.)

PS One of the many map related things I haven’t tried yet (the following was one of the things I wanted to do had I made it to today’s Chips and Mash Mashed Library event) is to have a play the Google (yes, I know… sorry…) Maps data api, which allows you to import a geodata set as KML or CSV data, and then use the API “to filter a large set of features by radius, bounding box, or text attributes, and sort them by their distance from a location”. I’m not sure what the licensing is around the scraped SCONUL library location data, but it’d be a good candidate for a practical, proof-of-concept play with the Google Maps data API… It would also be interesting to see how well it copes with the two flavours of CSV (one using lat/long, one with eastings/northings) described above…

Written by Tony Hirst

July 30, 2010 at 9:50 am

Posted in Data, Library

Tagged with

Project Pitching: JISC Elevator Concept

with one comment

A month or two ago I submitted an (unsuccessful:-( application to a joint Mozilla/Shuttlewoth Foundation call for an open education fellowship (though I believe it will call again – and accept resubmissions, later this year). The application process was via the Mozilla Drumbeat Platform, which encourages people to submit and join projects related to the idea of the open web:

Mozilla drumbeat

As support grows around a project, it can get the attention of not only other people (maybe developers, maybe participants, maybe users) but also might attract the interest of Mozilla Foundation – and with it, funding…

At the< JISC Innovation Forum today, a similar approach was pitched for attracting small amounts of JISC rapid innovation funding: the JISC Elevator (mock-up).

JIISC Elevator - http://elevator.triplegeek.com/

Unlike the traditional JISC project application route, where proposals are submitted in response to project calls, the idea that seems to be being proposed here is to cheaply capture ideas for proposals that require only a small amount of funding (£5k-£30k) – simply provide a short elevator pitch and a pitching video:

JISC Elevator

Low cost, easy submission is essential for this sort of pitch: if it costs, in practical terms, £2k-£3k of internally costed funds to make it pitch, that can be 60% of the amount pitched for…

One question that does come to mind is how this money might get spent? If you have an immediate development need, requiring 1-2 weeks of developer effort, for example, to prove some concept or other, and in return develop a working, if not necessarily production ready, service, where will that developer effort come from. Although I never really understand why, a few days work is the sort of work it can be really hard to schedule… So maybe we need slack capacity in the system, capacity that can work on short, itch scratching or blue skies doodles (not projects, doodles: always lightweight, small pieces lightly joined style applications or services), and pitch next step ideas around those doodles to elevator?

That said – I can think of several little projects that would benefit from a small amount funding…;-)

The Elevator idea is very much up for discussion, and very much in the spirit of the idea, capturing feedback on Uservoice… There’s also a poll to capture more immediate feedback – find it here: Is JISC Elevator a good idea? poll.

Written by Tony Hirst

July 28, 2010 at 4:16 pm

Posted in Policy

Tagged with , , ,

Fragments – Open Access Journal Data

with 2 comments

Some time ago, I put together a recipe for watching over recent contents lists from a set of journals listed in a reading list (Mashlib Pipes Tutorial: Reading List Inspired Journal Watchlists). But what if we wanted to maintain a watchlist over content that is published in just open access journals?

Unfortunately, it seems that TicTocs (and the API version (I think), JournalTOCs, don’t include metadata that identifies whether or not a journal is open access. A quick scout around, as well as a request to the twitter lazyweb, turned up a few resources that might contribute to a service that, if nothing else, returns a simplistic “yes/no” response to the query “is the journal with this ISSN an open access journal?”

- a list of journals in TicTocs (CSV);
- a list of open access journals listed in DOAJ (csv);
- SHERPA/RoMEO API (look up open access related metadata for journals?)

So – as a placeholder for myself: think about some sort of hack to annotate and filter TicTocs/JournalTOCs results based on open access licensing conditions

Following a quick bounce around of ideas with @kavubob on Twitter, what else might this be used for? Ranking journals based on extent to which articles cite articles from open access journals, or ones that support some sort of open access publication?

Also – is it easy enough to find citation data at gross level – eg number of citations from one journal to other journals over a period of time? Colour nodes by whether they are OA or note, size/weight of edges between journal nodes to show number of references from one journal to another? Maybe normalise edge weight as percentage of citations from one journal to another and size nodes by number of references/citations?

Written by Tony Hirst

July 28, 2010 at 1:26 pm

Posted in Random...

Libraries Near Me Map (Courtesy of LibraryThing)

with 2 comments

Given your location as postcode, where can you find a list of libraries near you? As with many of these public information style questions, it can be quite hard trying to find a single general answer. A crude way is to enter a search map along the lines of libraries near POSTCODE into Google Maps, but the results that are returned aren’t necessarily that good… Alternatively, you can go to your local council website, and then do a search there for libraries; but the format in which results are provided can vary; and if you’re a developer, there’s no immediately obvious way of creating (or consuming) a service that will allow you to create a small embeddable map showing the location of libraries in the vicinity of a particular postcode area.

Putting a tweet out last week to ask if anyone knew of a “library lookup by postcode”, several people suggested Worldcat, but @lynncorrigan suggested LibraryThing Local. Hmmm… here’s what it offers:

LibraryThing Local

That is, we can search by postcode, limit results to book related venues within a particular distance, and then filter down by library type, getting both a list of results back as well as map view. On running a search, we also get a URL that contains the search term as a parameter:

http://www.librarything.com/local/place/mk7%206aa%2C%20uk

This was a good start, so I had a look around the LibraryThing APIs to see if an API was available for the local service. I couldn’t spot anything, so I sent @librarythingtim a tweet to check, can got a confirmation back that there was no API for that service… Hmmm…

At times like this, it’s often worth trying different searches, and clicking different links (such as the “All”, “Bookstore” and “Library” fitlers, as well as the distance setting), to see what happens to the page – whether the URL changes for instance. It’s also worth doing a View Source on the page to see if there are any immediately obvious calls to AJAX web services that bring content into the page on those times when a setting change doesn’t cause the page to reload (with or without the same URL), but you suspect that there may have been a call to a webservice somewhere.

In the case of LibraryThing Local, clicking the links and changing the settings changed the displayed results without appearing to reload the page, but I wasn’t sure whether the change was just based on data stored within the web page, or whether the information was being pulled in from somewhere else.

Which is where developer tools can come in useful… One tool I use every now and gain is a Firefox extension called Firebug. This debugging environment operates within Firefox, and among other things can be used to track calls that a web page makes back to a server, along with any arguments passed to the server, and any results returned from it. Clicking between the “All” and “Libraries” links suggested that corresponding data was being pulled in to the page from a LibraryThing server:

LibraryTHing local - ajax call

The call was being made to http://www.librarything.com/ajax_venuesNearUser.php and returned HTML data that could be displayed within the results listing:

LibraryThing Local - data return

Hmmm…

The next step was to see if I could construct a URL without and session identifying variables to pull similar data back, such as:
http://www.librarything.com/ajax_venuesNearUser.php?&q=mk76aa,uk&showvenue=2

This did indeed work. The HTTP call also suggested there was a parameter identified as d. Could this be for distance? I tried it, setting it to 2, then 3. It seemed to work:-)

The next step was to try to pull the results into some sort of environment where I could play with it. The original motivation for getting this data was so that I could add libraries to a map of UK Online centres, based on my 5 Minute Hack – UK Centres Online Map, which used Yahoo pipes to geocode UK Online Centre addresses and generate a KML feed listing them in the vicinity of a particular postcode… So Yahoo pipes it was to be…

As well as RSS feeds, Yahoo Pipes can ingest XML and JSON data, as well as HTML pages. My first thought was to try to import the LibraryThing Local data as XML… but for some reason the Pipes Fetch Data block failed to parse it. Trying the Fetch Page block also failed to work… Hmmm…

At this point, I cast my mind around for other tools that might do the job. Google Spreadsheets? No; if the library data was in a table or a list, we might be able to use the importHTML formula, but is isn’t… Maybe I could try to import the HTML as XML…? Hmmm… XML… How about I try using YQL to parse the :LibraryThing Local data, and then pull the result into the pipe?

YQL parsing LibraryThing Local data

Success:-)

Here’s the query I used:
select * from html where
url=”http://www.librarything.com/ajax_venuesNearUser.php?showvenue=2&q=MK7+6AA&d=3″ and xpath=’//div[@class="venueItem"]‘

Rather conveniently, there is a YQL block available in Yahoo Pipes that can be provided with a YQL query and will pull the result back into the Pipes environment. Now the pipework can begin… but what do we want it to do?

The recipe will follow similar lines to the UK Online centres map pipe: grab a postcode from the user (and the search radius for good measure); construct the LibraryThing Local URL to fetch the raw data; use YQL to get the data into the pipes environment, then identify the address of each library, geocode it, create a title and piece of descriptive text (if required) then output the who lot. Simple:-)

To start then, let’s construct the LibraryThing Local URL:

LibraryThing Local map - create the URL

The reason we use a Create URL block is so that the postcode is automatically escaped (e.g. if the user places space characters in the postcode when they enter it, these need handling appropriately).

Having got the URL, we need to insert it into a YQL query – I use a bit of string replacing magic for that;-)

LibrryThing Local map - create the YQL query

Here’s the base part of the YQL query:
select * from html where
url=”MAGIC” and xpath=’//div[@class="venueItem"]‘

So, now we’re in a position to grab the local library data from LibraryThing Local via YQL:

Library Thing Local map - results from YQL

In the results, we see several separate items, one for each Library, but within each item, there are two “subresults”. Fortunately, these are “regular”, in that the result(s) for each Library is structured in the same way. Knowing how to handle the subresults required a little bit of Pipes trickery:

LibraryThing Local map - parsing results

It’s worth just looking at what’s going on in that block for a moment, and comparing it to the results that were coming from the YQL processor…

LibraryThing Local map - parsing reasults

All that remains to do now is geocode the address of each library, and output the result:

LibraryThing Local map - gecoding addresses

Here’s the result:

LibraryThing laocl map - pipe preview

You can see the pipe here: http://pipes.yahoo.com/ouseful/librarylocations

For details on how to use the output of this pipe to create your own embeddable maps, see the second half of 5 Minute Hack – UK Centres Online Map, in particular how to take the KML output of the pipe and use it to display the results in an embeddable Google map.

PS via @ostephens libraries lookup on People’s Network: “you can specify postcode and radius & get results as XML or route to xslt”

Written by Tony Hirst

July 27, 2010 at 12:43 pm

OpenLearn Website Refresh, and the Re-emergence of SocialLearn…

with 5 comments

It’s seems like today has been a busy day for a couple of the OU’s web teams…

First up, and with a beta launch today, the new OpenLearn site makes an appearance, including integration of content from the Open2.net site. As I understand it, the new OpenLearn website amounts to something akin to the “public service educator” presence of the OU, (complemented by OU Platform, the OU’s (open to all) social community site, and presumably SocialLearn, about which, more later…)

OpenLearn Relaunched

openlearn - www.open.ac.uk/openlearn

As well as providing the access point to the OU’s openly licensed (and free to use) educational material that was hosted on the original OpenLearn LearningSpace site, and content that is published to iTunesU and Youtube, OpenLearn (http://www.open.ac.uk/openlearn) will also support the OU’s “broadcast” strategy. This will include support for OU co-produced programming with the BBC, taking over this role from open2.net (apparently: “Open2.net will stay live for a while so we can tell our existing users about the changes and manage any current broadcast related activity on the site. We will then close the open2.net and anyone following links to open2.net will be redirected to the new site.”), as well as providing opportunities for publishing materials in order to support major news events, perhaps along the lines of The COP15 University Expert Press Room; (I’m not sure if OpenLearn will also act as a channel for teaching and research related news, as well, cf. Social Media Releases and the University Press Office?).

Course materials are organised by topic, as well as resource type (in a way that reminds me of the OpenLearn content promotion that (used to? or still does?) appear on Sky’s Skylearning website):

OpenLearn beta

We can also search by media type:

OpenLearn - - media resources

(One thing that might be handy would be the ability to subscribe to a podcast feed from a search on a particular topic area?)

Note that the search function may be a little ropey today, as the site is still being indexed…

The What’s On area of the site seems to have links to recent OU broadcast content, though I’m not sure whether it will also start to promote academic presentations and webcast events of general interest e.g. from the OU’s Berrill Stadium?

OpenLearn - what's on

I didn’t spot an RSS feed though…:-(

(Hmmm, which reminds me – I wonder if my Recent OU Programmes on the BBC, via iPlayer hack, or the mobile/iPhone or Boxee versions still work?!;-)

All the OpenLearn content appears commentable, although I think an OU registration/login is required? I seem to remember logins being provided to all comers for the Platform site, so maybe anyone can just register?

In fact, registration opportunities provide a good link to the announcement of a private beta for SocialLearn that opened up today…

(Re)Introducing SocialLearn

Long time readers of this blog may remember an OU project called “SocialLearn” that was initiated to explore the opportunities for a web scale social learning platform to straddle formal and informal learning. After various fits, starts, and consumption of budget, SocialLearn is back at http://sociallearn.org/ in a new widgetised form, appearing to offer (in the early stages a least) a Netvibes like dashboard that can host custom created widgets or (I think?) iGoogle gadgets that can be used to support your learning… (whatever that means!;-)

A couple of nice features that struck me: firstly, as a social platform, you can use credentials from the most popular social networking services to log in/create your account, and you can also import personal details from those networks. (I’m not sure how this works in practice – I don’t have an invite yet…) Secondly, a SocailLearn toolbar can be raised on any page from a bookmarklet (rather than a browser extension?), and then used to display individual widgets from different widget sets as overlays on the current page (I assume widget sets are like tabs on Netvibes, or Pageflakes?)

The best way to demo this is by a video… err.. Hmm… Being a web platform, site features are described using a video tour; and being a social platform, the video player has viral sharing/embedding features… errr…. probably… maybe… errr.. well if there is, I can’t spot them, at least, not in my browser…and being a WordPress hosted blog, I’m limited as to what I can embed anyway…

Ho hum…

This new, lighter weight view of SocialLearn harkens back to some of the original ideas that were mooted at the early stages of the first iteration of SocialLearn, but since then we’ve had the Facebook effect and a shift in terms of attention to that platform and the Facebook way of interacting, as well as the explosion in availability of smartphones and the app economy. Maybe the time is now right for portable toolbars that carry your applications with you to separate websites? Will the widget base of SocialLearn allow widgets to act as a standalone apps on a mobile device, or work nicely together in a combined app? Who knows…? It’ll be interesting to see…

(It’s also interesting to wonder whether the SocialLearn gadget approach is being developed with an eye on the Google Apps for Edu, which a little bird told me will start to roll out to OU students over the summer… (can anyone confirm that? And more specifically confirm what will be rolling out to whom?)

PS as far as user behaviour and UI aesthetics go, I wonder if the Max Expose inspired Firefox Tab Candy means we’ll start to see more of this style of interaction too?

Written by Tony Hirst

July 26, 2010 at 12:03 pm

Posted in OU2.0

Tagged with , , ,

Google Impact…? The “Google Suggest” Factor

with 8 comments

So apparently, OU promotion process means I get feedback on my promotion case before it goes to the full committee… Here’s what I need to address:

- put references in proper OU CV style;
- don’t write career history or list stuff done in the promotion case, instead list impact and significant contributions; [but for a case based around digital engagement, that can be hard to judge…? I wonder whether the ability to drive traffic to the OU would count? I wonder if I could create a traffic blip on an OU web page anyway? If you fancy taking part in an ad hoc, not really experiment to see if I can drive traffic to the OU, please click through here: OU Accreditations and Partnerships…)

What other sorts of impact are there? Eponymous laws? Google impact… Hmmm…. How about a Google Suggest factor…?

Let’s see… (whilst I made this searches in a browser that wasn’t logged in to Google, and had cookies cleaned, I’m not suggesting any Google ground truth in these “results”.)

google impact - martin weller

google impact - tony hirst

(the actor/voiceover artist isn’t me… ;-)

Google impact - grainne conole

google impact - stephen downes

google impact - gilly salmon

google impact - terry anderson

So what ingredients might go into a “Google Suggest” Impact Factor?

Number of correct mentions? Number of incorrect mentions? Explicit association with host university, or subject area?

And what might a Google Suggest Factor measure? Personal discoverability? Personal associations? Personal specialism areas?

One thing I didn’t manage to do was find any phrases that autosuggested a name from a term in the following way:

google suggest - f1 lewis hamilton

i.e. term firstname surname

So what does Google Suggest think about you?! ;-)

Related, in a roundabout sort of way: Where is the Open University Homepage?

Written by Tony Hirst

July 26, 2010 at 9:16 am

F1 Pit Stop Strategist (What I’d Like to See): Post Pitstop Re-entry Points

with 5 comments

Why oh why doesn’t F1 get into the spirit of releasing live time data in a API form during the race?

Here’s something I’d like to build, based on track position graphics:

LF1 driver track position

The ability to play along as a pit lane strategist looking for opportunities about when to pit….

For example, I’d select my driver, then using a model of how long it takes to pit, how far behind the traffic is, and how the time difference maps onto distance round the track, we could pop up a graphic showing the window the pitting car would look to return in to…

F1 track position

Post hoc timing data is available, I suppose, so I guess I could model what this might look like anyway…?

Written by Tony Hirst

July 25, 2010 at 12:39 pm

Posted in Thinkses

Tagged with

5 Minute Hack – UK Centres Online Map

with 4 comments

So…

…earlier today…

jaggeree twitter post...

Note the time: 11.20

A few minutes later, I posted this:

in reply...

Again, note the time: 11.26

So what happened in between..?

1) I clicked through on Chris’ tweet to get to A little thing to help UK Online/Rewired State hackday / Jul 23rd 2010,

2) copied a link from there (http://ukonline-fakeapi.appspot.com/?postcode=ec1a4dd) to a JSON feed for list of UKOnline centres in the vicinity of a postcode that was the little thing @jaggeree wrote to help the UK Online/Rewired State hackday on August 7th.

3) Went to Yahoo Pipes, created a new pipe, grabbed:
- a Fetch Data block that can parse a JSON feed,
- a Create URL block into which I pasted the link, which was then automatically parameterised for me,
- a Text Entry box for a postcode value
wired them together, and had a look at the output of the JSON feed:

UK Online centres - Pipe Web Address: http://pipes.yahoo.com/ouseful/ukonlinecentres

It was then easy enough to add a couple more blocks (a Loop block containing a Location Builder block) to geocode the address of each centre:

Geocoding an address in Yahop pipes

Note the trick. The trick is to assign the output of the location builder block to y:location, This allows pipes to work a bit of magic… if a pipe detects y:location.lat and y:location.lon elements in feed items, it will generate a map view over the output of the pipe, and a link to a KML output from the pipe…

To finish off, let’s just create a feed description element to carry the phone number, email and address of the centre, and set the link to be its web address…

UK Online centres pipe - finishing off

Here’s the replacement term in the regular expression:
Phone: ${phone}<br />Email: ${email}<br />Address: ${address}

And if we now to to the homepage for the pipe – http://pipes.yahoo.com/ouseful/ukonlinecentres:

UK online centres pipe http://pipes.yahoo.com/ouseful/ukonlinecentres

Note that link to the KML…? Grab a copy of that:

right-clik, copy link address

go over to http://maps.google.com, and paste the KML link into the search box… then hit Search Maps…

KML in google maps

(You can also load the KML feed into Google Earth…)

One in the Google Maps environment, we can now grab a link to the Google mapped UK Online centres by postcode, or an iFrame embed code (which can be customised….)

Grabbing a link to, or iframe code for, a google map

If you grab the iframe code and go to somewhere like Netvibes, you can add an HTML widget to your dashboard:

netvibes html widger

paste the embed code into the widget:

Embed code in Netvibes universal widget

and then view the map on your Netvibes page (you made need to tweak the size of the width and height attributes of the iframe…):

Map in Netvibes widget

So, what we have here is:
- @jaggeree’s API doing something magical and getting the data from somewhere…
- geocoding and KML publication via a Yahoo Pipe
- map rendering using Google maps
- display via Netvibes

And no coding… (at least, not by me…)

As ever, it has taken me far longer to write this post than in did to create the pipe and send the link back to @jaggeree…

PS the URL of the KML file that you can paste into the Google Maps search box has the form:
http://pipes.yahoo.com/ouseful/ukonlinecentres?_render=kml&postcode=mk7+6aa
for the postcode MK7 6AA. To use your own postcode, just edit this URL, replacing the space with a +, or omit it altogether (mk76aa). So for example, for the postcode CB3 9BB we would use the URL:
http://pipes.yahoo.com/ouseful/ukonlinecentres?_render=kml&postcode=CB3+9BB
or
http://pipes.yahoo.com/ouseful/ukonlinecentres?_render=kml&postcode=CB39BB
(upper/lower case is irrelevant) and just paste the URL into the Google maps search box.

Written by Tony Hirst

July 23, 2010 at 3:25 pm

Getting Web-based Images into a Mobile App – App Inventor Formula Plotting App Using the Google Charts API

with 2 comments

Being a lazy sort, one of the things I’d like to be able to do with Google App Inventor is pull content into a mobile app from outside. The recipes for doing this – for example, pulling content in to an app as a list from an RSS feed – still seem to be a little laboured (what I really want is a “get feed” block that can pull in a JSONified RSS feed from an arbitrary RSS URL via a proxy – such as a Yahoo pipe), so I had a scout around for what other sorts of content could be pulled in to an app…

The most obvious one seemed to be images, using an image container and the image blocks:

Google app invemtor - images

If the image container sees an image location starting with http://, it knows to retrieve the image from the web.

But what sort of app might be fun to display? A couple of weeks ago, I noticed that you can now plot a mathematical formula using a Google chart, so I had a 10 minute tinker putting the following app together, (followed by a half-hour hassle trying to get the App Inventor environment to connect to my phone properly! I think the workaround may be to install test apps to my phone via a wi-fi or 3G download, rather than via the tethered debugging route. Memories of edit, recompile, run, come flooding back to me!)

But first, some background… By passing a suitably encoded formula as part of a chart configuration URL, the Google chart API can be used to return a line chart that plots out a supplied formula over a certain range: line charts: data functions. One of the easiest ways of playing with the settings is to use theGoogle chart playground, though you still need to remember to encode certain characters, (such as + -> %2B ;-) yourself…

Google chart playground

Trying to read through the documentation late last night didn’t make much sense to me, but I came away with the impression that a handy URL pattern could be based around the following:

http://chart.apis.google.com/chart?cht=lc&chd=t:-1
&chds=0,20&chs=250×150&chco=FF0000
&chxr=0,0,11|1,0,20&chxt=x,y
&chfd=0,x,0,11,0.1,sin(x)*4%2B5

More generally:

http://chart.apis.google.com/chart?cht=lc&chd=t:-1
&chs=250×150&chco=FF0000
&chds=YMIN,YMAX
&chxr=0,XMIN,XMAX|1,YMIN,YMAX
&chxt=x,y&chfd=0,x,XMIN,XMAX,XSTEPSIZE,ENCODED_FORMULA

(This may not be a good set of assumptions – but it’s enough to be going on with…)

If we just use a default range for X, Y and the XSTEPSIZE, all we need to supply to a canned URL is a suitably encoded formula. So here’s the proof of concept minimal chart plotting app I came up with:

Google app inventor - minimal chart plotting app

Here’s what this app does: when the plotChart button is clicked, look to the text entry box (userFormula) for a suitably encoded formula (such as 20*sin(x) or 5%2B5*cos(x) (for 5+5*cos(x)), generate the chart URL, and then load the chart into the outputChart image container.

That is, it’s an app that will plot out a formula for you :-)

I started to parameterise the arguments that make up the call to the chart generating service to make it easy to extend the app to make it easier to support the handling of additional parameters entered via additional entry dialogues (e.g. text boxes); this might then allow the user to specify the range over which the chart was to be plotted, for example, by entering the range limits into separate text boxes, or maybe setting them from a list of predefined alternative ranges.

It would also be easy enough to create canned formula buttons that plot a chart for a predefined function over a predefined range, for example. (I guess it would be possible to create a list containing these options and then allow the user to select the function to be plotted from a list choice menu? Hmm… an exercise for later, maybe;-)

PS Whilst looking through the chart API, I also noticed a new component (I’ve no idea how long it’s been there) for plotting GraphViz generated network diagrams. So for example:
http://chart.apis.google.com/chart?cht=gv
&chs=250×250&chl=digraph{A->B->C;A->C}

gives:

graphviz chart from google chart api

So I should be able to plot network diagrams too? :-)

Written by Tony Hirst

July 22, 2010 at 1:31 pm

Posted in Tinkering

Tagged with

Why Should Academics Develop Their Course Materials in Public…?

with 4 comments

Before you say “we/they shouldn’t”:

- why do we encourage students to keep a learning journal/diary?
- why do we encourage students to participate in online forums, or ask questions if they’re having trouble understanding an issue?
- why do we try to get them to reflect on their work in public (which includes the submission of assessment material…?)

If we want students to learn, and if we want students to graduate with experience of, and knowledge of how to, learn in a self-directed way, in an environment where information is abundant, we should be showing them how we learn too… which means developing our course materials, and demonstrating how we sometimes struggle with the best way of expressing an idea, or discovering and making sense of third party resources, in an environment where they (and everybody else) can learn from us… like the commons…

’nuff said…

Except, see also: Brian Lamb on Modern scholarship is a race against its own obsolescence

(Did that make sense? Maybe I shouldn’t have published that thought? Maybe it was only worth tweeting? Maybe it’s not worth sharing any of these ideas in case they’re wrong or make me out to be an idiot…? WHO CARES? First rule of blogging: no-one will ever read it. Second rule of blogging: only people who are likely to be interested in the subject of a post will do more than look at the first few words. Third rule of blogging: anyone who does read on will maybe take something from it, contribute back to it, or build on it. Or they won’t… in which case, it was all just a waste of time and incurred some sort of (lost) opportunity cost…)

[See also: Open Course Production]

PS If you’re reading this today(!?;-) then tomorrow there’s an OER event in London that I think is open to all comers? (If it isn’t, and you can do, go anyway;-) Open Educational Resources International Symposium, with opening keynote from Mary Lou Forward and closing keynote from Brian Lamb. There’s also a fringe event tonight where I sure the unmoderated free’n'open talk will happen;-) UKOER10 Fringe.

PPS to complement the above, see D’Arcy Norman’s on private “classblogs” vs. the wild, wide open, which asks: “What right do we, as educators, have to compel students to publish on the open web?”, and goes on: “I have absolutely no problem with faculty and students wanting to have private “classblogs” – if it gets them to a place where they’re able to use the blogging platform in a way that amplifies the effectiveness of their discourse, even (or especially) if the site isn’t public, then it’s absolutely worth doing.” I agree…

Written by Tony Hirst

July 22, 2010 at 9:28 am

Posted in Open Education

Follow

Get every new post delivered to your Inbox.

Join 126 other followers