On Tuesday 26th May 2009 I wrote a series of BASH scripts for the Linux terminal which explored ideas about code, code representation, and the history of commands issued during the creation of such works. The archive of posts can be found at the netbehaviour.org archive for 26th May 2009. The scripts were informed entirely by postings by myself and others to the list.
Note: I was not asked to do them, nor was I doing them within any formal context laid out by Netbehaviour.org. I just posted them to the list as they related to what others and myself had recently posted.
The first of these scripts scrolled a message by Alan Sondheim horizontally along the top of the terminal. The message was a response to my posting of the history of commands I had typed into a terminal, which in turn responded to Alan's post of his command history.
Between Alan's message, and the first re_store_present script, there was also The Wheel of The Devil (aka the loop lecture) thread which myself and Pall Thayer responded to, or in my case, hijacked. This was where my ideas for the scripts originally began, and the script I posted there ran in a loop, indefinitely simply displaying the command history of whoevers machine it was run on.
One of the ideas of these scripts, that they be viewed, and that they (the latter scripts atleast) display their own code, is informed by Pall Thayer's Microcodes.
My first re_store_present script did not however explore the idea of the code being shown. It was more an extension of my single line but less for viewing. Despite this, I used the unix command tr to translate the message to a 'secret-code' form, where letters a-x were translated to b-y so Alan's message became unreadable within the script where it was stored. This I felt was important because you had to run the script to view the message and the way the message was displayed (ie scrolling slowly along the top of a terminal) seemed to create, for me atleast, more of an impact for the content of the message.
In the beginning I was not aware of having an intention to create a series of scripts. The fact there is a series of scripts is just a result of the code itself suggesting further things to do with it. It was not until I finished a script and had posted it to Netbehaviour.org that I had the idea for the next script - or atleast had the inclination to impliment the 'next-level' idea I'd avoided so far.
For the second script, I took a message Pall Thayer had sent in response to my first script. This message was also encoded and also scrolled along just beneath Alan's message. Pall discussed his concerns that we as artists writing code should make every effort to provide pointers for non-coders as to the meaning of the code (ie probably things we as coders would not ordinarily document due to it's obviousness to us).
The inclusion of Pall's message into the script basically paved the way for my final re_store_present script (screenshot of it in action above). The text below is taken from my email re_store_present5 - now with added history!:
As the email subject suggests, this version now includes the history list from the first script created this morning, almost right up to the finished script which is re_store_present5. So I guess it kind of wraps things up, for: There is Alan's message about his fascination with history lists (or the debris scattered around our digital creations) and below is the history list during the development of these scripts. There is Pall's message about his concerns around the display of code and it's interpretation (or lack of) by those averse to coding - and below that is the code of the script itself (littered with comments as an attempt by me to address this issue). BTW, the following page helped with using arrays in a bash script: http://www.linuxjournal.com/content/bash-arrays Cheers, James
colour version by Pall Thayer
Pall Thayer also modified re_store_present4 to create a glitchy colour version. I then also created a patch to add -glitch and -width options to the scripts after discovering that AMD64 Debian Lenny did not interpret what I had used as an "erase line" escape sequence, as what I intended (while x86 version had). The patch corrects this for AMD64, but note, the scripts available here on my website are already the patched versions.