Replied to Re: Browser Bookmarklets for Giving Credit by Aaron DavisAaron Davis (
I am all in on this Chris, but I just can’t seem to get it to work. I created the bookmarklet, highlighted the name and clicked the bookmarklet, but there was no pop-up. I must admit, I do not use many bookmarklets, only Alan Levine’s really. I may therefore have to dig into this a bit further a...

Hi Aaron,

I am glad you posted this. I like bookmarklets. I run one a bit like this via AppleScript on my mac. This has an advantage of letting me add a keyboard to send straight to the clipboard.

I am going to add the indieweb mark up to that using Chris’s script for reference. Like you I couldn’t get it working at first I had to mess around with he single and double quotes. This works for me:

javascript:(function(){let text = "";if (window.getSelection() != '') {text = window.getSelection().toString() + '\n';}var tocopy = '<p><small><cite class="h-cite via"><abbr title="via">ᔥ</abbr> <span class="p-author h-card">"' + text + '"</span> in <a class="u-url p-name" href="' + location.href + '" target="_blank" rel="noopener noreferrer" >' + document.title + '</a> (<time class="dt-published">' + document.lastModified + '</time>)</cite></small></p>';;d=document;d.body.appendChild(Object.assign(d.createElement('textarea'),{value:tocopy})).select();d.execCommand('copy');})()

I’ve not got much of a handle on JavaScript so YMMV.

Replied to re: document.designMode by Aaron DavisAaron Davis (
document.designMode is another useful tool when teaching the web and manipulation of content.

Hi Aaron,

Thanks for this, a useful replacement for Mozzila’s x-ray for learning, teaching and playing with the web.

I wondered about using this on iOS and found I could make the simplest of shortcuts.



I’ve not used a shortcut for running JavaScript in mobile Safari before so useful to learn about completion()

Replied to A Generator for Martin (CogDogBlog)
I saw Martin Weller’s tweet out for a randomizing text generator: He got lots of replies (which is what make twitter useful when often it can not be), though many were just offering tools, no…

Hi Alan,
Love the random. Had a wee go at forking and having a googlesheet as a source. It might be a way of folk making their own without having to edit html…

I’ve been having a wee play with the p5.js web editor.

p5 .js is a JavaScript library that starts with the original goal of Processing, to make coding accessible for artists, designers, educators, and beginners, and reinterprets this for today’s web. Using the original metaphor of a software Sketchbook, p5 .js has a full set of drawing functionality. However, you’re not limited to your drawing canvas, you can think of your whole browser page as your sketch! For this, p5 .js has addon libraries that make it easy to interact with other HT ML5 objects, including text, input, video, webcam, and sound.

I’ve occasionally dipped my toe into processing and found it good fun.

Over the summer I’ve seen a stream of tweets and instagram posts from Tom Smith which got me interested in p5.js.

I don’t really have much of a clue but have had a bit of fun. Especially when I found you can use a library with p5.js to export gifs. The feature image on this post is one made by my sketch: Classy bramble skulls 4. This one has a background image, some animation, the mid-ground, the sleeper and computer and then the window frame which are drawn. If I had though I’d have used 3 image layers sandwiching 2 animation ones. Early days.

There seems to be a ton of learning material available and it is easy to duplicate interesting p5.js sketches to edit and play around with. (The school holidays are not long enough;-))

I love the record of thinking and linking that now stretches back 12 years, 5 months, 4 days on this blog.

I don’t like the breakages.

A lot of the links on this blog are to the blogs of the school I used to work in in Glasgow, Sandaig Primary. The site is now gone. A lot of it is in the internet archive. I had hoped that the Amber plugin would sort that, but since the domain is now up for sale, the links lead to the sale page.

I could go through the posts and fix all the links. I guess someone with more understanding than me could do it in the database. I’ve opted for a cruder solution. I’ve added a bit of JavaScript to the blog which changes all links to Sandaig to the archive.

jQuery(document).ready(function() {
// Stuff to do as soon as the DOM is ready;

jQuery( "a[href^='']" )
this.href = this.href.replace(/^http:\/\/, "");


This has probably broken something else and certainly is adding to the pile of oddities that I’ve added to the blog. But hopefully It means that links on posts like this: Impermanence and Comments will work.

I’ve had a long term interest in digital ‘fridge’ poetry, making my first efforts with Flash around 15 years ago. A year or so ago I was excited by Fridge Poetry – Google Sheets as Database by Tom Woodward. There were a couple of goodies in that post, getting the word list from a google sheet and a nifty way to allow folk to easily make their own. I made a sheet and a poem and slotted the idea away.

I’ve revisited Tom’s post (and others) a few times, gathering tools 1 and wondering.

On the holiday weekend, given poor weather and a head cold, I revisited the idea and made my own Fridge.

This riffs & extends the idea a wee bit:

  1. You can add a background image to the poem, either from a built in flickr search or a local one.
  2. There is a standard common word list and a topical one from the google sheet.
  3. The words in the lists can be used more than once.
  4. I used JavaScript as opposed to php (except for proxying images to allow you to export).
  5. You can export the poem as an image.

I’ve edited Tom’s template a little, the new one:

  • Automatically generated a link to use. Tom got you to copy paste in the sheets own url and parsed that.
  • Adds a field for the image search.

Make a List this link should get you to create a copy of the list spreadsheet. You can edit the words (on the 2nd worksheet) and change the image search,  more info: Fridge Poetry.


I’ve gained a wee bit more JavaScript and jQuery. The idea of using Google sheets to populate a webpage or to display info from a sheet in a template is interesting. html2canvas is another tool that has interesting potential for storytelling on the web.

Using /copy at the end of a google sheet to allow anyone to make a copy is useful too.

Finally the ability of google sheets to get the id of the current sheet is really handy in simplifying the creation of links. This relies on a very simple script:

function getSheetID() {
  var r = SpreadsheetApp.getActiveSpreadsheet().getId();
return r;


you can then get the id by typing =getSheetID() in a cell.


There is more help on how to make and use a wordlist here: Fridge Poetry.

Hopefully someone will find this fun of useful, if you do and create new wordlists please let me know.

NB, I made a bit of a mess of attributing on this post. An apology to @ericcurts Eric Curts |

I’ve been following the work of Dave Winer for a while now. His pioneering work with RSS, blogging and podcasting is central to my use of the web. I’ve even dipped my toes into and blogged about Fargo his outliner tool a few times, I tried a couple too.

The product I am most interested in was the Rivers project. This is a take on RSS readers, where you view collections of RSS in a stream, rather than a folder structure.

In the past I set up River3 and River4. These products really need a server that goes a bit further than web hosting. I had some working locally but this was not ideal. The instructions for using the previous version of River tended to involve Amazon Web Services and a server elsewhere.


River5 changes all of this, it is designed to keep everything in the same place, one server. The only difficulty is that it requires a server running node.

This is pretty simple to set up locally on a mac. You need to use the terminal. You install node. Then you follow the instructions on the River5 github page and you are away.

What is very nice indeed is that you can add feeds you want to read in several different formats opml (handy for export from other RSS readers), json and plain text. There is a set of example feeds provided that will let you see everything is working.

I wanted to be able to have the rivers running all the time and be accessible from other computers. For that I need a server that I could install and run node on. Turns out I have one, john’s pi server. That sits on my window sill mostly taking pictures of the sky. It was running a twitter bot but that is broken at the moment.

Setting up River5 on a Raspberry Pi

I do most things on my pi via the terminal on a mac or iPad, suing ssh to logon.

I had installed node on the pi a while back.

Download the latest:

then install:

sudo dpkg -i node_latest_armhf.deb

I seem to have done that a while back when I was failing to get something else up and running.

All I need to do to get River5 installed was to download the files from github and upload them to the pi with scp.
I then unzipped them went into the folder and ran these two commands:

npm install

node river5.js

This set everything up, a plie of stuff streams by in the terminal and all looked ok. (I had problems the first time I tried but an update came out immediately that fixed things for Linux servers. I got a very quick response on the River5 Forum).

My Pi already has a sub domain so I visited and could see the rivers flowing with Dave’s Feeds.

I’ve now removed the original ones and replace them with lists of feeds of my own.

Rivers Forever

After that I went to bed, next morning I tried the link and it was down. The problem is I need to keep the application up and running even when I am not logged onto the server. I recalled reading on Dave’s blog about Forever. As usual google found the instructions to install and use: Keep a node.js server up with Forever.

This is pretty simple you install Forever with:

sudo npm install forever

npm is a package manager for JavaScript so it installs stuff.

After it is installed we can start up the river5 with:
forever start river5.js and it keeps going.

Mine has been running for a few days now on the pi without any problems.I’ve been enjoying an alternative view of some of my RSS feeds. My next steps are probably to move things around a bit so that I don’t relay on the built in node server, and can pull the river json over to here.

I am pretty amazed by the ease of doing this. The software has been made to be very easy to install and the Raspberry Pi turns out to be a very capable wee box.

It is National Poetry Day. When I was in class I always wanted to do something for this, but only occasionally remembered. Although I don’t have a way with words I like working with poetry in the class. I also occasionally like twitter haiku and the like.

I read Tom Woodward’s blog regularly and yesterday I noticed Fridge Poetry – Google Sheets as Database in my RSS reader. Given that I’ve messed about with fridges before 1, I took a look: Google Sheets – Fridge Poetry.

The really interesting thing 2 about this is that Tom has set it up so that it is easy to make another fridge with different sets of words. He even has a link on his post to create a copy of the google spreadsheet to make your own copy (you need a google account, a low entry bar). The sheet itself has the instructions.

Here is one with a selection of words from Scotland small? by Hugh MacDiarmid.

How do you save something like this? Take a screenshot.

What I really love about this idea, besides the sharing of how to do it, it the easy way it can be extended and used with a different set of words.

  1. That was back in 2002 when I was playing with Flash
  2. The other interesting this is the JavaScript and php stuff.

The problem

If you open a link to the new MS 365 bit of glow you are taken, if not already logged on, to the general sharepoint logon page. There you need to fill in your 365 user name, which is your glow email. When leaving the username field you are then taken to the normal glow logon page when you enter your username (not you email) and password.

This is not a problem if you are already logged into glow when you click the link. It is a problem if you click in a link in your email, don’t use glow for email and may not even know what your glow email is.

For example: will show the problem if you are not logged onto glow.

This is default behaviour of O365 and not something that can currently be altered.


In the glow help there is a workaround suggested:

  1. Encode the URL, using for example: URL Decoder/Encoder
  2. Add this encoded url as a parameter to this url:
    This will give in our example above:
  3. As an extra use a URL shortening service.

The help notes that is quite a complex fix.

A better workaround

I though it might be an idea to try and make a one click solution to the workaround above. It seems to work: Simplify Glow Sharepoint links.

That page gives a field to paste in a url, it converts this to the encode url and finally shortens this using the service. The example above is turned into This takes you first to the glow logon and then to the correct page.

Warning: I am not a programmer, my knowledge of JavaScript comes form google, there is a php element in the mix too, it does seem to work and after sharing it at the Glow Key Contact meeting Malcolm Wilson added it to the Falkirk glow home page.


Apart from someone who knows what they are doing editing the script, I though one way to make it more useful would be to make a bookmarklet. This lead to a fair bit of lost time as I could not get it to work due to glow using https and my files sitting on a non secure server (here).

A wee change of tack gave me this: GlowShortLink. Drag that to your bookmarks bar. Then when you are on a page which you want to link to. click the link. It will pop open a new window with a short link.

I’ve only tested this on a mac, using Safari, Firefox and Chrome. It seem to work fine. I’ll try it out on Windows and IE next week.

And here is one using bitly: GlowBitLink.