Nicola Greco

I am working to re-decentralize the webRead more about my work here. PhD student at MIT advised by Tim Berners-Lee and friend at Berkman Center. Once an entrepreneur, a UCL student, a Mozillian.

Introducing Versioning Poems

September 7, 2015

In London we have a fantasic group of people that discusses cutting edge ideas, the group is called the Palo Alto Supermarket test11 It abbreviates as PST, maybe it is worth looking for an interesting acronym, e.g. Policy, Society and Technology. Please ping me on twitter if you want to join in.. A recurrent topic has been Post-Internet art which we think it can be the next artistic expression trend.

In this post, I would like to introduce one way of writing Post-Internet poetry that mixes traditional poetry and coding poetry: Versioning Poems - I hope to inspire a new generation of poets, please update me @nicolagreco if you write some.

Versioning Poems

A versioning poem has two characteristics:

  1. Versioning tool: The poem written in commit messages using a versioning tool
  2. Commit diff: Each line has a commit diff that has code related to the message

In this way, one could clone a repository and just list the commit messages. The following is a poem of mine 9*19 Flowers poem.

Understanding requirement 1

As you can see each line shows up as a poem

$ git clone
$ git fetch origin poem
$ git checkout poem
$ git log --format="%C(yellow)%h%Creset %Cgreen%s%Creset%n%b"

ea814f4 POEM: 9*19 flowers
02d0dc0 Handcraft flowers from maths and lines,
aa14064 Choose the colors to make them shine,
ad4e12c Till the soil to plant the seeds.
700b967 .
7cea9e1 See me to make me glow
93c57f8 Touch me to give you more
e023bd0 Touch me you'll never stop
e146d2c Please touch me again.

Understanding requirement 2

The difference added by 93c57f8 Touch me to give you more relates to a piece of code that adds the function start_touching

93c57f8 Touch me to give you more
+  function start_touching(d, i) {
+    var flower =;
+    flower
+     .transition()
+     .delay(10)
+     .duration(1000)
+     .attr("d", handcraft_flower)
+     .style("stroke", "#ccc");
+  }


Figure 1: Detail of 9*19 Flowers poemYou can get very bizarre, the code does not need to work necessarely. In the case of my flowers, the final commit brings up a final working version of a visualization of the poem (See Figure 1).

I challenge your engineering skills and creativity to surprise me with a poem of yours.

- Nicola Greco,
Keep on rocking the decentralized web

Thanks for reading

  • Before Tokens Jul 24, 2017
  • Verifiable Markets on the blockchain Jun 21, 2017
  • Idea: Research Coin, second attempt Jun 10, 2017
  • Introducing Versioning Poems - September 7, 2015 - Nicola Greco