The 20 days of 20×20 #1 – 1st September 2014 at @AccessSpace #20×202014

Screen shot 2014-09-01 at 17.11.29

Strictly speaking this is a bit late, but they changed the dates and I only just thought about it so, whatever. If you’ve missed it before, Access Space has a free-to-enter show each year entitled “20×20”. You can make a piece of work in any medium on any subject as long as its physical dimensions are 20 inches square.

Access Space can provide a ready made “canvas” of a plywood box-construction board for £3.75, but you don’t have to buy one of theirs. All entries are accepted as long they are not considered to be inoffensive or inappropriate.

Here’s a video from last year of the opening evening.

So, I am publishing an advent-calendar style countdown until the official opening on the 20th (geddit?). FYI the DEADLINE IS THE 17TH SEPTEMBER and the “private view” (to which anyone and everyone is in invited) is on the 19th, but the general opening to the public is on the 20th. It’s a bit of a stretch but it gives me another 20 so I’m running with it.

I’ve never been short of ideas, but I am not sure what to do for this year’s 20×20, so by way of a bit of promotion for the show, I am going to attempt to come up with 20 ideas over the next 20 days. Not necessarily new ideas, maybe some I conceived before and didn’t make. I have a few of those already. I do try to come up with something clever each time, but I can not necessarily claim that they are all cool.

I timelapse recorded it, but I seem to have failed to make a ‘making of’ video from last year (I thought I’d made one, but I can’t find it online so maybe I never finished it). Here is a video of me making my 20×20 back in 2012. I successfully finished the video but it documents me making two failed attempts at making cool shit grasping victory from the jaws of defeat.

The idea to come up with 20 ideas came from this blog post I saw this morning. This hipster Pieter Levels is labelled as a “digital nomad”. He’s a young man who is launching 12 “startups” in a year, living out of a rucksack and doing it all on a laptop from various countries using whatever wifi and Jolt Cola that he can find locally.

Sounds cool, huh? Well, I sit in cafés and bars tapping on a laptop, often writing, always posting social media trivia and sometimes even genuinely coding, but no-one ever refers to me as a digital nomad.

I can’t deny being irritated by this sort hipster cock-sucking, but even Wired admit in their pull-quote:

“Levels represents everything that’s right about the state of the technology industry – or everything that’s wrong.”

It will be no surprise to learn which end of that particular see-saw I am on. What I find irritating is the obsession with, undoubtedly talented, twenty-something hipsters being feted for inventing first-world #coolshit that no-one actually needs.

Anyway, my home broadband got cut off recently, thanks to the incompetence of the people running South Yorkshire’s Digital Region and our provider, Origin Broadband. Consequently, I am currently an enforced digital nomad and am writing this post in one of my favourite free-wifi haunts in Sheffield, although I don’t think Wired would pimp me up quite the same as Pieter Levels.

photo (12)

I’ve rewritten one of the paragraphs from the article as if it was written about me. The strikethroughs are what was originally there, and the bits in square brackets are my substitutes.

‘Launching one product [idea] a month [day] would be a major endeavor for anyone, but Levels [Bolam] has ramped up the degree of difficulty. For one, he’s building [posting] all this stuff while traveling the world [around Sheffield]. He has no fixed [IP] address. Instead, he lives out of a single backpack and works from coffee shops and co-working spaces [pubs]. And two, each of these “startups” [ideas] is a one-man operation. “I do everything,” he tells WIRED from his current home, The Philippines [The Rutland Arms]. “I’m sort of a control freak.”’

But Wired is not interested in what I’m doing. It’s not that my shit is not cool, it’s just that I don’t tick the trendy boxes (although they seem to be coming around), so my cool shit does not currently qualify as #coolshit. I don’t dress the right way, I don’t use the correct language, and most unforgivable and irredeemable is that I’m just too old.

Anyway, please support the Access Space 20×20 show and, hopefully, you will see some of my shit there. Hopefully, it will be clever, but it may or may not be cool.

Charmed Lives – A work (still) in progress

Charmed lives graphics v1.002-001

The scans shown below are of a working copy of a script I wrote in 2008 for a spoken-word performance called “Charmed Lives”. It is a collection of true stories that happened to me and was made from fragments I had written over several years previously. In 2006 – 2008 I had performed some fragments of the work with some success and I conceived a standalone, one-man show intertwining a number of spoken-word and multi-media elements.

It feels like a major work, although it is still unfinished. So far it’s taken longer that the Sistine Chapel but at least I don’t have the Pope breathing down my neck.


My own introduction to performance art was through Laurie Anderson via BBC disk jockey John Peel when he played the 12” single “O Superman” on his radio show in 1984. It is an audio track from her 8-hour performance work “United States” (1984). I had never heard anything like it, and I had never heard the term “performance artist” before. At that time, performance art was nothing a new, but it was something that did not previously exist in my world in those days.

Being introduced to the work of Laurie Anderson changed my life, although not immediately and not for a long time. My fascination with her kind of delivery stayed with me ever since and, given my introduction, what I find strange about much current performance art is the single action or single observation performance, where someone repeats one thing and the audience scratches their chins and nods in appreciation.

I have come to think that this kind of dense multi-media work is no longer fashionable. At least not at the moment.

My ambition for my own work is to make something that has much more depth and complexity, some lasting interest for the audience beyond a single punch-line, although I’m not against a few punch-lines.

Anyway, I recognised that I could gather a number of fragments together into a coherent whole and make it into a show, rather like what I had seen Laurie Anderson do. I had no intention of mimicking her style, but I was interested in her use of multi-media and the non-linear, abstract narrative.


I organised a work-in-progress performance, which is quite common in that world, and I attracted an auspicious, professional audience, and proceeded to make a not insignificant fuck-up of the performance. It was largely my own fault, but also exacerbated by a good helping of bad luck. Site Gallery in Sheffield generously gave me the use of their studio room but it was double-booked and I didn’t get the whole day of run-throughs that I had expected. When my audience arrived, I was stressed from the rush to set-up and, although I knew most of the text quite well, I could just tell that I wasn’t going to be able to recall it all.

In 2012 I saw Laurie Anderson perform her show “Dirtday” live at Sheffield City Hall. It was highly informing from a production point of view. I had never seen her perform live before, but one thing I hadn’t realised before is that she reads the text from a script. She has a beautiful voice and her delivery is superb, but she doesn’t attempt to remember the text. The show had a very sophisticated light show and she punctuated reading with musical motifs played on her violin.

Where I went astray is thinking that I could achieve so much in one piece of work and in such a short time across a number of very technically demanding disciplines. And with no production help. Having seen some very accomplished performers, I let an initial small flurry of minor successes convince me that I could make a huge leap into the world of the professional theatre performer. I don’t mean as an actor, but even a deadpan delivery requires a huge amount of practice, control and extraordinary skill.

Anyway, when I look at the sweated-over text / script, I am still satisfied with it as a whole, so I think it’s about time I made an end.


If you would like to see the working copy of the work-in-progress that I was carrying around with me in 2008, it is here and it will be available as a download and a print of that version.

Whereas in 2008 I imagined the work as a spoken word, theatre-style work, I think it was more than a little optimistic for a non-professional. The way I intend to finish the work is to publish the text in a book form and record some of the fragments of it as video, and possibly live readings from it here and there. Stay tuned…

Casualty 14-18 ~ The making of a generative artwork by Richard Bolam – Part 10 #bolamat50 #casualty1418 #WW1

Untitled 3

This time I have added a similar routine to fill from the bottom-right to top-left. The next iteration might be to create a contiguous group in the middle that could have a ragged edge on the top and on the bottom (see below).

Code fragment:


echo $”UNITCOUNT = “$UNITCOUNT#” – “$UNITROWS” rows, “$UNITCOLUMNS” columns”

UNITCOL1=”$[RANDOM % 255],$[RANDOM % 255],$[RANDOM % 255]“

# create top-left to bottom-right flow of figures using colourised blocks
echo “bottom “$[$UNITROWS * 38]
if [ $UNITROWS -ne 0 ] ; then
convert casualtytiled.png -region 400x$[$UNITROWS * 38]+0+0 -fill “rgba($UNITCOL1)” -colorize 30% casualtytiled.png
if [ $UNITCOLUMNS -ne 0 ] ; then
convert casualtytiled.png -region $[$UNITCOLUMNS * 20]x38+0+$[$UNITROWS * 38] -fill “rgba($UNITCOL1)” -colorize 30% casualtytiled.png

echo $”UNITCOUNT = “$UNITCOUNT#” – “$UNITROWS” rows, “$UNITCOLUMNS” columns”

UNITCOL1=”$[RANDOM % 255],$[RANDOM % 255],$[RANDOM % 255]“

# create bottom-right to top-left flow of figures using colourised blocks
echo “rows from bottom “$[$UNITROWS * 38]
if [ $UNITROWS -ne 0 ] ; then
convert casualtytiled.png -region 400x$[$UNITROWS * 38]+0+$[646 – $[$UNITROWS * 38]] -fill “rgba($UNITCOL1)” -colorize 30% casualtytiled.png
if [ $UNITCOLUMNS -ne 0 ] ; then
convert casualtytiled.png -region $[$UNITCOLUMNS * 20]x38+$[400 – $[$UNITCOLUMNS * 20]]+$[608 – $[$UNITROWS * 38]] -fill “rgba($UNITCOL1)” -colorize 30% casualtytiled.png

Untitled 2

I have started to organise the routines into functions so that I can call them in a more structured way. More soon…

Casualty 14-18 ~ The making of a generative artwork by Richard Bolam – Part 9 #bolamat50 #casualty1418 #WW1

Screen shot 2014-08-10 at 18.49.00

In the parlance of modern coders:


I have implemented the batch creation of images and the automated posting of multiple, scheduled blog posts. It’s spam technology, basically, and I am rather pleased with myself.

I hasten to add that the code, although reliable, is quite klunky so far, with no error-checking, no error-correction, no subroutines or functions and no audit-logging. The software echoes some info to the console for me to keep an eye on it, but am still checking each blog individually post for errors.

However, it’s only a development version of the software, but it works! The important part of this is that what I have done so far is a successful proof of concept of the workflow; creating the images, batch emailing them and automatically scheduling the posts over consecutive days. I am just doing batches of three days initially, but when I have checked the software more I will extend the period as there is no way I can attend this project every day for more than four years.

As I have said before, I am not an expert programmer, but I have done a lot of programming over the years, all the way back to 1980. However, I must say Bash is very odd, although it can do, well pretty much anything although some achievements with it require an almost religious devotion and a huge leap of faith. It’s not for the faint-hearted or the easily diverted.

Fortunately my heart is not faint and I am rediscovering something of the evangelical excitement I remember from those early days of programming.

Anyway, I think I might also start printing these out on actual paper. I had not intended to print this version of the work at all, but it might make a interesting adjunct to the online version.

Code fragment:

#casualty make script v14

for d in {1..3}
CURRENTDATE=$(date -v+$d’d’ +”%y_%m_%d”)
CURRENTLABELDATE=$(date -v+$d’d’ +”%d/%m/%y”)
SCHEDULEDATE=$(date -v+$d’d’ +”%Y-%m-%d”)

mkdir ‘Casualty1418-‘$CURRENTDATE

#image creation code here…

#email images to blog
FILENAMES2=’-a ‘`echo $FILENAMES | sed ‘s/ / -a /g’`

echo ‘[delay '$SCHEDULEDATE' 07:00:00 GMT][tags #casualty1418,#bolamat50,#WW1,Casualty,Casualty 14-18,#firstworldwar,First World War,generative,algorithmic,computational,art,Richard Bolam,Bolam Retrospective,#bolamat50][nogallery]‘ | mutt $FILENAMES2 -s ‘Casualty 14-18 ~ ‘$CURRENTLABELDATE’ #WW1 #casualty1418′
cd ..


The next stage of development might include rewriting the code to be a bit cleaner and structured. It would be better to attend to that now, rather than later when there is a lot more sauce on the spaghetti.

Stay tuned…

Casualty 14-18 ~ The making of a generative artwork by Richard Bolam – Part 8 #bolamat50 #casualty1418 #WW1

Screen shot 2014-08-07 at 16.07.58

By the way, I am not an expert programmer and the code published here is experimental and comes with absolutely NO WARRANTY WHATSOEVER, so please USE AT YOUR OWN RISK.

Okay, pick the bones out of this one.

FILENAMES2=’-a ‘`echo $FILENAMES | sed ‘s/ / -a /g’`

Every space and flying ant is very specific and those “back-ticks” are not optional. This code fragment simultaneously illustrates what is both good and bad about linux / unix. Although I am still a bit of a noob with Bash, I can now reliably produce working code that actually does things I want. However, I am still regularly stumped by the unintuitive subtleties of the syntax.

Also, although there is a wealth of documentation online, much of it is incomplete and/or it does not necessarily work exactly the same on different implementations of Linux. I am not sure how much of this is due to my use of Mac OS X.

Anyway, it took a few hours of every combination of trial and error and a few leaps of faith to get this part of the script working. What I was trying to get working here is the automation of emailing the blog posts. I found a very helpful post on

The Linux mail command does exactly what you would think, but it does not support attachments. However, there is an other command mutt which does the same but adds a lot more functionality. It’s deceptively simple to send an email from the command line, but for a while I could not work out how to add multiple attachments, and this is the bit that required a bit of head-banging.

If you google search sending multiple attachments you get lots of references to adding “-a” flag to each of the filenames, but I need to add a whole folder full and don’t want to have to list them verbosely.

I will not keep you guessing as long as it took me (and this might not be the best method) but just passing a list of file/path names after the first “-a” attachment flag does not work no matter what I tried. Anyway, with a bit of lateral thinking I wondered if I could programmatically format a list of file/pathnames as a string with a “-a” in front of each one.

This kind of preprocessing is where Bash programming really excels, and I found reference to the sed (stream editor) command to substitute the string” -a ” instead of the single spaces separating the derived list. That leaves the first file without a flag, hence the literal at the beginning of the calculation.

Code fragment:

#email images to a blog post
FILENAMES2=’-a ‘`echo $FILENAMES | sed ‘s/ / -a /g’`
echo ‘[tags #casualty1418,#bolamat50,#WW1,Casualty,Casualty 14-18,#firstworldwar,First World War,generative,algorithmic,art,Richard Bolam,Bolam Retrospective,#bolamat50][nogallery]‘ | mutt $FILENAMES2 -s ‘Casualty 14-18 ~ ‘$(date +”%d/%m/%y”)’ #casualty1418 #WW1 – test post’

WordPress has a very full implementation of formatting options for emailing blog posts to your own blog. You have to create a unique email address and you can include various tags to add features to the post. The code here includes meta tags and an instruction to keep the images as a series of inline images rather than a gallery.

The next stage will be to add a tag to schedule the posts for a specific time and date. More soon…




Casualty 14-18 ~ The making of a generative artwork by Richard Bolam – Part 7 #bolamat50 #casualty1418 #WW1

This is where it’s starting to get interesting. I decided to add a routine to colour figures from the top left to make it look more like a cumulative pictogram. This is merely a visual effect and not representing any real data, but it prompts the recognition of cumulative data based upon the Western top-left to bottom-right reading order.


The first version of this bit of code stamps individual figures over the top of the already created array of black figures, one-by-one, along rows until it reaches a randomly derived limit. However, immediately after finishing this code, I realised that is a very inefficient way of colouring the existing figures, although it works fine.

If the code is going to colourise this new selection of figures the same colour, it is much more efficient to do it in a block rather than one figure at a time. Or should I say, in two blocks, one for the full rows and one for the partial final row.

Screen shot 2014-08-06 at 12.35.33

I have left in the one-by-one routine as I might use it later to alter figures one at a time but still in a cumulative order. I have commented it out for the time being.

I have also added a couple of variables to hold RGB colour values, rather than just generating them randomly on-the-fly, or literally.

Code fragment:

#pad figure
UNITCOL1=”$[RANDOM % 255],$[RANDOM % 255],$[RANDOM % 255]“
UNITCOL2=”$[RANDOM % 255],$[RANDOM % 255],$[RANDOM % 255]“
convert casualty.png -gravity center -extent 20×38 casualtypad.png
convert casualtypad.png -transparent white casualtypad.png
convert casualtypad.png -fill “rgba($UNITCOL1)” -colorize 100% casualtycolour.png
convert casualtycolour.png -transparent white casualtycolour.png

#create tiled image of figures & make background transparent
convert -size 400×646 xc:white -composite tile:casualtypad.png casualtytiled.png
convert casualtytiled.png -transparent white casualtytiled.png

#create a top-left to bottom-right flow of figures row-by-row
echo $”UNITCOUNT = “$UNITCOUNT” : j=”$j
echo $”UNITCOUNT = “$UNITCOUNT#” – “$UNITROWS” rows, “$UNITCOLUMNS” columns”
#for v in $( gseq $UNITROWS )
# for h in {1..20}
# do
# composite -dissolve “50,100” -geometry +$[($h - 1) * 20]+$[($v - 1) * 38] casualtycolour.png casualtytiled.png casualtytiled.png
# echo $[$h * 20]“-“$[$v * 38]
# done
#for h in $( gseq $UNITCOLUMNS )
# composite -dissolve “50,100” -geometry +$[($h - 1) * 20]+$[($UNITROWS - 1) * 38] casualtycolour.png casualtytiled.png casualtytiled.png

#echo $j’/’$UNITCOUNT

# create top-left to bottom-right flow of figures using colourised blocks
echo “bottom “$[$UNITROWS * 38]
if [ $UNITROWS -ne 0 ] ; then
convert casualtytiled.png -region 400x$[$UNITROWS * 38]+0+0 -fill “rgba($UNITCOL1)” -colorize 30% casualtytiled.png
if [ $UNITCOLUMNS -ne 0 ] ; then
convert casualtytiled.png -region $[$UNITCOLUMNS * 20]x38+0+$[$UNITROWS * 38] -fill “rgba($UNITCOL1)” -colorize 30% casualtytiled.png

The results of the new additions bring much more subtlety and depth to the images. This new code will be implemented at the end of the week.

However, a more pressing addition is the automation of blog post creation and batch processing of multiple days. So far, I am still creating the pages manually.



Casualty 14-18 – How many is too many? – Counting the dead. #casualty1418 #WW1 #bolamat50

The answer to the question should be pretty obvious. One.

I am not interested in adopting an academic approach to art, I think it only leads to self-conscious and overly-rationalised work. However, if your work references the real world, it is your duty to at least get your facts straight. Otherwise how can it have any authenticity?

As I have been researching the First World War, I am horrified. Although it has been thoroughly documented for a century, the details are endlessly shocking.

These days, every single death in whichever war is currently of interest to our news channels is individually recorded, often in a mawkish reverence that only serves to underline the bias of what we are allowed to know about.

My work “Casualty 14-18” is an attempt at comprehending something of the scale of the tragedy visited upon half the world by the vanity of an undeservingly privileged few.

However, if the First World War could not have lead to an anarchist utopia, then there truly is no hope for the human race, and this is only reinforced by the fact that it was repeated and multiplied a mere 25 years later.

I got my figure of 16 million from wikipedia, although I had originally gathered the figure of 15 million from other sources.

The Telegraph quotes 8.5 million and the BBC TV drama serial “37 days” quotes 10 million in its epilogue. I believe the figures up to 10 million do not include civilian deaths, but why would you not include them?

I chose the 28th July as the starting date of my Casualty 14-18 work as it is the date that the first shots were fired. Today is the 4th of August, the centenary of the British ultimatum to Kaiser Bill which, to my mind at least, is too anglocentric, but whatever. We all have to choose a number, choose a date and do something with it.


Although the First World War is over a long time ago, wars continue and casualties accumulate, and not only in Gaza. Also currently in Ukraine, Syria, Iraq, Egypt etc etc etc. Not all officially declared wars, and not all of them of any interest to the British government or British media.

I make no claim to be a historian so I get my list of ongoing armed conflicts from Wikipedia via the Uppsala Conflict Data Program.

How many is too many? It seems that there is no upper limit.