Bento is reaching the
critical Dog Food stage. I have started converting the
entire bentodev.org site from plain HTML to Bento, with
great
satisfaction. Also great number of bugs... the Dog Food
exercise is indeed an extremely effective way to uncover
problems and thereby achieve usability, even if it was
invented by Microsoft (was it?)

The main bug I uncovered has to do with what is turning out
to be perhaps the trickiest part of the Bento
implementation: name resolution. Bento has a very versatile
and powerful name space model, designed to support numerous
patterns and techniques (delegation, overriding,
hierarchies, abstract definitions, etc.). The way a name is
resolved is intimately connected to the context: what object
is being instantiated at that moment. What makes it
complicated is that objects are subclassable and composable,
so any number of objects might be being instantiated at one
time. I've been trying to minimize the amount of contextual
information I have to pass around, but as I define
increasingly complex objects I keep running into cases which
require more information.

The best treatment I've seen of the relationship of DNA and
code
is Darwin's Dangerous Idea by Daniel Dennett.

One particularly interesting observation is that the popular
conception of DNA as a kind of blueprint is completely
wrong.
It's machine code. Like all machine code, it only makes
sense
in the context of the processor it was created for. In the
case
of living things, the processor consists of some very
complicated
biochemical machinery. If somewanted to write a
disassembler
for human DNA, they'd have to have knowledge of the genetic
processor's system architecture and instruction set far
beyond
what science knows today.

There's a lot more Dennett has to say on the subject. A
very
good read.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser
code is live. It needs further work but already handles most
markup better than the original parser.