Experimenting with the Form…

One of the challenges I’ve set myself this year is to write some sort of book about Yahoo Pipes. Reading Presentation Zen three or four weeks ago, I started to imagine the form such a book might take. What I aspired to was something uncluttered, something that would contrast with the typical confusion of words and ideas that tend to end up being dumped into OUseful.info; something like an artistic recipe book, perhaps, or an art gallery catalogue; the form should be decomposable, allowing sections to be removed or updated without too many side effects on the rest of the work; and the authoring environment should complement the the publication environment, enforcing constraints of the medium the book would be published into.

In short, something like Powerpoint done well, but for print rather than screen.

It seems (of course!) that Tim O’Reilly had already executed a similar idea in the form of the Twitter Book, as John Naughton pointed out to me a couple of days later.

You can read more about O’Reilly’s take on the philosophy behind this sort of representation in Reinventing the Book in the Age of the Web.

Anyway, I spent a weekend doodling ideas, and then left it a couple of weeks. Now I’m looking at it again, and I’d appreciate your comments on whether this sort of presentation works for you, (and if not, why not?), how it might be improved, how it might be simplified (but remain accessible to a novice) and so on. The numbering scheme used is not related to pages – instead, each “point” I make has a number, and these are referred to from the index (I drew inspiration for this sort of numbering from The Pengin Cookery Book). Comments on the level at which the technical content is presented, and the way in which I have started trying to develop a narrative, will also be appreciated.

I originally thought that the “book” should be printed in an A4 landscape form, but then I started to wonder whether two landscape A4 pages could be combined into a portrait A4 page. The font size is problematic, and the I don’t think the same layout works for the landscape vs. portrait view, at least, not as it currently stands.

Anyway, here are the landscape and portrait versions. I don’t think they work as embedded content, which is a shame, but they weren’t written for that sort of medium, so it’s to be expected.

(If you are reading this in a feed reader, you will probably need to click through to the original post in order to see the embedded documents.)

Please bear in mind, too, that I’m not a designer (this much will be be obvious), but that I do think design could play a large part in making this approach usable.

Please feel free to add your comments below:-)

Browse Links in Delicious – Another OUseful Prototype Unprediction Comes True:-)

Although I subscribe to a lot of online app blogs, I don’t subscribe to them all, instead relying on twitter and subscriptions to other commentator blogs to do some of the filtering for me. This isn’t always reliable, of course, and sometimes I rely on “new” flags to alert me to new features in some of the apps I use regularly.

Like this one:

A ‘browse these bookmarks” feature in delicious (original announcement).

Pick a user, one or more tags, or any combination thereof, and you can click through a preview of the bookmarked websites using something they’re calling the browsebar:

If you look at the top of the screenshot you should see the browsebar – it lets you click through the links one at a time, in the order they were bookmarked. So if you’re giving a presentation based around demoing a series of websites, this is a handy way of doing it.

And this is where my unprediction comes from, either from April 2006, or maybe somewhen in 2005, depending on whether you trust me or not…;-) deliShow, aka the Feedshow Link presenter

At it’s simplest, Feedshow would take and RSS feed and present the links in a window in much the same way that the delicious browsebar works:

feedshow

I also added tools to splash a shortcode for the presentation (and maybe in a later tweak, the currently displayed bookmark?), so that viewers could also click through the slideshow in their own browser, and started working on feedshow synching facility so that remote viewers could synch the current state of the presentation to that of the person leading the presentation.

Unfortunately, the code behind feedshow appears to have rotted (maybe I should redo it at Dev8D?)

Of course, if we give delicious a year or two, they might implement something similar themselves? ;-)

PS I wonder if they’ll release a DeliTV app too, to allow users to use delicious to programme their Boxee TV viewing?;-) (More on that in the next couple of weeks….)

Search Mechanics and Search Engineers

A couple of days ago I came across the phrase search mechanic in a post on US IT Spending:

The budget request calls for launching a new tracking tool with daily updates that would provide the public with the ability to see aggregate spending by agency and also by geographic area as an effort to increase transparency. Obama also wants a new search mechanic [my emphasis] to allow the public to “mash” data by location, agency and timeframe.

By this, I take it to mean search mechanic in the sense of game mechanics, that is, something like the way the rules/architecture of the game (or ‘code‘ in the sense Lessig uses it) determine the game play and the user’s interaction with the game. (If you’re interested in how games and the business of games works, why not sign up to my Digital Worlds course?;-)

So for example, one different search mechanic might be a different user experience, such as displaying results on a map or timeline rather than as a list, or another might be a different way of determining (or ranking) and presenting the results based on user profiling; topically, using social search for example (e.g. The Anatomy of a Large-Scale Social Search Engine, and Search is getting more social).

Anyway, for a long time I’ve been looking for a phrase to describe what I think is likely to be a core skill for librarians, namely, the ability to generate effective search queries over a range of systems, from popular search engines, to traditional subscription databases (in the sense of things like Lexis Nexis or EBSCO), to ‘proper’ databases and even Linked Data stores (how’s your SQL and SPARQL?)

So I wonder – is there a role for search mechanics (like car mechanics) and search engineers? The search mechanics might be there to help you get your search query working on the one hand, or fix the ranking algorithm in your search engine on the other, whereas the search engineer might be more interested in working at a different level, figuring out effective search strategies, or how to use search in a particular situation?

Arcadia Project – OU Report Back Presentation

Short notice, but then, if I gave more notice there’d have been all sorts of calendar negotiations over a week or two then we’d have rescheduled anyway…


Presentation trailer

Many OU folk will have already spent an hour or two at the Learn About fair (fayre?) on that day, so you might as well as right the whole day off in terms of doing “proper work”…;-)

Skim.it – Like Digress.it, But With Ratings Rather than Comments?

A couple of weeks ago, whilst dozing to the ITConversations podcast channel, I started daydreaming around the conversation that was going on in the Mitch Ratcliffe /Booksahead.com episode of Phil Windley’s Technometria podcast.

The discussion was on the topic of the future of the book, particularly with respect to annotating books and ebooks (in a manner similar to the way we support paragraph level comments in WriteToReply).

Annotating text with text (such as comments) requires quite a lot of effort on the part of the reader/annotator, and is perhaps one reason why it can be quite hard getting folk to engage with commenting static documents (I’m sure there are lots of other factors, too! ;-)

So if we think of things like the Community Engagement Pyramid:

Yahoo Engagement pyramid

or the Social Technographics Ladder of Participation:

Social Technographics Ladder

then we see that there are various levels of engagement by – and participatory effort required from – visitors to a web site.

If we consider documents published on WriteToReply, one of the things we hope to facilitate is discussion around particular areas of the document. Lively discussions – lots of comments on a particular paragraph, or section – is one way of generating a signal that highlights “interesting” areas of a document. Web traffic analytics showing large amounts of traffic to, and reasonable dwell times on, particular pages provides another source of “interestingness” information; and so on.

But are we missing a trick?

Way back in the days when I used to print out lots of reading material, I used to skim read documents (even then!) and mark paragraphs that were somehow important with a vertical line in the margin so that I could easily return to them, or fold a page corner to “bookmark” a particular page or section. Occasionally, I would also scrawl notes in the margin, or underline particular paragraphs. But the turned page corners and the lines in the margin were the most efficient ways (for me) of marking the important parts of a text so that I could then refer to them in detail at a later time.

The commenting came later…

So what might a corollary be in WriteToReply? Each paragraph has a unique URI, so it would be possible to bookmark interesting paragraphs either within the browser, or using a social bookmarking tool such as delicious. Hovering over the linked paragraph number raises a pop up containing the text of the paragraph and a link to it (Note to self: clicking in the link box should automatically select all the text???)

Clicking through on a bookmarked link takes you to the page the paragraph exists on with the bookmarked paragrah highlighted:

If single item RSS/JSON feeds for each uniquely identified paragraph are enabled, it is straightforward (in Javascript at least) to render a page containing just the content from a list of the bookmarked paragraphs.

But what other low effort routes to engagement are there that might help an individual keep track of areas of a document they may want to return to, or that might allow the crowd sourced discovery of “interesting” areas of a document? How about ratings? How about a complement to the paragraph level commenting that the digress.it WordPress theme we use on WriteToReply offers that offers paragraph level ratings?

And in the same way that digress.it is capable of generating comment streams for each commenter, how about a similar facility that would allow me to look at all the paragraphs, sections or pages that I have commented, sorted either in the order they appear in the document, or additionally by the number of stars I have rated them?

When I read long documents, I do it in an iterative fashion. At the moment, we don’t necessarily make that very easy to do – or obvious how to do it. Maybe a ratings based approach would help?

PS the source code for the digress.it theme is available from the digress.it: WordPress plugins page under a GPL version 2 license. If you fancy creating a complementary “skim.it” theme using ratings rather that comments, post a comment here ;-)

More Link Pollution – This Time from WordPress.com

A month or two ago, I posted on the topic of Google/Feedburner Link Pollution, observing how URIs contained in RSS feed link elements run through Feedburner end up with Google Analytics tracking codes appended to them.

Well, it seems as if WordPress.com occasionally does a little bit of rewriting of links you might have carefully placed in your blog posts if you are using the free plan, dynamically rewriting those links and sending clicks through go2.wordpress.com.

A reply to the WordPress forum post “Link redirection through go2.wordpress.com” states:

[R]edirection is related to the ads that sometimes are placed on WordPress.com blogs … [P]urchasing the No Ads Upgrade will stop the redirection.

Now I know that ads are sometimes presented on my blog to unsigned in visitors, but I’m not sure I’ve ever been told that links may also get rewritten? One of the dangers of using a free hosted service, of course.

As to why do I use a free service? I don’t want the hassle of backups, updates, and doing sys admin things if the site ever gets hacked. And In return, I pay nothing, live with certain constraints (e.g. restrictions on layout, embedding, inability to run Google Analytics, etc.) and visitors who aren’t WordPress users may occasionally suffer from ad displays.

But things are getting so that I now need to regularly spend time looking for ways in which the “free” services I use are polluting my content.

So do I pay to upgrade to paid for services on WordPress.com, host a blog myself, or use a more enlightened (but more expensive) commercial provider such as Squarespace?

(Stephen – no need to say “I told you so”…;-)

Two Variants of Google Blogsearch?

Yet more signs that Google is losing the plot… Whilst putting together a quick Yahoo Pipes demo, I called up the Blogs search option from the More menu item in Google websearch in order to pull an RSS feed of blog search results from it… But there was no feed option?

Strange, because blogsearch.google.com does offer a feed option for blogsearch results?

So what we have here is a case of similar branding but different sidebar options. That is:

http://www.google.com/search?tbo=1&tbs=blg:1&q=%22yahoo+pipes%22

does not give the same sidebar options – or the autodiscoverable feed option – that this does:

http://blogsearch.google.com/blogsearch?q=%22yahoo+pipes%22

But the top left corner branding of each site is the same?

Just six words…

Don’t you think Google looks tired?

Creating Database Query Forms in Google Spreadsheets – Sort Of

It’s all very well using a Google spreadsheet as a database, but sometimes you just want to provide a simple form to let people run a particular query. Here’s a quick way of doing that within a Spreadsheet…

So for example: Can you help me crowd source a solution?. The problem is as follows:

Students will make five choices from a list of over 200 projects that have been anonymised… We will give each project a code, and have already entered all the details into an excel sheet so we can tie the project code to the supervisor.

We need a solution that will enable students to enter their project code and then have the title of the project displayed as a check to make sure they have entered the code correctly. The list of projects is just too long for a drop down list, even when split by department (around 50 in each).

Does anyone have any suggestions of tools that we can use for students to submit this type of information, so that we get it in a format that we can use, and they get confirmation of the project titles they have chosen? A simple google form isn’t going to hack it!

Here’s one way…

Create a “form” – the text entry cell can be highlighted by setting the background colour from the spreadsheet toolbar:

Construct a query. In this case, I need to select three results columns (H, I and J) from another sheet (‘Sheet1′, the one that acts as the database and contains the project codes) so the query will be of the form “select H,I,J where H contains “BIOCHEM”; the search term (“BIOCHEM”) is pulled in from the query form show above:

=concatenate(“select H,I,J where H contains ‘”,B2,”‘”)

(As a rule of thumb, if you want your query to select cells A, D, AC, the range set in the first part of the query that defines the database should span the first to the last column in the select range (Sheet1!A:AC, for example).)

By using the contains relation, this query will generate a set of results that are, in effect, a list of auto-complete suggestions as the result of a searching on a partially stated query term.

Assuming I have placed the query in cell A4, I can automatically get the results from the query as follows:

Note that it would be possible to hide the query generator (the contents of cell A4) in another sheet and just have the search box and the results displayed in the user interface sheet.

If the original spreadsheet database was published as a public document, we could also grab the results as an HTML table via an API using a URI of the form:

http://spreadsheets.google.com/tq?tqx=out:html
&tq=select%20H%2CI%2CJ%20where%20H%20contains%20%22SEARCHTERM%22
&key=SPREADSHEETKEY

Setting out:csv would return the results in comma separated variable format, so we could create a Yahoo pipes interface to query the form, for example:

Here’s how:

What would be really useful would be if the Google/Yahoo widget options for the feed respected the form elements, rather than just generating a widget that displays the feed corresponding to the current Run of the pipe with the provided search terms.

Building such a widget is something I need to put on my to do list, I guess?! Sigh…

Open University Adopts Google Apps For Education


And so it came to pass that The Open University announced that it was going to adopt Google Apps for Education, and in one fell swoop sign up over 150,000 students to the platform.

And what bounteous riches would those students henceforth be able to benefit from, with “a service level agreement with higher levels of availability than [the OU] could achieve itself”:

  • email: “students will be offered their own Gmail accounts with addresses ending in @my.open.ac.uk”
  • calendar: when the OU’s student calendaring team held a consultation about future plans a couple of years or so ago, I lobbied hard for iCal/ics feed support, as well as tentatively suggesting that we might be use calendar feeds to transport payloads (documents, or audio files for example) either to students or within the context of a feed powered VLE. (I think I also suggested that they just not bother and embed Google calendars instead, and did a working demo to show what it could look like). So here’s hoping that course calendars also get put into Google Calendar… But what’s gonna happen to all the effort that was put into the Moodle Calendaring support? I guess that if they’re making feeds available, it’ll be low overhead to just pipe the info into student’s personal calendars?
  • online document creation and space for shared documents: I wonder – could this be used as a way of getting students to submit their assessments? By sharing them with markers, or Exams and Assessment? As for online documents – Google Gears and (in the fullness of time) full support for HTML5 local storage means that docs can also be edited offline; and even if Google docs don’t work natively in smartphone browsers, the app economy will probably have produced something equivalent;-) As far as storage goes, I have no idea what the current state of the OU eportfolio is…? I always favoured using a service like Box.net (OU Open Sources Moodle ePortfolio – But What Flavour is the API?), which as it happens opened up a comprehensive in browser document preview service this week (Reinventing how Businesses Share with Cloud Content Management).
  • instant messaging and contact management: I don’t think our current VLE or StudentHome pages support contacts, presence indicators, or chat? (So for example, in the last presentation of T151, and at the request of students, I embedded a Meebo chat room into a wiki page in the “Course Labs” area of the course I set up to do dangerous and unapproved by the system type things. The chat wasn’t used much though, because it was: a) hard to find; b) not obvious when other people might be using it.) As far as Contacts go, I personally think we should view users with OUCUs as the population of a social network, and develop internal apps like Course Profiles and My OU Story to service that network. IMVHO, of course…

No Google Reader though? Because that’s not really a producer/creator tool, it’s mor of being just a consumer tool?

Here’s what the Goog has to say about Google Apps for Edu:

One thing that interests me in the short to medium term is the extent to which course teams will be encouraged to integrate content that is pulled from Google Apps into the VLE. Around about this time last year, I set up a quick survey using Google Forms for a course. Issues around the need for Google authentication to view the results meant I need to come up with a workaround for producing results charts (Creating Your Own Results Charts for Surveys Created with Google Forms). It’d be easy enough to mbd this charts in th VLE, but that would be competing with the VLE’s own survey tool (which I assume it has got?). So a question I have is to what extent we should drink the Google Kool Aid and spend effort not on developing Moodle apps, features and extensions (that is, apps that use Moodle datastores) and instead focus on apps that use Google as the backend. As for what widget containers to us (bespoke Moodle widgets or Google gadgets, for example), a standardisd intermediate container such as Wookie might be a better bet for a couple of reasons: 1) if we dump Moodle, we can take the widgets with us; 2) if we drop a particular back end service for a widget and replace it with another, we can retain the WIdget UI and just replace the service.

Anyway – enough. As and when this rolls out, it’ll be interesting to see what students do with it, and to what extent OU developers start developing around the apps. As far as the VLE goes, I’d be interested to know whether the powers that be are keen for us to look at ways of integrating Google services into our course delivery. Or maybe they haven’t thought about that yet? ;-)

PS to complement this, see also @andypowe11’s post On the use of Microsoft SharePoint in UK universities

Using Google Spreadsheets Like a Database – The QUERY Formula

In this year’s student satisfaction tables, which universities have a good teaching score but low employment prospects? How would you find out? In this post, you’ll find out…

Whether or not it was one of my resolutions, one of the things I want to do more this year is try to try to make more use of stuff that’s already out there, and come up with recipes that hopefully demonstrate to others how to make use of those resources.

So today’s trick is prompted by a request from @paulbradshaw about “how to turn a spreadsheet into a form-searchable database for users” within a Google spreadsheet (compared to querying a google spreadsheet via a URI, as described in Using Google Spreadsheets as a Database with the Google Visualisation API Query Language).

I’m not going to get as far as the form bit, but here’s how to grab details from a Google spreadsheet, such as one of the spreadsheets posted to the Guardian Datastore, and query it as if it was a database in the context of one of your own Google spreadsheets.

This trick actually relies on the original Google spreadsheet being shared in “the right way”, which for the purposes of this post we’ll take to mean – it can be viewed using a URL of the form:

http://spreadsheets.google.com/ccc?key=SPREADSHEETKEY&hl=en

(The &hl=en on the end is superfluous – it doesn’t matter if it’s not there…) The Guardian Datastore folks sometimes qualify this link with a statement of the form Link (if you have a Google Docs account).

If the link is of the form:
http://spreadsheets.google.com/pub?key=SPREADSHEETKEY
just change pub to ccc

So for example, take the case of the 2010-2011 Higher Education tables (described here):

http://spreadsheets.google.com/ccc?key=reBYenfrJHIRd4voZfiSmuw

The first thing to do is to grab a copy of the data into our own spreadsheet. So go to Google Docs, create a new spreadsheet, and in cell A1 enter the formula:
=ImportRange(“reBYenfrJHIRd4voZfiSmuw”,”Institutional Table!A1:K118″)

When you hit return, the spreadsheet should be populated with data from the Guardian Datastore spreadsheet.

So let’s see how that formula is put together.
=ImportRange(“reBYenfrJHIRd4voZfiSmuw”,”Institutional Table!A1:K118″)

Firstly, we use the =ImportRange() formula, which has the form:
=ImportRange(SPREADSHEETKEY, SHEET!RANGE)

This says that we want to import a range of cells from a sheet in another spreadsheet/workbook that we have access to (such as one we own, one that is shared with us in an appropriate way, or a public one). The KEY is the key value from the URL of the spreadsheet we want to import data from. The SHEET is the name of the sheet the data is on:

The RANGE is the range of the cells we want to copy over from the external spreadsheet.

Enter the formula into a single cell in your spreadsheet and the whole range of cells identified in the specified sheet of the original spreadsheet will be imported to your spreadsheet.

Give the sheet a name (I called mine ‘Institutional Table 2010-2011′; the default would be ‘Sheet1′).

Now we’re going to treat that imported data as if it was in a database, using the =QUERY() formula.

Create a new sheet, call it “My Queries” or something similar and in cell A1 enter the formula:

=QUERY(‘Institutional Table 2010-2011′!A1:K118,”Select A”)

What happens? Column A is pulled into the spreadsheet is what. So how does that work?

The =QUERY() formula, which has the basic form =QUERY(RANGE,DATAQUERY), allows us to run a special sort of query against the data specified in the RANGE. That is, you can think of =QUERY(RANGE,) as specifying a database; and DATAQUERY as a database query language query (sic) over that database.

So what sorts of DATAQUERY can we ask?

The simplest queries are not really queries at all, they just copy whole columns from the “database” range into our “query” spreadsheet.

So things like:

  • =QUERY(‘Institutional Table 2010-2011′!A1:K118,“Select C”) to select column C;
  • =QUERY(‘Institutional Table 2010-2011′!A1:K118,“Select C,D,G,H”) to select columns C, D, G and H;

So looking at copy of the data in our spreadsheet, import the columns relating to the Institution, Average Teaching Score, Expenditure per Student and Career Prospects, I’d select columns C, D, F and H:

like this:
=QUERY(‘Institutional Table 2010-2011′!A1:K118,“Select C,D, F,H”)
to give this:

(Remember that the column labels in the query refer to the spreadsheet we are treating as a database, not the columns in the query results sheet shown above.)

All well and good. But suppose we only want to look at institutions with a poor teaching score (column D), less than 40? Can we do that too? Well, yes, we can, with a query of the form:

“Select C,D, F,H where D < 40"

(The spaces around the less than sign are important… if you don’t include them, the query may not work.)

Here’s the result:

(Remember, column D in the query is actually the second selected column, which is placed into column B in the figure shown above.)

Note that we can order the results according to other columns to. So for example, to order the results according to increasing expenditure (column F), we can write:

“Select C,D, F,H where D < 40 order by F asc"

(For decreasing order, use desc.)

Note that we can run more complex queries too. So for example, if we want to find institutions with a high average teaching score (column D) but low career prospects (column H) we might ask:

“Select C,D, F,H where D > 70 and H < 70"

And so on…

Over the nect week or two, I’ll post a few more examples of how to write spreadsheet queries, as well as showing you a trick or two about how to build a simple form like interface within the spreadsheet for constructing queries automatically; but for now, why try having a quick play with the =QUERY() formula yourself?

Next Page »


TweetMeme Chicklet

Custom Search Engines

How Do I? Instructional Video Metasearch Engine
UK HE Libraries metasearch infoskills resources
OUseful web properties search

OUseful feedthru bookmarks...

Pages

 

February 2010
M T W T F S S
« Jan    
1234567
891011121314
15161718192021
22232425262728