Sing when your coding

My Spaceman was Pele and I liked the way in which he controlled the play of the Brazilian team. When we visted the Torpoint Ferry, I focused on the guy who directed the cars onto the ferry. Looking at both of them, it seemed to me that they followed conditional statements; “If first car then send it down the 2nd row”. Because of that, I looked into using code to control and map your actions. From there I started to look into code poems and in particular poems written in Perl. One that I especially liked was the conversion into Perl of the Jabberwocky. Not only does it stay pretty faithful to the original, but the code is also functional. When executing and it reaches one of the warnings, the script spawns a sub-process. It’s almost as if it’s saying “I did warn you about them”. Because of that poem I decided that whatever it was that I made, not only should it read well, but the visuals and its functionality should also be part of it. I also decided to use Processing instead of Perl. Although traditionally code poems seem to be written in Perl, it has been a long time since I last used it and I am VERY rusty.

I turned my attention back to football and decided to produce something using football chants. Although to the casual observer they’re nothing more than words yelled by grown men who probably should know better, they have as much structure as any software code or poem. A 2 line rhyming chant about the Plymouth Argyle left-back and a member of the opposing side set to “La donna mobile” from the Rigoletto must surely help to prove that. Because chants are as much about the opposite set of fans as it is the match, I decided to have 2 scripts “chanting” at each other as well as random elements such as fouls or goals being scored to help to mix it up.

A short video of the scripts in action is below along with a zip file containing the 2 scripts.

Watch video 16.1MB

Download code

Now there’s an idea

My Space project is pretty much done. I’ve got some research that I need to put into a coherent order for my presentation and film it running on 2 machines as part of the documentation but that’s it really. Or so I thought. I had this idea the other day which I think I’m gonna do and that’s to change the colours of the away chants to match the teams that sang them at us. It’ll make the “away end” more colourful plus I’d imagine the away fans would be mortified if they saw their chants in another team’s colours – I know I would.

Sing when your coding

Below is a screenshot of my away and home scripts hurling chants at each other. The home is chanting “who are ya” and the away is responding with “green army”. At the mo I’ve got each one printing the other’s chant just to make sure that the data transfer works but the plan is they’ll only print their own after responding to the incoming chant. Following on from my problems with getting the away to print the chant to the screen, I discovered that the font I used wouldn’t print at the point size that I was trying to use. Switching it to Tahoma seemed to do the trick. I also managed to export both of them as executables so that running them at the same time shouldn’t be an issue anymore.

The away and home scripts chanting at each other

It chants!!

You might just be able to read it but the image below is the “away” script with its chant and the response from the “home” code. In case your eye-sight can’t make it out, the away script chants “green army” and the home script responds with “who are ya”. So not to flood my network, I’ve got it running whenever I click the mouse. If only all crowds were like that :) I managed to get round my problem of yesterday by exporting the home script to run in a browser so that I could run the away script to allow me to print debug statements.

Screen dump of away code

Talking to each other some more

I’ve had some success getting the “away” script to talk to the “home” script. Home receives the message and prints it but I can’t get the away to do the same and I can’t see why. I’m getting a response back saying that the message has been delivered so it must be getting there. Unfortunately what isn’t helping is that I can’t run them both via the development environment to print debug statements as Processing will only let you open 1 at a time which is a bit of a pain to say the least.

Que sera sera…

…whatever will be will be
We’re going to Wem-ber-lee
Que sera sera

Flying high up in the sky…

…we’ll keep the green flag flying high
Set a course for Wem-ber-lee
We’ll keep the green flag flying high

Wem-ber-lee, Wem-ber-lee…

…we’re the famous Plymouth Argyle and we’re going to Wem-ber-lee

Talking to each other

I’ve started having a look at getting a Perl script to talk to another Perl script across the network. Although it doesn’t look the hardest thing in the world, there is a bit of a problem with the code it needs – in so much as it doesn’t sound very poetic!! I could try writing it using objects but as it’s been quite a while since I did any major Perl work, I’m a bit rusty. For the moment, I’m gonna give Processing a try although I’m not completely dumping Perl.

Crowd Control

I was reflecting on the stuff so far on my way in and I suddenly remembered something I noticed from the Coventry game last week. We sit 1 block away from the main “choir” and just before they start a chant, there’s a lone voice who starts it off and normally gets about half way thru the first line before everyone else joins in. I remembered at the time thinking how it was a bit like Pele and the ferryman controlling it all and still being part of it.