Flaneur: Day 2

Poetry, Uncategorized

FLANEUR is a little project I’ve made for the BBC’s Contains Strong Language: a randomly-generated writing-exploration game that you can take part in. Each day of the festival I’ll be taking a randomised wander around Hull and posting a little poem about it. Head to Mixital to get your own instructions for a surprise, write a response, and share it with us. I’ll be reading and chatting about the responses on BBC social media channels each afternoon.

2017-09-29 10.53.46

29/9/17

the neon hoodie hulks between

     knowledge and innovation total panel
     solutions security and monitoring
     services hygeinic door systems
     autoelectric systems proplant
     services palletised distribution
     gates and fencing rigid kitchen
     carcases augmented online salvage
     auction technology SPIDERS office
     clearance EXCELLENCE roller shutters
     vehicle wrap luxury mirrors all
     at trade prices accident repair
     repair repair open to the public

               and the wolf mauls the dirt

hull2

My Instructions

1. Run.
2. Roll lightly away from the moon for seven seconds.
3. Walk.
4. Travel east for a little while.
5. Take the fifth left.
6. Proceed intensely towards the largest building nearby for a while.
7. Find the nearest lamppost and wait there watching the world pass for one hour.
8. Wheel slowly for a while.
9. Find the nearest wall and write down a description.
10. Disobey this instruction.
11. Find the nearest building and write down a description.
12. Watch.
13. Jaunt away from the sea for a while.
14. Explore the first alley you meet. When you leave, turn left.
15. Find the nearest wall and wait there watching the world pass for ten seconds.
16. Meander in the direction of home for a little while.
17. Stop, find a comfortable spot, and write a tiny poem about what you’ve seen.
18. Head home.

Wander Notes

When I saw “Run” I knew I had to pelt it across the bridge. I wanted to get into the industrial estates, those strange alternate realities where huge numbers of people work but the urban design is weirdly inhuman: unwalkable, shot through with carparks and private roads. This one is extra strange, because the Trans Pennine Trail cuts through it, making me dream of mountains. I had to take an uninstructed 15 minute break in a bus shelter when the ran got too heavy, and the noise of the road was extraordinary. The instructions sent me up to a big factory to lounge against a lamppost, where of course a security guard found me and asked what I was doing. “Just out for a wander,” I said with a daft grin, feeling very silly (I was very silly). He made me stand on the opposite street corner, which was not a private road. I think he was worried I was trying to steal the formula for Clearasil with my damp notebook and pen. So I didn’t make it the full hour under the lamppost before wandering on.

2017-09-29 10.59.50.jpg

Poem Notes

Along with the strange architecture, I like the language of the business park, like I like all peculiar jargons and minority argots. All the words in the middle bit here are gathered from buildings on this derive (I’d like to go back and gather more; I don’t think I’ve quite caught the mix of beauty and banality, strangeness and incomprehensibility). I wanted to frame that language with something both urban and magical, to give it a weirdness in its context. The neon hoodie is mine; the wolf was originally a BMX bike, but “BMX bike” has terrible scansion and felt too on the nose, so I tried transforming it. I’m now worried the frame is too overstated, but set against the banal central section maybe I get away with it.

Flaneur: Day 1

Poetry, Uncategorized

FLANEUR is a little project I’ve made for the BBC’s Contains Strong Language: a randomly-generated writing-exploration game that you can take part in. Each day of the festival I’ll be taking a randomised wander around Hull and posting a little poem about it. Head to Mixital to get your own instructions for a surprise, write a response, and share it with us. I’ll be reading and chatting about the responses on BBC social media channels each afternoon.

2017-09-28 17.48.15-2

A big city street with two single-decker buses stopping to drop off and pick up. The sun’s setting. Half-timbered house in the rear, and a few big green trees to the right.

28/9/17

The growl and wheeze of city buses, tired
little dragons, settling to eat a bit
of flesh, dump a bit of flesh, grump their doors
and curse themselves on. Blinking at bikes,
scowling at silent black chelsea tractors — this city
was theirs once, giving its gold, and now a thousand
motors a minute bother their bones, slowed
to rumbling lurch…
___________________________but hey, here’s a straight
and a clear yellow lane: hear them fly.

2017-09-28 18.00.48.jpg

My feet up on the wall outside Hull’s Guildhall, where I finished the wander: green socks and purple trainers.

Wander Notes

My instructions:
1. Proceed gently for eighteen seconds.
2. Watch.
3. Meander gently for a while.
4. Roll away from the sea for a while.
5. Take the fourth right.
6. Find the nearest seat and take a rubbing of it.
7. Roll towards the moon for a while.
8. Wheel east for two miles.
9. Go sideways for three seconds.
10. Walk.
11. Take the fifth right.
12. Stop, find a comfortable spot, and write a poem about what you’ve heard.
13. Head back.

A little city centre walk, starting out at BBC Humberside, taking an eccentric loop through shopping and residential streets, before darting off to the river and finishing off with a dander through the old town. Not being a wheelchair user, I interpreted “roll” with a relaxed, dawdling gait; not being a river, I started out with a loopy wander round the fountain for “meander”. There was an awkward moment as I fumbled on my phone trying to figure out roughly what direction the moon was in, and I had my first cheat, being too hungry to walk for 2 miles and cutting it off early. Cheating is definitely encouragesd. A pleasant way to get familiar with the centre of Hull, its mix of big uncrossable roads, pedestrianised shopping, post-industrial and post-commercial spaces and grand old buildings. I’ll start nearer the edge tomorrow and see if I end up somewhere stranger.

hull1

A map of the walk, starting out in Queen’s Gardens, looping through the shopping centre, then up to the river and down though the old town. I wasn’t drunk, I just don’t have a good mouse for drawing smooth lines.

Poem Notes
It’s nerve-wracking, sharing quickly-written poems! I wonder if visual artists who share their sketches feel the same way. Anyway, I’m pleased here with capturing the sound of buses, which I love and have always noticed and couldn’t place until I thought of dragons. When writing quickly, you can generally only get to one or two good things: here, a central image to work through and a set of sounds to play with. I think I’ve overdone it on the sound effects, which need to be reigned in (or, more fun and silly, pushed further), and I don’t think I’ve quite caught the ending yet — too glib, too cheesy! But I’m glad to have met some dragons.

 

#NaBoMaMo: The First 15 Bots

Poetry, Rambles

I am, absurdly, trying to make 30 Twitterbots in 30 days, as part of the great collaborative endurance drafting celebration that is #NaXxXxMo. I’ll write at more length about it all, but here are some rough thoughts on the first 15 days, and details on the first 15 bots. These are all first or early drafts rather than complete works, but I’m happy.

Why I Love Twitterbots

1. Twitterbots are a wonderful form for sketching out artistic ideas. This is because procedural art makes sketching out a lot of results very quickly (this bot took under an hour to make), and also because Twitter is the sketchbook and commonplace book of the world. That is, it’s a social spae where everyone is sketching out very rough ideas, early thoughts, first drafts, messy poems, little doodles, and sharing them with each other. It allows process to exist in a casual social space. And it also allows that process to be infinite: you never stop sketching.

2. Twitterbots are the telos of a number of significant artistic movements’ ideas:
– Suprematism’s interest in objective relations between elements;
– Futurism’s obsession with technology, automation and obsolescence;
– The Oulipo’s keenness to write not poems but machines to generate poems and to implement processes to exhaust those machines;
– Modernism’s flirting with intertextuality, because a Twitterbot is incontrovertibly in a corrupt social space and defined by its relation to the elements around it;
– Flarf’s anti-poetry and internet fixation;
– Uncreative writing’s valorisation of process over product, because Twitterbots successfully remove the author from the individual product, remove any suggestion of authorial choice or agential production: you author the process only

3. That last point is the most essential. Because by automating and infininitising some artistic processes, you draw attentiomn to when human agency is actually important. Twitterbots are not the enemy of human poets, but a troublesome friend locked in dialectical relations. We show each other how we work. We see when automation matters and when agency matters. Massive exercises in uncreative writing or painting now take trivial or low effort, so when they are done by a human, the artistic value is found in the very pointlessness of the effort, how it expresses agency in a deterministic world. Individual insight can be simulated, but only badly and occasionally, so insight becomes both more clear and more suspect. We see the human in the robot and the robot in the human.

4. They are the best comedians: they repeat a joke until it isn’t funny, then until it is again, then until it isn’t again, then…

5. They are an awkward intervention into a hypercapitalist space. While they clearly contribute to the success of Twitter by making it more pleasurable to be there, they disrupt the smooth collection of data for the purpose of advertising sales. Their strange follower patterns and uninterpretable tweets gum up the algorithms which make lives valuable. Their wholly inappropriate affective stances are gentle disruptions of the emotional timeline. They do not destroy capital, but they do make awkward spaces of critique within it, sometimes complict, sometimes destructive.

6. I’ve now made around 20 bots, and I feel like a farmer, quietly tending to my herd, my crops, feeding them, giving them to feed you.

The First Fifteen

1. Bot Vaizey

Former UK Culture Secretary Ed Vaizey made a crashingly silly speech in which he demonstrated the same level of creative acumen that earned him the mockery of most artists in the UK. James Varney asked if I could respond with a bot. I hadn’t planned to start #NaBoMaMo with something fairly slight, but doing a snap response bot (see also: @HardBiscuitsUK) by request felt very much in the spirit of the month.

This was knocked together very quickly, and then later given an update to give it more variety and depth. I find that the easiest and most fun bit of making a CBDQ bot is coming up with pleasing syntax varieties: the hard long busywork is synonyms. The two things that quickly give a new bot depth are *long* wordlists for every variable term, and nested syntaxes generating tweet variety. Once my bot is sketched, the big job is going through it word by word and asking “Can this be randomised? Or expanded to a new syntax?”

Platform: Cheap Bots Done Quick (source)
Dev time:  1 hour to get a passable version, 45 more minutes to current completion level
To do: Rake a thesaurus to expand basic elements, add some more syntaxes

2. Orkney Bot o Wirds

This is an extremely simple bot programming-wise: it has a long list of words to pick from, and a 1/7 chance of tweeting a random book, resource or encouraging creative message instead. It involved a lot more actual writing than most of my bots, though, because I wanted to make an interesting usage example for each word. Usually the writing of a bot is a trial-and-error process of combining and recombining elements until you get the right feel (more like cookery than writing), but this involved switching back to a different type of thinking.

I think this bot has broad appeal: it picked up the most followes the most quickly. It’s interesting how little that’s related to programming depth! Often the bots that take me the most time to code have the least broad interest, though they’re often the more appealing ones to boteurs. It’s that difference between being interested in the process and being interested in the result.

Platform: Cheap Bots Done Quick (source)
Dev time:  30 minutes to release, 3-4 hours since getting the word list up to the end of F.
To do: Keep going to the end of the dictionary, tend indefinitely as more books and resources become available.

3. Jamie Jones, Urban Explorer

Inspired by @str_voyage and @spacetravelbot, I wanted to make a horror version of the infinite journey bot, so I came up with the scenario of an urban explorer trapped in an endless series of tunnels. Aesthetically, I decided to go for panicked and impressionistic rather than straightforwardly narrative. This led to a problem that the results seemed quite vague and uninterpretable, and then I realised it would work better with a clearer cultural context, so I set Jamie’s journey in tunnels beneath Detroit and packed the bot with relevant references. This got it to a decent level of consistency. There’s also a cast of four characters in there, but they’re not currently functioning well narratively. The source includes some good techniques for randomising number of lines and line length, as well as a nifty text-glitch-generator.

Platform: Cheap Bots Done Quick (source)
Dev time:  1.5 hours
To do: Introduce more running plot, so it’s more satisfying to read a sequence; make the characters work better by giving them more specifics; intelligent replies if you try to speak to JJ; more variety in possible speech; ev̵e͝n m̷͘͝o̷̸͢r̴̵͞e͘ ẗ́͟͠҉̯͉̱̟̲e̢͍͙͖͚̞̘̲̰̖̔̌̚͘͘xͩ͜҉̨͕̤̥̹̦t͚̟̽ ǧ͐̈͆ͭͤͨ͗ͬ̋͑͏̧̹͎̬̕l̤̜̫̼̫̫̯̫̥͓̦̰̠͖͇̬͎ͯ̓ͨ̒̋̓͛̊̑̑̃̇̔ͮ̅͆̀̀͘͝i̡͇̺͖͙̘̼̜̪͛́͑̊̑͐̃̿̽̏ͤt̶ͪͥ͗͂͆ͩ̒͒̍̑̅͋̾͠͏͖̜̜̝͍̬̹͙̦͇̲̹̬̙̦̱̤c̾̌̊ͪ̎̿ͥ̊̔ͨ̂̇̄̐̽͊̊͏̡̺͉̼̘̤͇̥͙̘̳̞̖̦̦̮̮̯͜͠͡h͊ͦ̈́͗̎͗͛ͫͧ̽̔ͬ͒̕͏̢͍̯̘̬̥̰͖̼̀͝ ́ͣ͏̶͈͇͞

4. Awful Emoji

This was my first SVG bot. I used w3schools to teach myself svg, and cribbed from @someboxes and @hashfacade to figure out how to use it in CBDQ. The concept is simple and self-explanatory! I wanted to generate emoji to express every possible emotion. I tried to tweak the results so that they ranged from obvious feelings to just-over-the-edge-of-ridiculousness, and also to use some positional randomness to ensure that every face was a little bit askew, just like every human.

Platform: Cheap Bots Done Quick (source)
Dev time:  3.5 hours
To do: I could add more different types of eyes and mouth, and introduce elements for hair, blushing, &c, but I might be totally happy with the conceptual clarity of the current result! Scrolling down the feed, it’s interesting how much variety there is in emotion there from so few elements, and I may want to preserve that variety-through-simplicity.

5. Be the Bot You Want to See in the World

A straightforward joke bot, using the classic bot form of “Taking a sentence and having a couple of elements be randomly selected [verbs] or [adjective] [nouns].” In this case having a dig at the inspiring quote industry. The source has a couple of useful lists of nouns, adjectives and present tense verbs I culled from various internet sources by googling “massive list of nouns” and similar (you can just cull them from me). Text Mechanic and Delim.Co were vital for parsing these lists into a format CBDQ could read; I used those tools for almost every other bot this month.

Platform: Cheap Bots Done Quick (source)
Dev time:  30 minutes
To do: Add more quotes to substitute; find more good word lists to add.

6. Plural Fan

The bot version of a running joke I once shared, appending blatantly incorrect latinate plural endings to ordinary words, to make fun of people who like to say “octopodes” and “rhinocerotes” (I am one of these people). I had a really bad and funny version of this bot running in 15 minutes, which just took a list of singular nouns and whacked a plural ending on. Then I realised that it was even funnier if you trimmed one, two or three characters off the end of the word first, and spend 2 more hours figuring out how to do that. This would, I know, be trivial in a bot written in javascript, which could do the processing one each word automatically, but CBDQ has no such functionality. So I had to work out how to use a spreadsheet to do the processing on the 4000+ nouns, and learning that CBDQ’s parent project Tracery could create persistent variables (so that calling one noun would call one of its abbreviations). This was a ridiculous thing to do for this joke bot, and a lot of laborious busywork that could have been done better in another programme, but it was useful to learn how to do these things for future projects where it might be more necessary. And doing it was the last straw for me deciding that I really, really needed to learn how to code a bot in javascript and host it myself.

Platform: Cheap Bots Done Quick (source)
Dev time:  2.5 hours
To do: She is perfect. She is written in the wrong programme but the results can’t be improved.

7. Quittr

Inspired by carebots like @hydratebot and @check_o_tron, I decided to make a more aggressive version that would put regular reminders in my timeline to quit twitter when I didn’t really want to be on it and was only being kept there by the addiction mechanics created by its designers. I also wanted to make a bot quickly because I was feeling the #NaXxXxMo burn. While the bot is simple, there’s some neat work in the code, with different syntaxes reusing different variables lists in subtly different ways, and employing Tracery’s .modifier system to do so. I learned making this bot that all strings in CBDQ are best off being written in lowercase, using #variable.capitalize# when you need it, for maximum flexibility.

Platform: Cheap Bots Done Quick (source)
Dev time:  30 mins
To do: Bot complete. He doesn’t need anything else.

8. failurebot

I was in the middle of touring and performing and too tired to make a good bot. So I made myself a bot in 15 minutes to remind me that failure is OK. Very appropriately, it got banned by Twitter because the code was so basic (just a single list of options to tweet) that it looked like spam to the algorithms. So I had to spend another 15 minutes adding a tin bit of variety to the code to prevent this from happening. There are now 144 possible tweets. I hope this is enough for Twitter to be kind.

Platform: Cheap Bots Done Quick (source)
Dev time:  30 mins
To do: I could add a lot more syntactical and word-choice variety and this would improve the bot, but wouldn’t that miss the point?

9. Daily Antifascism

This was my immediate creative response to My Arse’s election. I was also hosting a performance installation that night where people built buildings and then destroyed them, which felt appropriate. I ripped the idea direct from Henry Bell’s @Radical_Glasgow and then put a call out to my social media followers for good content. I think that, due to the current lack of diverse content, this is my worst bot of the month so far, but that it has the potential to be one of the best when I put the time in.

Platform: Cheap Bots Done Quick (source)
Dev time:  30 mins
To do: Much longer content lists; find a way to schedule historical tweets for their on-this-day day and repeat annually.

10. hg_ebooks

I needed to teach myself how to code bots in javascript and host my own bots, so I decided to make the most common sort of bot: an _ebooks warped mirror which generates markov chains based on your own Twitterfeed. Nothing original about this, but a very useful exercise for learning the necessary for future bots. I followed this tutorial because it was the most step-by-step, even though it uses python rather than js. By doing that, I started to learn how to use the command line, began to gain a vague and uncertain understanding of what words like “repo” and “stack” mean, and how to host a bot on Heroku. Alongside that tutorial, I had to google a lot more tutorials and questions like “How do I use GitHub?” and “What is a dyno?”, and regularly copy-pasted an error message into google and fished until I found a result I understood enough to copy-paste the right bit of the answer. I still don’t really understand any of it, but I can do it. Mostly.

Platform: Ruby and Python, Heroku (I’m not sharing the source (a) because it’s less useful to you than any of the tutorials online (b) because everything that’s my bit is bad code (c) I actually don’t know how to do this properly because I don’t understand GitHub yet). The same goes for Heroku-hosted bots below. But if you’re desparate to know how I did a thing, message me and I’ll try and share the relevant bit.)
Dev time:  1 hour (plus 4 hours preparatory time relearning js for free at CodeCademy)
To do: I might redo this using Mispy’s version, partly because it produces slightly more satisfying results by building a bigger corpus, and partly because doing so would teach me more useful things for future bots.

11. Bot Save the Queen

Inspired by the beautiful @f__lb_tt_r, I decided to push it a bit further and have fun with the Sex Pistols, based on a suggestion from @inky. The implementation is straightforward in CBDQ, with most of the time spent compiling good rhyming word lists from RhymeBrain. As with @PluralFan, this would be much quicker to programme in JS using an API from RhymeBrain to automatically select a rhyme, but on the other hand the bot is already so chaotic that I like the creative control of handpicking the wordlists. The creative work of this bot is in getting the balance right and the probabilities of each option right, so that the bot as a whole has the right amount of entropy, and distance from and connection to the original. This is harder than it sounds! Which rhyme is too far away to still be funny? How many syllables can I break a word down into before it becomes too much like nonsense? How frequently should Johnny sing a line from the original? This kind of tweaking is at the heart of satisfying procedural generation.

Platform: CBDQ (source)
Dev time:  1 hour to get the first two verses working, another 30 mins later to add a third
To do: Add the remaining 9 verses at my leisure, tweak to perfection.

12. Anarcoo

This was a pre-existing account I’d let lapse, so I decided to resurrect it as an automated propaganimal. I used this tutorial to learn how to make a picbot, mashing it up with the previous tutorial to host on Heroku. I also had to use more of the JS skills I’d picked up to write some of my own code. A lot went wrong. I didn’t know what a Procfile or a package.json were (I think I do now?) and apparently I needed both of those, and I have a vague sense of what git init and npm install do when I put them in the command line. It took three hours to hash through it all, but it was worth it. And the results make me very happy.

Platform: JS, Heroku
Dev time: 3 hours
To do: Reduce posting schedule through some math randomisation, vary the moos more.

13. 500 Dollar Words

Going back to making more original bots, this one is an automated tribute to Aram Saroyan’s beautiful poem “lighght“. It takes a random word and repeats two characters near the middle of it. I wrote the javascript to do that to a random word in 10 minutes. Then I spent four learning how to use the Wordnik API and wordnik-bb so that I could use much longer corpora for my bots, which involved a very lengthy detour learning that node-gyp and contextify were a thing that I didn’t understand but were not working properly, and trying out various things google told me to do to fix them, which I didn’t know what they were doing to my computer but I think it’s OK. I was originally going to try and have each word appear in colour on a pleasant cvg background, but (a) I was exhausted by the end of it, and (b) it turns out this is really hard for anyone to do in node.js on Windows and has made adults weep. So partly because of that, and partly because I aesthetically like the accessible directness of tweeting a single word, I think I’ll leave this bot as it is.

The good thing about spending 4 hours banging my head against what should be a simple thing is, next time I want to interact with the Wordnik API, I’ll be able to do it in around 15 minutes, and next time I want to interact with any API, I’ll have a much better sense of how to go about it. I love learning new skills.

14. 5×5

After an exhausting weekend of heavy coding, I wanted to do something light and easy. I didn’t need to learn anything new for this, but I did get to reprise what I’d learned about SVG and element randomisation. The bot has no deep meaning or artistic purpose: it’s a sketch, an experiment in seeing what happens when you define a set of parameters for randomising elements and put them in objective relation to each other. It will roll on experimenting forever. Instead of making a complicated bot, I wrote the thoughts I opened with in this post.

Platform: CBDQ (source)
Dev time: 30 minutes
To do: Nothing.

15. ÜBERURSONATE

From an idea suggested by @ammonite, this is an automated tribute to Kurt Schwitters’ classic Ursonate. It was a total joy to make, with quite a fancy but neat source code. There’s a nice use of nested saved variables here, I think. And the whole thing is built out of elements of no more than two characters. As a method, I went through the whole of the Ursonate, and parsed the semantic structure of all of the stanzas and a good chunk of the words.

It did make me realise that the power of the Ursonate isn’t just in the playfulness of individual verses, but in the impressive intertwining of elements and patterns across the whole of the piece. This is worrying, because now I’ve got the method down, I may have to do a 50,000 word procedural version for #NaNoGenMo

Platform: CBDQ (source)
Dev time: 2 hours.
To do: Nothing.

Brief Feelings on the Halfway Mark

I am quite tired and I don’t know if I’m going to make it. This feels good. I like the obsessiveness of this project, the self-destructiveness of it. I am willing to fail, but I also like pushing myself past all sense. I also like giving myself permissionm to just make, regardless of quality, and I’m quite surprised by the quality of some of what’s come 0ut. I do need to pace myself a bit better, but I’m also happy.

I’ve learned a huge amount. Technically, obviously: I have way more skills and understanding than I started the month with, which was part of my reasoning for doing the month. I think it’s important to learn some of the languages and rituals our world is now built on. But I’m also learning a great deal about the aesthetics and mechanics of procedural generation: of what is satisfying and what is beautiful, of how to balance simplicty and complexity, of how generated texts can function as standalone objects or social interventions or both.  And this, in turn, is learning for poetry in general. What is the sonnet form if not a machine for producing poems? What is concrete poetry if not an exercise in manipulating elements? What is an artist if not a supremely complicated bot?

Thanks

to my backers on Patreon, who give me the freedom to do very strange and free projects like this.