SpeculativeProgramming

From UoWiki

Jump to: navigation, search

Contents

[edit] SpeculativeProgramming.

"Speculative Programming" was the title of a workshop given by Florian Cramer & Barnaby Snap during Transmediale04. Even though we didn't really prepare anything, it was an exiting afternoon. This wiki is meant to develop the subject & explore its implications. please edit this page when you have some ideas that you think are important to share.

[edit] what could speculative programming be?

[edit] * speculative programming is one possible arena for pataphysics.

pataphysics is defined by Alfred Jarry as the science of finding solutions to imaginary problems. speculative programmers dig a canal to be able to design bridges that can cross it. programming does have little & perhaps nothing to do with actual computers. Alan Turing for instance designed the first ever chess program, but by lack of a computer he executed the program himself. He lost btw.

[edit] * speculative programming looks at software in geological time: what does software look like 10.000 years from now?

we wouldn't have a clue, but can we formulate a solution to a problem in code that for logical reasons (and not practical reasons) can't be understood by current computers.

[edit] * speculative programming is casting spells on the OS

Spells are sacred unalterable combinations of words, The Necronomicon, Enochian, Our father, various Book of the Deaths, Harry Potter, they all rely on precise execution of their formula's to work properly. Spells are celestial programming, but the universe doesn't offer a debugger. The wizard & the witch are in the dark, the computer programmer has an easy job: even when s/he is programming in binary.

Somewhat relevant: from the sun-dial to computers and architecture http://socialfiction.org/sun.html

[edit] * speculative programming is social engineering

Chatterbots (from Eliza, to Alice) are interesting for their sillyness. They don't have a clue what they are responding too, but they manage to trick people in believing that they can, by providing social or narrative context. Chatterbots haven't got much smarter since Eliza which was a first conceived in the sixties, all progress in fooling poeple had not so much to do with smart programming skills, as with new ways to hide its stupidity by contructing for it a social position (doctor, shizophrenic, etc) that persuades the human to read what s/he wants to read in the software's behaviour.

Software making errors on purpose is a classic example of dumbing down the computer the the level of the human. Bots have used this tactic to appear human. HAL too made a mistake playing chessm it only adds to the feeling of the software being sentient.

"If Poole had been a little more attentive, he might have realized sooner rather than later that the HAL 9000 was indeed capable of error. But, like most chess players, he was focusing on the actual moves; he was not looking for errors because he had never even considered the possibility that HAL was capable of making one. "

http://mitpress.mit.edu/e-books/Hal/chap5/five1.html

[edit] * speculative programming wants to liberate software from the traditional computer.

Gordon Pask devised in the fifties an alternative approach to computers: not as an engineered digital & electric device, but as an emergent, self learning electro-chemical device. He built a few, but his his research seems to have born little fruit. They are however mighty interesting. this paper http://homepage.mac.com/cariani/CarianiWebsite/PaskPaper.html discusses some aspects of Pask's devices: the most important part being that its sensors are produced in response to environmental input. This would mean that such a computer that grows in outer space would look different from one constructed on earth.

Also membrane computing or P-Systems have to be taken in account here: http://psystems.disco.unimib.it/

[edit] * speculative programming at the same times questions the nature of hardware

we think of computers as digital boxes on our desk or as dark boxes stowed way in the basement of the sys. admin. But computers can be analog, computers can be invisible, computing power can be achieved by walking & writing ones & zeros on a tickertape. It enables the question what is a computer without hardware. A simple assumption is that it wouldn't exist. However society's requirement for coded and programmed function predates the actual realisation of devices and computer langauges that we are now familair with.

[edit] * speculative programming is interested in programming methaphors

Programming without computers & without proper software: this leaves us pseudo-code, methaphors & programming paradigms translated to other fields. This is nothing new: Spinoza & Descartes already wrote books composed according to the latest insights in mathematics. ObjectOrientedPsychogeography is an example of speculative programming in this sense. Looking at architecture in terms of Operating Systems, of software embedded in other software, might be another. Critics like Habraken talk about the built environment as a layered structure of control. In the 70s Habraken was involved in building without fixed interior walls: he design a minimal OS: the casco, the walls inside were programmable by the user. During the Transmediale Workshop one particpant said that a Labyrinth should be looked at as software. This is a wonderful idea.

[edit] * speculative programming studies the actions of pseudo AI programs like Deep Blue as equivalent to creatures from the deepsea

Humans automatically try to find patterns: Kasparov thought Deep Blue had a strategy while the only thing it did was calculate the best move very time it had to make a move.

[edit] *Speculative programming also reflects some of the most basic early computer programs

It has obvious comparisons with the most basic computer program: 'game of Life' by Conway, both in the structure of the actual code, and in the nature of sometimes wonderfully synchronized patterns that are created. Conway recommends the following procedure for making the moves: 1. Start with a pattern consisting of black counters. 2. Locate all counters that will die. Identify them by putting a black counter on top of each. 3. Locate all vacant cells where births will occur. Put a white counter on each birth cell. 4. After the pattern has been checked and double-checked to make sure no mistakes have been made, remove all the dead counters (piles of two) and replace all newborn white organisms with black counters.

That the Game Of Life can be turned into a Turing Machine has been understood for a long time, now somebody has actually showed how: http://rendell.server.org.uk/gol/tm.htm

What was once speculative programming is now yesterdays news. In the fifties J. McCarthy, M. L. Minsky, N. Rochester and C.E. Shannon were young and unknown. Now they are recognised for shaping the field. http://www-formal.stanford.edu/jmc/history/dartmouth/dartmouth.html

[edit] * speculative programming is speculating about speculative ways to generate, process & analyse (data about) speculations

information management is what we use computers for. Computers anable us to control vast amaounts of data with a few clicks of teh mouse, but it might also help us produce new information. The semantic web is one example of this. Another one would be the Borges-model, let's quote a bit from a post in the a-life google.group to clarify: "My project I hope would enable me to create a machine which could answer the question, 'What would Jesus do?' based upon his conversations and preaching in the Gospels. I would hope that the chat-bot's responses to questions posed would generate new "Words from Jesus" which a reasonable person could infer from the Gospels."


[edit] *speculative programming looks at the basic function of programming as problem solving

a programming language is a language to formulate algorithms in, if a computer can understand it that is fine. speculative programming as such is a study into the finer delicacies of artificial languages.

it gives a departure point for human communication to augment computer based language

[edit] *speculative programming is programming invisible mistakes

Bugs are what programmers keep up at night. Most don't bring it far, but sometimes they are deeply buried inside the logic of the program, only showing its head in certain particular and rare occasions. This site archives some of the more dramatic bugs: http://www5.in.tum.de/~huckle/bugse.html

Speculative programming, programms/studies these bugs.


[edit] case studies

[edit] * code-works aka code-poetry

code as literature, algorithms behind poetry, scrambled texts, like the Gysin/Burroughs cut-up but without the paranoia. Codewords is being produced by lonely scripkiddies & by university professors.

http://socialfiction.org/als_daneng.html

[edit] * Laws of Form

Spencer-Brown's calculus without numbers: computation in severing space

link: http://www.lawsofform.org/

[edit] * analog computers

from Stonehenge to Leibniz

link: http://socialfiction.org/ancient.htm

[edit] *game of Life

http://ddi.cs.uni-potsdam.de/HyFISCH/Produzieren/lisprojekt/projgamelife/ConwayScientificAmerican.htm

[edit] *"The Origin of Objects"

critical review of the book "The Origin of Objects", by B C Smith, a philosophy of computation, that deals extensively with the search of AI for ways of represenation http://www.cs.wustl.edu/~~loui/bcs

[edit] *dorkbot

"people doing strange things with electricity": worldwide network of groups & events: programming as a way to make friends http://dorkbot.org http://newyorker.com/talk/content/?040607tatalkwilkinson

[edit] *toplap

"Code should be seen as well as heard, underlying algorithms viewed as well as their visual outcome. Live coding is not about tools. Algorithms are thoughts. Chainsaws are tools. That's why algorithms are sometimes harder to notice than chainsaws. "

http://www.toplap.org/


[edit] *Ted Nelson

Nelson should be included here somewhere. Best known for his proto-WWW hypertext systems, he is still working in tradition started with his Computer Lib manifesto, first published in 1974. http://www.digibarn.com/collections/books/computer-lib/ As this article (a triade against XML) shows, Nelson still has interesting things to say. http://www.xml.com/pub/a/w3j/s3.nelson.html

[edit] * I/O/D

Once upon a time I/O/D were the zenith of speculative programming.

http://www.backspace.org/iod/

[edit] * on means and metaphors

http://grandtextauto.gatech.edu/2004/10/04/katherine-hayles-computational-spaces/#more-519

[edit] * The Humble Programmer

Dijkstra has some intersting things to say too

http://www.cs.utexas.edu/users/EWD/transcriptions/EWD03xx/EWD340.html

"I have the feeling that one of the most important aspects of any computing tool is its influence on the thinking habits of those that try to use it"


[edit] * DNA programming

code is eveywhere:

http://www.jyi.org/volumes/volume8/issue2/features/srivastava.html

[edit] * Non Standard Computation overview

Our appreciation of the physical embodiment of computation, our development of biologically-inspired computational models, and our understanding of emergent systems has reached exciting heights. Breakthroughs in all these areas are occurring, or are on the horizon.

DerekLewis: "I would be interested in sources of information about neuromorphic technology. As far as I can tell they seem to be some sort of Hybrid Computer, an approach I heared about a while back but nothing much seemed to come of it. So far my favourite links include a terse wikipedia entry (http://en.wikipedia.org/wiki/Neuromorphic) and a paper about a Neuromorphic General Problem Solver, which is what attracted my attention in the first place."

http://www-users.cs.york.ac.uk/~~susan/complex/nstdcomp.htm


[edit] * biomorpic software:

http://www.worldchanging.com/archives/000950.html


[edit] * perspex: geometrical programming

http://www.physorg.com/news2933.html

[edit] * bacteria as computers

http://www.livescience.com/technology/050428bacteriacomputer.html

[edit] * SPIN

http://msnbc.msn.com/id/3077472/



[edit] links

Personal tools