Categories
residencies sharing

Words as Texture

One of my favourite sets of Story Cubes is the Pharmaceutical Cubes created by Kenneth Goldsmith in 2008.

Inspired and intrigued by the extensive warnings and disclaimers that accompany advertisements of pharmaceutical drugs, he found that these documents sometimes covered 43 pages or almost 7000 words. Kenneth took six of these documents and re-formatted them for the Story Cubes. Fitting all of the text on one cube meant that the font had to be reduced to 1-point. When justified and coloured the result is a set of unreadable Story Cubes created entirely out of words.

Describing the ideas behind the cubes and their construction Kenneth writes:

“I have often talked about how today in writing, quantity has trumped quality; it is the writer’s job to manage the amount of available language. In sculpting these documents, I found my perfect material. Squeezed into 1-point type, then justified, I created columns of unreadable texts: words as texture. When folded into cubes, these warnings – secretly embedded into the pills we take – are reconstituted into three-dimensional forms, creating a new type of placebo.”

I love the idea of words as texture or words as material. It places writing firmly in the realm of craft and making, reminding us that through the length and flow of the text writers are shaping books as much as any designer. For example, these images by Dave McKean would probably look quite different with more or less text on the page. It’s also a reminder that when I’m thinking about the form of the eBook and Story Cubes with projects such as pop-up eBooks and cube cameras I shouldn’t forget about words entirely..

Read more by Kenneth Goldsmith about his inspiration and download the Story Cubes at diffusion.org.uk

And now I’m off on holiday for a few days and Hazem is going to be writing for the bookleteer blog while I’m gone. I think I’ll let him introduce himself.. Enjoy!

Categories
residencies sharing

Seven Days in Seven Dials – eBooks


From Seven Days in Seven Dials: A week in the life of London’s Cultural Quarters

About a month ago I mentioned that Alice was spending the week in Covent Garden as part of the Seven Days in Seven Dials project organised by Dan Thompson of the Empty Shops Network. For a week ten artists and thirty young people employed on placements in some of London’s leading cultural institutions used 18 Short’s Gardens as a studio. During the week the group explored the area gathering local stories, histories and connections and captured a snapshot of life in Seven Dials in film, sound, photography and writing.

Three books made by participants in the project are now available to download at diffusion.org.uk.

Seven Days in Seven Dials: A week in the life of London’s Cultural Quarters, documents the project and its workshops describing the partners, artists and participants. Snapshots of the area, photographs of the making of the Seven Streets in Seven Dials film, notes and sights from A Walk Round the Cultural Quarter and pictures of the recording of the audio tour come together to give a sense of a lively area and action-packed week.


Photographs by Amelia Martin, From Seven Days in Seven Dials: Photography

Seven Days in Seven Dials: Photography shows work from the photography workshop. Photographs of the area taken by 8 workshop participants show details of architecture, food, people and signs.


Map and sights from The Alternative, Whistle Stop Tour of the West End Cultural Quarter

The Alternative, Whistle Stop Tour of the West End Cultural Quarter acts as a guide book to the area and takes you on a tour of the Culture Quarter. Written by participants the eBook combines photographs, navigational directions and local trivia including financial scandals, martinis and phone boxes.

The Seven Streets in Seven Dials film and podcasts of the audiotour can be heard on www.emptyshopsradio.com

Categories
residencies

James Bridle : residency part 1

I used Bookleteer’s Storycube API to make physical souvenirs of ebooks, as described in my post on Bookcubes. In this post I’ll run through the code used to manipulate Bkkeepr data and send it to the API.

Bkkeepr pulls a bunch of data out, which includes your username, the book cover image, the book’s title and author, the dates you started and finished reading it, and the number of bookmarks you made in it.

The Storycube API only accepts images, not text, so if you want text you’re going to have to build it into images. Here’s a useful piece of code for creating images with text on the fly, using the GD Graphics library which is built into most versions of PHP. It’s not pretty, but it’s useful for quick prototyping of data into images:

$im = @imagecreatetruecolor(156, 156)
or die(‘Cannot Initialize new GD image stream’);
$grey = imagecolorallocate($im, 231, 231, 231);
imagefilledrectangle($im, 0, 0, 156, 156, $grey);
$text_color = imagecolorallocate($im, 0, 0, 0);
imagestring($im, 3, 10, 35, $title, $text_color);
imagestring($im, 3, 75, 50, ‘by’, $text_color);
imagestring($im, 3, 10, 65, $author, $text_color);
imagejpeg($im,’cubes/title-image.jpg’);
imagedestroy($im);

This code creates a new image of 156 x 156 pixels, colours it grey, then writes some text (“Title” by “Author”) in black across three lines, before saving the images to the ‘cubes’ directory, and wiping the temporary image. All these functions are well documented at http://php.net/manual/en/book.image.php – mostly, you just supply the text or colour for insertion, and a couple of reference points.

Exactly the same process is followed to write the start date, finish date (if applicable) and bookmarks panel:

$im = @imagecreatetruecolor(156, 156)
or die(‘Cannot Initialize new GD image stream’);
$grey = imagecolorallocate($im, 231, 231, 231);
imagefilledrectangle($im, 0, 0, 156, 156, $grey);
$text_color = imagecolorallocate($im, 0, 0, 0);
imagestring($im, 3, 10, 30, ‘Started:’, $text_color);
imagestring($im, 3, 10, 45, $started, $text_color);
if ($finished !== ‘0000-00-00 00:00:00’) {
imagestring($im, 3, 10, 70, ‘Finished:’, $text_color);
imagestring($im, 3, 10, 85, $finished, $text_color);
}
imagestring($im, 3, 10, 105, ‘Bookmarks: ‘.$bookmarks_num, $text_color);
$im = imagerotate($im, 180, 0);
imagejpeg($im,’cubes/time-image.jpg’);
imagedestroy($im);

Note that here we also use imagerotate() to spin this panel 180° so that it’s the same orientation as the book cover panel.

The next step is to send the completed panels to the Storycube API. First we need to get an authentication token:

$username = ‘USERNAME’;
$password = ‘PASSWORD’;
$token = file_get_contents(‘http://generator.bookleteer.com/authenticate.html?username=’.$username.’&password=’.$password);

Then complete a request array, including the authentication token, and send this via curl to Bookleteer:

$fields=array(
‘token’=>$token,
‘author’=>$user,
‘title’=>$title.’ by ‘.$author,
‘creation_date’=>”,
‘num_images’=>’6’,
‘image_1’=>’@cubes/cover-image.jpg’,
‘image_2’=>’@cubes/title-image.jpg’,
‘image_3’=>’@cubes/time-image.jpg’,
‘image_4’=>’@cubes/bkkeepr-image.jpg’,
‘image_5’=>’@cubes/blank-image.jpg’,
‘image_6’=>’@cubes/blank-image.jpg’,
‘paper_size’=>’A4’,
‘design’=>’Diffusion’);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,’http://generator.bookleteer.com/createStoryCube’);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS,$fields);
$result=curl_exec ($curl);
$content_type=curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
curl_close ($curl);

Note that the path to the images in the request array are prefaced by ‘@’ – this is because curl needs to upload the images to the remote server, and also means those need to be local paths: you can’t send a URL. All images to be sent need to be stored locally – which is done here by calling Amazon for the cover image and saving it locally (cubes/cover-image.jpg).

The Storycube API returns either a pdf, or an error code. So we check which it is via the content-type, and if all is well we save the file with a unique timestamp and offer it for download, or we print the error message:

if ($content_type == ‘application/pdf’) {
$filename = ‘bookcube-‘.time().’.pdf’;
$fp = fopen(‘cubes/’.$filename, ‘w’);
fwrite($fp, $result);
fclose($fp);
echo ‘Done: Download‘;
}
else {
echo $result;
}

And that’s it.
James Bridle, April 2010

Categories
residencies

Bookleteer Virtual Residencies

Since the alpha version of bookleteer went live last September we’ve been discussing with a number of friends and colleagues what we can do to demonstrate the API (Application Programming Interface) – which allows other applications, sites and systems to interface directly with the Generator, the engine behind bookleteer.com which generates the PDF files for eBooks & StoryCubes.

Following several years of successful residencies with writers and artists using the old Diffusion Generator to create and publish eBooks of their own, we decided to offer two ‘virtual residencies’ a year to creative individuals to play with the API and show what can be done with it – creating eBooks and StoryCubes from other data sets and web applications.

Our first two virtual residents are James Bridle and Simon Pope. James has already used the API to interface with his own project, bkkeepr to create ‘bookcubes’ (more details to follow in a separate post) and Simon is working on a project combining walking, cairns and StoryCubes.

Whilst bookleteer is in alpha, access to the API will be private – though we welcome people to get in touch who have a specific use in mind and would like to test it out. We’ll be commissioning two further virtual residencies later this year.