Building software for farmers

During the summer I’ve been working with the Swarm Knowledge Hub at Cornwall’s Duchy College. We’ve been building an android application that forms part of a scheme to highlight the value of organic fertilisers compared to costly and unsustainable synthetic fertilisers.

The core of the software is a calculator based on tables provided by DEFRA (the UK government’s Department for Environment Food & Rural Affairs) which provides the quantities of nitrogen, phosphorus and potassium nutrients provided by different types of manure spread on different types of soils.

1 2 3

Farmers are required to supply records of the fertiliser they use to DEFRA, so the program also allows you to input your fields and record the levels of nutrients spread on each one separately. You can then export the data as a csv file over email.

We are planning a workshop with local farmers in the coming weeks, which I’m really interested to be part of. To me this is an extension of the groworld project providing a connection to an additional, important group – the people who actually grow the food we eat.

The majority of the code was written in Scheme which meant a lot of it could be rapidly prototyped (I’ll be blogging more about this soon) and the source can be found on github here.

Dagstuhl – Collaboration and learning through live coding

Dagstuhl seminars are week long free form meetings between different disciplines centred around computer science. The location is a specially designed complex in the German countryside, and activities include long walks in the surrounding hills, a well equipped and beautiful music room and a well stocked wine cellar.

Our seminar was called ‘Collaboration and learning through live coding’, organised by Alan Blackwell, Alex McLean, James Noble and Julian Rohrhuber and included people from the fields of Software Engineering, Computer Science Education as well as plenty of practising livecoders and multidisciplinary researchers.


Discussion was wide ranging and intense at times, and the first job was to sufficiently explain what livecoding actually was – which turned out to require performances in different settings:

1. Explanatory demo style livecoding: talking through it as you do it.
2. Meeting room coffee break gigs: with a closely attentive audience.
3. The music room: relaxed evening events with beer and wine.

So Dagstuhl’s music room was immediately useful in providing a more ‘normal’ livecoding situation. It was of course more stressful than usual, knowing that you were being critically appraised in this way by world experts in related fields! However it paid off hugely as we had some wonderful interpretations from these different viewpoints.

One of the most important for me was the framing of livecoding in terms of the roots of software engineering. Robert Biddle, Professor of Human-Computer Interaction at Carleton University put it into context for us. In 1968 NATO held a ‘Software Components Conference’ in order to tackle a perceived gap in programming expertise with the Soviet Union.


This conference (attended my many of the ‘big names’ of programming in later years) led to many patterns of thought that pervade the design of computers and software – a tendency for deeply hierarchical command structures in order to keep control of the arising complexity, and a distrust of more adhoc solutions or any hint of making things up as we go along. In more recent times we can see a fight against this in the rise of Agile programming methodologies, and it was interesting to look at livecoding as a part of this story too. For example it provides a way to accept and demonstrate the ‘power to think and feel’ that programming give us as humans. The big question is accessibility, in a ubiquitously computational world – how can this reach wider groups of people?


Ellen Harlizius-Klück works with three different domains simultaneously – investigating the history of mathematics via weaving in ancient Greece. Her work includes livecoding, using weaving as a performance tool – demonstrating the algorithmic potential of looms and combinations of patterns. Her work exposes the hidden shared history of textiles and computation, and this made a lot of sense to me as at the lowest level the operations of computers are not singular 0’s and 1’s as is often talked about, but actually in terms of transformations of whole patterns of bits.

Mark Guzdial was examining livecoding through the lens of education, specifically teaching computer science. The fact that so many of us involved in the field are also teaching in schools – and already looking at ways of bringing livecoding into this area, is noteworthy, as is the educational potential of doing livecoding in nightclub type environments. Although here it works more on the level of showing people that humans make code, it’s not a matter of pure mathematical black boxes – that can be the ground breaking realisation for a lot of people.


Something that was interesting to me was to concentrate on livecoding as a specifically musical practice (rather than also a visual one) as there are many things about perceiving the process with a different sense from your description of it that are important. Julian Rohrhuber pointed out that “you can use sound in order to hear what you are doing” – the sound is the temporal execution of the code – and can be a close representation of what the computer is actually doing. This time based approach is also part of livecoding working against the notion that producing an ‘end result’ is important, Juan A. Romero said that “if you’re livecoding, you’re not just coding the final note” – i.e. the process of coding is the artform.


In terms of a school teaching situation sound is also powerful, as described by Sam Aaron, livecoder and creator of Sonic Pi. A child getting a music program to work for the first time in a classroom is immediately obvious to everyone else – as it is broadcast as sound, inspiring a bit of competition and ending up with a naturally collaborative learning experience.

It’s impossible to cover all the discussions that we had, these are just the ones I happened to get down in my notebook, but it was a great opportunity to examine what livecoding is about now in relation to other practices, where it came from and where it might go in the future.


London Algorave at nnnnn

In order to get ourselves prepared for the Dagstuhl livecoding seminar (more on that later), we kicked off with a London Algorave at nnnnn, Ryan Jordan’s noise research laboratory in deepest Hackney. Slub had one of our better performances, which was recorded – watch this space.



Larger components make larger sounds.


Massive synth washes and brutal beats from the rock star livecoders Meta-Ex.


Meta-Ex close up.


Yee-King’s brand new visual acid generating machine reconfigured our minds.

More procedurally rendered eggs in HTML5 canvas

The first Project Nightjar game was a big success, with 6 thousand players in the first few days – so we’ll have lots of visual perception data to get through! Today I’ve been doing a bit more work on the egg generator for the next citizen science camouflage game:


I’ve made 24 new, more naturalistic base images than the abstract ones I was testing with before, and implemented the start of the genetic programming system – each block of 4×4 eggs here are children of a single randomly created parent, each child is created with a 1% mutation rate. The programs trees themselves are 6 levels deep, so a maximum of 64 binary composite operations.

All the genetic programming effort will happen in HTML5, thus neatly scaling the processing with the number of players, which is going to be important if this game proves as popular as the last – all the server has to do then is keep a record of the genotypes (the program trees) and their corresponding fitness.

One catch with this approach is the implementation of globalCompositeOperation in HTML5, the core of the image synthesis technique I’m using, is far from perfect across all browsers. Having the same genotype look different to different people would be a disaster, so I’m having to restrict the operations to the ones consistently supported – “source-over”,”source-atop”,”destination-over”,”destination-out”,”lighter” and “xor”.

Fascinate Falmouth

It’s not often that you get to go to the first edition of a festival or conference, but last week was the first ever Fascinate Conference, in Falmouth – a varied collection of artists, performers, musicians and experimenters with technology, some from far away on their first visit to Cornwall, others were local – both researchers from Falmouth University, as well as artists picking up inspiration.

For me the keynote presentations provided some powerful concepts, Atau Tanaka, opening the event presented an thought provoking timeline in terms of his extensive performance experience. Moving from laptop computers, to mobile computing, and onwards to “post-computers”, including Beagle Boards and Raspberry Pi – as more hackable, extendible and open than more restricted mobile platforms but providing largely the same needs.

Another idea running through a moving presentation from Seth Honnor regarded the 4 degree climate change ‘elephant in the room’. While it represents such a huge un-graspable problem, he points out that everything we do needs to take it into account. It doesn’t necessarily need to be centre stage, but it has to be there – as a background future reality. If we do this we can start to build up the necessary imagination that’s going to be needed in the future.


My presence at the conference was somewhat fragmentary (I had other duties to attend to) sadly missing many of the workshops, presentations and performances – it was however a chance for me to perform for the first time in Cornwall, as well as get to see first hand some of the research that’s happening in Falmouth. The event itself was just the right size, and while at times slightly chaotic and problematic in terms of gender representation – they are things that take time to get right, and it’s freshness and interdisciplinary nature was very welcome indeed. Looking forward to next year’s event!

Update: Since writing this post, the organisers have contacted me to clarify that considerable effort was put into gender representation for the conference, there was a good balance on other presentation tracks and in terms of the keynotes it was more a case of unfortunate last minute changes and other unavoidable factors.