About Artisans (Previously posted Dec 2006)

About Artisans

Peculiarly (as I found myself unable to agree with almost every expression voiced in 'The Digital Artisans Manifesto'), the notion of the artisan has a particular resonance to me …

a worker in a skilled trade, esp. one that involves making things by hand.

New Oxford American Dictionary, 2nd Edition

For me, it is the latter part of this definition that holds the key, and perhaps forms part of my dislike of the Digital Artisan's Manifesto; I will need to explore this in more detail.

William Gibson: Idoru: Waverider (Previously posted Dec 2006)

William Gibson: Idoru: Waverider

Much of the joy of the novel resides in the details, the meditations on the nature of a postindustrial, postmodern, mediated and simulated social milieu. For example, one of the novel‘s main protagonists is Laney, a researcher and data collector for the SlitScan media organisation (a kind of hyperreal metatabloid, somewhere between The Sun, Celebrity Nudes and schlock TV). Laney’s a channel surfer, a waverider, a station zapper, with a short attention span, who is an ‘intuitive fisher of patterns of information…a dowser, a cybernetic waterwitch’. Intuitively, magically, he can browse the info-gestalts in data banks and, by finding the node point, a strange attractor, uncover the scandals in celebrities lives. He‘s kind of like Case from Neuromancer, a console cowboy of sorts who thieves the horrors and disasters from people’s lives; the hacker as tabloid journalist, you might say. It‘s in these thoughts on data and information, its relations with the subjects lived experience and actual life that Idoru is at its most interesting. In a sense Gibson’s offering an update of a Foucauldian panoptican: the lives of the individual citizen and subject are constantly open to surveillance and intervention through the traces they leave in cyberspace. In Gibson's near future, the life of an individual is entirely open, ever present (albeit virtually); s/he can have no secrets, every action and gesture can be known by the data it leaves behind.


        Reading the notes on Wark's Hacker's Manifesto, this is what came to mind; there is something of Gibson's character Laney with his ability to uncover 'node points' that speaks of the interplay of context that I am interested in, in my work.

General Thoughts (Previously posted Dec 2006)

General Thoughts

Thinking about my work, it has occurred to me that the way I work is as a hacker. By this I mean someone who uses existing materials and disassembles them, at least in part, in order to reconfigure them, often incorporating other unrelated materials, with the purpose of creating something new. I am often drawn to particular materials or processes because of the cultural meaning attached to them.

There is a general ambiguity around the term hacking but a general definition sounds positive in describing: ‘any process of knowledge where data can be gathered, where information can be extracted from it, and where in that information new possibilities for the world produced, there are hackers hacking the new out of the old.’

Wark - Hacking

Whether the material is steam, or computer, the politics imbued in (or for that matter the physical characteristics of) a shipping container, or a historical materialism (or any other) methodology, I seek to explore the ‘material’ and how it might relate to other ‘materials’ that also catch my eye. In this respect, it could be seen that my methodology is from a postmodernist school in the sense that postmodernism is often perceived to be predominantly concerned with collage, juxtaposition and the interplay of context.

Postmodern scholars argue that such a decentralized society inevitably creates responses/perceptions that are described as post-modern, such as the rejection of what are seen as the false, imposed unities of meta-narrative and hegemony; the breaking of traditional frames of genre, structure and stylistic unity; and the overthrowing of categories that are the result of logocentrism and other forms of artificially imposed order. Instead, they value the collage of elements, the play and juxtaposition of ideas from different contexts, and the deconstruction of symbols into the basic dynamics of power and place from which those symbols gain meaning as signifiers. In this it is related to post-structuralism in philosophy, minimalism in the arts and music, the emergence of pop, and the rise of mass media.


However, in contrast to this statement, I feel that it is not possible to sweep away the old in favour of the new nor to reject ‘imposed unities of meta-narrative and hegemony’, partly because there are fundamentals that do not change; human nature is a constant (both good and bad). It is from this, perhaps peculiar, dialectical standpoint (perhaps in some ways none too dissimilar to the intellectual contradiction that Walter Benjamin encountered between his Marxist and Kabbalistic views) that I am seeking to frame my practice.

Technical Research / Skills Areas for 2007/8 - initial thoughts

Cocoa and Objective-C

In order to do further work integrating Serial, MIDI and Quartz Composer technologies, it is necessary to ‘get my hands dirty’ with some real programming; and although Processing etc. do provide excellent frameworks, being able to work with OS Xs frameworks has additional benefits. For example, there has recently been published a template for creating custom plugins for Quartz Composer (the visual technology I am most keen to develop with); perhaps it would be possible to create a Serial-In plugin for Quartz Composer; or one that allows Nodebox animations within QC.

Additionally, as any Cocoa / Objective-C application inevitably involves some C/C++ programming, this should help my understanding of these languages for use with programming Arduino / Atmega Microcontrollers

MIDI input and recording with Arduino

Arduino Forum - 'midi in" project….

The idea that I have for my final project (post more later) involves recording MIDI either directly on Arduino or onto another storage medium with an Atmega Microcontroller of some sort. This will obviously involve quite a lot of research into how to do this best


Where is the work positioned? Who else is looking at these ideas / technologies? How does this build on the work that I have done already eg Histories and Futures - how does it extend that work?

(More later I'm sure!)

Pocket Computer

Pocket Computer

  • Works with most SD cards, size is not limited (but MrMidi can only use the first 32MBytes of it)
  • Real MIDI files (Format 0 only) - recording and playback
  • Maximum of 255 files, they must be in the root directory of the card
  • Displays the file names - long names are supported
  • File delete is possible (it can delete any file from the root directory)
  • 256 byte input/output buffer and 8MHz clock for high performance and precise MIDI timings
  • Lyrics are displayed (when contained in MIDI file) - cool!
  • Variable speed (+/-15 steps) and transpose (+/-24) while playing a file
  • SD card bootloader - just format a SD card, copy MM.BIN onto it, insert it and switch ON!
  • MIDI channel mute for each channel
  • Menu for setting up drum channel, lyric display, repeat modes and channel mute
  • Settings are stored in non-volatile EEPROM on-chip
  • IR remote control (RC5 protocol), a Philips videorecorder remote for example. Or get a programmable remote and use code 257.

This project, which includes schematics and bootloader code may give sufficient information as to how to build a basic midi recorder


Arduino playground : EEPROM-Flash

Hidden Powers - storing data in Flash and EEPROMThere are three types of memory in the atmega8:

Flash memory: it‘s a rewritable non-volatile memory. This means that its content will still be there if you turn off the power. It’s a bit like the hard disk on the arduino board. Your program is stored here. The ATmega8 on the Arduino board has 8 KB of Flash memory, with 1 KB taken up by the bootloader. This memory supports at least 10,000 writes.

RAM: it's like the ram in your computer.its content disappears when you turn of the power but it can be read and writter really fast. The ATmega8 has 1 KB of RAM.

EEPROM: it‘s an older technology to implement rewritable non-volatile memory. It’s normally used to store settings and other parametres. The ATmega8 has 512 bytes of EEPROM. This memory supports at least 100,000 writes.

Multiplexers and Arduino

This taken from the arduino forums may be useful:

let's take the mc14067 (http://www.onsemi.com/pub/Collateral/MC14067B-D.PDF) as an example this is an 16 channel analogue multiplexer. i've use this a lot of times.

connect pin 24 to 5V and 12 to GND. then connect a 10K resistor from 5V to pin 15. this is powering the chip and enable the switch that lets you pick which input to read.

now connect pin 1 to analogue input 0.

now we need to tell the chip which channel we want to read. this is done by connecting 4 digital outputs to pins 10,11,14,13. By using a combination of digitalWrite commands you can set the input channel to read.

all the other 16 pins are inputs where you will connect up to 16 pots (or any analogue sensor)

the code will look like this:

    for (i=0; i <16; i++) { 
        # write i in binary on 4 output pins  
        # this selectes the input 

        val = analogRead(0) 
        # store val somewhere or send it on the serial port 

now the cool part is that if you hook up one of these to each analogue input you can have 96!!!! analogue inputs

Shipping Containers; Materials #1 - Wood and Brass


    20ft long
    40ft long

Size in M





scaled @ 1:40 to CM





scaled @ 1:40 to MM





(Containers also come in 45-ft (13.7 m), 48-ft (14.6 m), and 53-ft (16.2 m) lengths)

£90 from R A Bampton; ready fri 30th March

Four Maries Yard, 31, Vespasian Rd, Southampton, Hampshire SO18 1AY

Tel: 02380 223937


Advanced Alloys Ltd

Unit 17, Parham Drive, Boyatt Wood Industrial Estate, Eastleigh, Hampshire SO50 4NU

Tel: 023 8061 8891

Brass & Copper

Brass - Square Cross Section

~ £10 / 3m length

1/8 or 3/16

64.75mm 4 corners 30 units = 7770 mm

Building Blocks #1 - Woodwork

A Block
A block; this is white beech, cut to size - exactly scaled from a standard international 20ft shipping container.

Block with corners routed out
The first step was to remove the corners in order to let in the aquare section brass rod. This was done by building a simple router router table and running each one through. After a few where the beech would split when the router got to the end of the cut, I developed the technique of cutting the last part first, avoiding splitting it by offering the block into the center of the cutter; rather than the edge.

The next challenge was how to make a nice opening in the bottom of the blocks to take the electronics. For this I built a simple jig that the blocks would slide into, and then be clamped in the bench. Then the opening at the top would provide a guide for the router. Shown here are 2 views of the mk1 jig. mk2 had a more accurately cut top section.

Mk1 Jig, side view

Mk1 Jig, top view

Mk1 Opening Detail

Detail of a cut block; as you can see it is not totally satisfactory - hence the Mk2 Jig. Even this however was not as accurate as I would have liked … a problem to be solved aanother time!

Routing Complete

A block with the routing completed.

Blocks on mass
30 completed blocks!

Next time - the metal work

The Container Ship Project

The application comes in 3 parts; Containerizer, ContainerShip and ShippingLines:

Containerizer: An application for creating a shipping container and filling it with contents. To use it, simply drop files onto the application; the application will create a uniformly sized container with a unique id number on the desktop. Each container will hold up to 500K.

(Technical Overview: This is a GUI front end for a simple BASH shell script; which creates the container (a 600K Disk Image), with a unique id.)

ContainerShip: An application for loading containers onto the ship for delivery. To use it, drop a container onto the application; you will be asked for an email address for the recipient, the sender's email address and a password, which will allow the recipient to download their container.

(Technical Overview: This application, again a GUI front end for a simple BASH shell script, sends a POST request to the web server, passing the recipient‘s email address, the sender’s email address, the password and the disk image. On receipt of the data, the container is assigned to a ‘ship’; if that ship is full it is given a ‘sailing date’ and a new ship is created ready to take the next consignment of cargo.)

ShippingLines: This application is used for showing the progress of a container. To use it, drop a container onto the application; assuming the container has been loaded onto a ship, it will show the progress of the container.

(Technical Overview: A GUI front end for a simple BASH shell script, which simply opens the user‘s browser to the progress page on the web server passing the name of the container. The progress page checks the current date against the sailing date for the container’s ship and works out what percentage of the journey has been completed.)

When a container reaches its destination, an email will be sent to both sender and recipient informing them of the arrival. The recipient will be able to then download the container from the system using the password set by the sender.

(Technical Overview Behind the Scenes: A timer runs an update script on the web server twice per day, checking for arrivals (ships where the journey percentage is 100%) and emailing recipient and sender with details of the transaction.)

The shipping container was designed as a fast and efficient method for the transportation of diverse goods - a method that would work on road, sea or rail.

The Container Ship Project explores the similarity between shipping container traffic and network packets, and also their relationship with each other, as it is the network packet (the order) that fills the container (with the product) for delivery by the ship.

The article ‘20 Ton Packet’ from Wired makes the following comparison

At its heart, ocean shipping is a network business, just like airlines and telecommunications. Passengers, bulk goods, data - all three represent uniform-size cargo, shooting through global transport and sorting systems 24/7/365. Viewed this way, airline seats, data packets, and 40-foot shipping containers are much the same - commoditized units for carrying content.

The irony of comparing the processes of container shipping with those of telecommunications is obvious. How can the mammoth bricks stacked on Koch‘s freight ship be reduced, through analogy, to nothing but a series of electrical impulses coursing through a thread of glass? Yet the redolence of the concept of “network,” pumped full of the corporate giddiness set off by the Internet, makes the comparison irresistible. And worthwhile. Since Malcom McLean, it’s safe to argue, no single shift in the big-picture view of the business has been as important as the introduction of systems and insights produced by digital networking.


Yet in this comparison, we are faced with a peculiar dialectic between the similarities created by analogy and the differences, which root us in the physical and political.

In order to begin to explore these ideas, the system is set up so that you have to wait for this process to complete; unlike web services of a superficially similar nature (sending files), an important aspect of this project is that it takes time to both load and deliver the containers. Firstly, you have to wait for the whole ship to be full and then for it to make its journey. A ship may take two weeks to deliver a cargo from China to America.

Obviously, as electronic documents are transmitted around the world almost instantly, the system is somewhat of an artificial construct. However by modelling the physical process of shipping, the system seeks to change the nature, or perception of sending the documents; it automatically makes it a more deliberate process. You have to decide, up to a month in advance, that you want to send a particular document to a particular person. You also have a finite size to work with for each container; so you have to make deliberate choices as to what to put in there. If it were a paid for service, these choices would become even more important.

In the system, all the files sent are packaged up as containers - they are equal in size (data size), faceless and closed. In transit they are uniform. It is only once they have reached their destination that they can be opened up. Just as the anonymous shipping container hides its contents from prying eyes, the computer archive gives few clues about the files inside it.

The system has been built using object oriented programming. The primary principles of which are abstraction, encapsulation and inheritance. There are parallels between shipping containers and object oriented programming; a standardised design (abstraction) for the packaging of goods (encapsulation) for shipping across different modes of transportation (which interestingly took hold because not only was is standardised, but also it was open - given freely to the ISO standards organisation), which is turned into many instances of the design (or class), and which is extended in many different ways (inheritance).

    // object oriented presentation of the shipping container:

    class shippingcontainer {
        public $height;
        public $width;
        public $length;

        private $contents;

        function __construct( $height, $width, $length )
            $this->height = $height;
            $this->width = $width;
            $this->length = $length;

        function storeGoods( $goods )
            $volume = $this->height * $this->width * $this->length;
            if ($goods->volume > $volume || isset($contents))
                return false;
                $this->contents = $goods->contents;
                return true;

            function unloadGoods()
            if (!isset($this->contents))
                return false;
                $goods = $this->contents;
                return $goods;

            class politicalmeaning extends shippingcontainer
            public $meaning;

            function __construct( $height, $width, $length )
            $parent::__construct( $height, $width, $length );
            $meaning = array();

            function addMeaning( $new_meaning )
            $meaning[] = $new_meaning;


The success of the shipping container as a method of shipping diverse goods across a number of different modes of transportation has lead to it being used as a model for developing new software systems and networking concepts.

Although the lessons of logistics learned from containerisation are helpful for the development of digital systems using analogies of objects and networks, those same analogies, expressed through this project, also demonstrate the dialectic relationship between digital systems and the physical act of shipping - and ask questions about the dominance of digital systems.

My argument here runs against the commonly held view that the computer and telecommunications are the sole engines of the third industrial revolution. In effect, I am arguing for the continued importance of maritime space in order to counter the exaggerated importance attached to that largely metaphysical construct, “cyberspace,” and the corollary myth of “instantaneous” contact between distant spaces.

Allan Sekula, “Fish Story”, pp50, 1995

Allan Sekula argues in Fish Story that there is a tendency in the west to think of the world in terms of the digital documents travelling through cyberspace almost instantly and the physical (people, objects) travelling through physical space primarily by plane.

Of course this is only really a small part of the bigger picture. Two thirds of the world does not have access to clean drinking water let alone have email, or access to air travel; and 99% of goods travel by sea and then land.

The distorted lens, through which we in the west look at methods of production and distribution, has become even more extreme in the 12 years since Fish Story was published.

For Sekula, much of this is a political argument; it is the societal embodiment of the Marxist struggle between the bourgeoisie and the proletariat, played out not just locally or nationally, but increasingly globally. China owes it‘s economic boom at least in financial terms to the shipping container; making it practical and cost effective to ship vast quantities of goods across the world to America and Europe; but not without paying a high human price. The sweatshops of Europe have just moved further east. Even India, once the cheap labour capital of the world, cannot compete with China’s ‘economic miracle’.

Workers continue to be necessary, and the entire globe is scoured and policed in a restless search for the cheapest labor markets, thus cheapening all labor in the process. But the very existence, and need for, work and workers is increasingly denied. And with this denial comes a new Malthusian indifference, coupled with new fantasies of self-sufficiency. For functionaries serving technical, financial and cultural elites, the imaginary economy takes on the shrinking dimensions of carry-on luggage: the laptop computer with its internal modem, the very image of the self-sufficient brain of capital.

Alan Sekula (Fish Story)

Marx‘s political struggle played out but not without the demand from the west. We are so enamoured by the perceived notion of the ’digital era‘ that we fail to see its disconnection from the physical world that that notion must be superimposed upon. The ’digital‘ is merely a brand, alongside all the Nike’s and Adidas‘, a disembodied reputation, in a dialectical relationship with the means of production and transportation. ’Speed‘ and ’progress' have become the gods of the era, following the lead of the Futurists before. Even though we have rejected the extremes, their passion for speed and progress has seeped into our consciousness.

Ideas of abstraction and encapsulation have become more than just models. We have abstracted production and transportation into systems, denying the place in those systems of the workers and the physical processes that actually enable those systems to function.

The problem with our disconnectedness from the means of production and distribution is that we are removed from the consequences of our demands, and thus in our drive for progress, we maintain social and economic injustice.

Furthermore, looking at the concept of progress, it would seem to run into trouble when looked at alongside Walter Benjamin‘s essay ’Thesis on the Philosophy of History‘; if ’history‘ is a fake, then ’progress' must also be. In this context the futurist notion of only progressing forwards (at speed) must be seen as problematic.

In his own words, ‘Fish Story’ unmasks the ‘bourgeoisie’s fantasy of a world of wealth without workers‘ and depicts an industry hidden behind the myth of an industry-free ’information economy‘. ’Interpretation,‘ he writes in ’Dismantling Modernism, Reinventing Documentary‘ (1978), ’is ideologically constrained. Our readings of past culture are subject to the covert demands of the historical present. Mystified interpretation universalizes the act of reading, lifting it above history.'


What Benjamin and before him Marx and Engels, seem to say is that the idea of history as a narrative is flawed, because it is always subjective; it is seen through the philosophical bias of the viewer, the historian and the influence of the ruling party. Thus, by using a tool such as Historical Materialism, we can attempt to look at the past without philosophical bias - using economics as a tool to root everything into the actual.

In this way, although much of the method and technology of shipping has altered, the nature of shipping huge cargos across the oceans keeps us rooted into something very physical, and, like it or not, slow!