Making and Thinking


I always attributed this piece to sol lewitt. Imagine my surprise when this morning, after googling for an image I discovered this was by Lamont Young! C’est la vie.

This morning I finished reading Making by Tim Ingold.  I’m not sure if this is the best book to read by him, but I found it thought provoking as an exploration into anthropology and tool-thought (this is my neologism).  A lot has been made of the idea of embodied thought.  I ‘see’ that, or even embodied knowledge – like I cannot type my password unless I am at my keyboard. The locus of knowledge is in the movement of my fingers not in my mind.

How are tools created? How are objects created? How is art created?

Ingold is interested about the locus of knowledge in craft objects as they are used.  We cannot divide this into a hylomorphic discussion of form and matter.  Like a brick is clay plus a mould.  With Ingold it is a dialetic (he says dance) between the user, the tool, time, and decay.

He talks about the four A’s. Archaeology, which exists as the time dimension of a tool/artifact, as a tool changes over time in its ability to produce, with the user, some sort of understanding (knowledge).  Architecture, which is the physical location of tool, is anchored in tethered to the dimension of space. Anthropology is the ontological world view that the tool is embedded with in and which the tool expresses. Art is the on going unfolding or changing of the tool. The tool gives us one pieces of information today and another piece in the future that we cannot predict.

The most ephemeral, or rather, immaterial, of all tools, is software. It is also the tool that, perhaps unexpectedly, is most art like. We only understand or glean information from software when it is executed. And it often runs in ways we cannot predict.   Similar to the creation of a piece of pottery or a painting.

So why begin with the idea of drawing a line and following it – a piece of conceptual art similar in form to a computer algorithm? Ingold is obsessed with the hand, the physical creation of things. And for him everything goes back to drawing and the line. This is the basis for all creations, artifacts, objects, tools, buildings, etc.

He says “I am interested in drawing as a way of telling”  (p.125).   And then goes on to discuss all the drawings that do not tell but explain – like technical drawings or data visualizations (not drawings but you get the idea).  There is the drawing that is the expression of the line, of the idiosyncracy of the line, and the drawing where the line is commodified in order to communicate something else. The line is communication or the line services communication.

How does this fit with a computer, even with this wordpress text editor that I am using? There is no further way to commodify writing or gesture than to structure it as a series of binary digit.  Even Ingold wants his students to write by hand instead of with the computer. But is there a remnant of gesture in writing a computer program. Is there a statement that is pure communication instead of a conduit for communicating something else?

Software is gestural. It obliquely attempts to communicate its purpose and must be translated at least once if not more (in the case of virtual machines and bytecode) into machine language.  What would a physical relationship to writing software look like? A somatic programming language. Would this communicate something differently, more meaningful, more original about the universal experience?

Ingold’s idea about the co-creation of objects in time and space through the disciplines of archaeology, anthropology, art, and architecture are computational processes. Our gestures allow us only one slice in this computational process but in writing a program we can control the entire process.  What would this look like as an embodied practice and decommodified.


Terraform pt1 (really pt2): ipv4 to ipv6


I have been obsessed with terraform ever since I used ILP’s terraforms to create ilp connectors. I have mentioned this before.  Here is another book where terraform features prominently. This time it is Venus not Mars! I actually have a copy of this book, it was hard to find – ping me if you want to borrow it.

Why and what is Terraform…

There are a ton of options to automate, and ‘code-ify’ dev ops (get it code-codeify  hahaha). But most of the tools are about installing software on a server. I think docker sort of owns this. What terraform does is control the deployment of the servers or the platforms. Like you can use terraform to deploy k8 & docker.   Terraform is modular and declarative.   You could do server deployment using a shell script (I have done this a lot because I dont have to share my code).  However, this is harder to read, share, and maintain.

How to do things with Terraform

  1. Install terraform
  2. Create a directory where you want to create your terraform project. Git init it!
  3. Now – run terraform init
    1. if you do not do this then terraform will not be able to find a “provider”
  4. Create a file. This is your terraform file. You can put all kinds of stuff in here and get fancy. But you need to specify a provider. In this case I am using aws:
provider "aws" {

region = "us-east-1"


5. Next run terraform plan. This shows you what you are going to deploy.   If you want to save the plan so many people can deploy the same plan then just use the –out command.

6. Finally run terraform apply  – (or terraform apply “planyoumade”)

7.  You will see a terraform.tfstate file

8.  fin!

What did I do in my terraform code?

  1. I have  two files:.variable and main. I could also put this in other files to make it more modular, but KISS (keep it simple stupid).
  2.  I try and offload as many variables to environment variables as possible (see the your.env)
  3. I created  a free ec2 machine using the ubuntu 14.04 ami – and then a vpc, routing tables, security settings and I think that is it
  4. terraform apply

This was fun, I never thought I would be like one of those dev ops guys with a beeper – but maybe I am one of those guys. Maybe I should get a beeper on ebay and wear it as an anachronistic accessory.

I had a lot of issues around creating route tables (route tables vs default route tables.  Basically when you create a route table you have to recreate all the routes and this causes terraform to freak out.  There is a scary warning on the hashicorp site about this.  I spent a fair amount of time googling to figure out what the heck was going on.  At one point it seemed that I would have to use the aws cli instead of terraform and sank into the trough of dispair.

Then I realized I did not git ignore my .terraform file. So I just blew away the whole repo, recreated it ran terraform apply and it worked!  Magic

The other magic was reverse tunneling over two machines so that we can use jupyter notebook. I accomplished this though a somewhat hacky local-exec resource. The better solution would be to create a script – or maybe dockerify nginx.

Be careful! You can quickly use up your internet gateways – I dont think my delete works properly.

One thing I would like to leave you with is the notion of Egress only gateways – which is a internet gateway optimized for ipv6 from the VPC to the internet.  To quote Amazon:

An egress-only Internet gateway is a horizontally scaled, redundant, and highly available VPC component that allows outbound communication over IPv6 from instances in your VPC to the Internet, and prevents the Internet from initiating an IPv6 connection with your instances.

I am not sure how this would work with my tunneling though so I would have to do more debugging.  Which I am not going to do right now. So this is perhaps an open issue that someone can use to contribute to this repo 😉

The readme is a marginally better than this blog post.  So if you actually want to use this to create a ipv4 to ipv6 gateway and reverse tunnel so you can run jupyter notebooks take a look.