Friday, August 24, 2012

Autopoietic Code

Autopoietic means, roughly, self-creating. So a system that exhibits autopoiesis is, at least in part, self-maintaining.  Such a system feeds-back its own patterns to determine its future expressiveness.

I'm thinking now of things that many people own and maintain over long periods of time. A common view is that intentional human involvement somehow makes such situations non-autonomous and therefore less legitimate examples of self-ordering principles. But that is a rather anthropometric viewpoint; if it were ants pushing around piles of dirt no one would be questioning whether the bugs and soil together form mutually interdependent parts of the same system.

Seeing the pattern is really a matter of scale. If you look too closely and ignore the environment around the artifacts, you'll probably miss the connections, and miss-attribute the emergent side-effects of feedback loops. Old houses can start to look like Frankenstein monsters from years of small alterations; the feedback happens between the house and successions of owners. Software is like that too, except perhaps in an accelerated timeframe - where it may take decades for the architecture of a house to lose focus, a software project touched my multiple hands quickly turns into a Big ball of mud unless steps are taken to introduce positive feedback.

Sunday, August 19, 2012

The Purpose of Life

Evolutionary biology is often posed anthropomorphically in the popular media, as if every form and function had purpose, a result predicated upon an intent, an intent being a rationally contrived solution put together in a process that involves reflection. Given that a lot of evolutionary biologists would reject the notion of a God, it is hard to see this as anything but a kind of intellectual skeuomorph, meant to ease a bitter pill.

But what about the other way of thinking about the purpose of life, as in, what natural laws or universal properties are satisfied by the presence of life? Assuming that life need not exist is easy: we have not seen it anywhere other than here on Earth, and even here we know that extremes of temperature, pressure, and acidity are incompatible with life.  But life does exist here, so it is very safe to conclude that in some sense natural laws dictate that life must exist given the conditions reflected in the history of our environment.

People studying complex systems talk about phase transitions at the edge of chaotic regions. Somewhere along the way in this regime we call Earth, conditions went through a phase transition and life took shape as a result.

At that moment, the state of the system was at a fork in the road. One way led to life, and satisfied more laws with less energy or more entropy than the alternative.  But which laws?

And life will stop whenever some laws are no longer satisfied, for instance if there is too much energy, or too little. The threshold for continued life is probably different from the original formation, based on environmental changes introduced by the byproducts of living systems, but it is a similar question: what laws are being satisfied by the fact that a living system populates a medium, instead of it remaining sterile?

Edit: in case anyone is so befuddled as to wonder why anyone would ask such a question, the subjects involve autocatalytic chemical reactions, autopoietic structure, and the emergence of order among oscillating parts, among other very fundamental processes.

Friday, August 3, 2012

Storing Passwords in GIT

Eeek... made that mistake again: edited a test script config file that contained a username and password, and somehow got it committed and pushed up to a public repo. My Bad. 

What to do... well, first thing is: change the password and if I can, the username. Immediately. Done. 

Second thing: purge the repo of the offending file. 
git filter-branch --index-filter 'git rm --cached --ignore-unmatch MyBadPasswordFile.cfg'   --prune-empty --tag-name-filter cat -- --all

That will rewrite all my commits, but at this point I just don't care. If I did I might leave the file up, since the login information is no longer valid anyway. 

Typically I'd also throw in a line in .gitignore, to prevent the file from being seen again.