Archive for May, 2006

Spotting the Outside Set

Well the 6891 problem set due date has come and I have yet to finish. The constraint propagation is hard to write and very hard to debug. I had some helpful advice about the coincidence handler from Ben, my project partner, that pushed me through what I hope was the hard part.

This is the part of the term where the challenge shifts from mental to physical. Less and less am I actively sifting through and grokking the material; it is now about maintaining, not getting in my own way, following the trajectory I created over the course of the term.

With slow computing I have started myself down a path towards what I hope is an overarching poetic framework, an approach to research that fits almost suspiciously well with the ways I try to model my life. And with the social contract I seem to have found something equally precious: a topic that excites me, that has potential for greater good, that’s fun to talk about and that is immediately relevant. I still have to instantiate these ideas into something both general and reusable. The summer will be key.

Slow Computing is the Abstraction of Duration

Programming methodology typically focuses on abstraction of complexity. A decent programmer attempts to reuse code and standards and protocols that already exist, and writes code that is well documented and easily reused by others for purposes not necessarily originally intended.

This trend towards abstraction affects the sorts of programming languages that we use. Originally people wrote their code in binary, then assembly, then later something like FORTRAN or C (or alternatively Lisp), then C++, Java, and now Ruby or Python (and many others). Each language offers greater abstraction over the previous generation, hiding some of the underlying complexity and offering more builtin capabilities and greater extensibility.

With web and net oriented programming we are beginning to see the abstraction of the complexity over human distance. Similar to how I can check my gmail from anywhere in the world, I can also write a program that uses a web service protocol like XML-RPC or SOAP to use code and processing resources made available by other providers. Web services are one of the primary technologies in OPENSTUDIO, and are one of the key building blocks of this latest Web 2.0 boom.

I believe the next step, the Web 3.0 step, is abstraction of duration. In a previous post I referred to this approach as Slow Computing. Obviously being slow means that it has something to do with time. Originally I was going to title this post Slow Computing is the Abstraction of Time, but Burak convinced me that what I really intend here is duration: the time between two events. Programming for Slow Computing will involve making use of libraries and objects and methodologies that abstract duration, allowing programs to run over days and years, waiting for and responding to events that unfold at a human pace.

Relevant links pointed out to my today by visiting friend Ty: