Archives for category: tech

Regarding the “datagram” essence of Prose Objects, I’ve just now have achieved better clarity on the model. I’ve long wondered whether a Value should be viewed as the fundamental element, or the Map is the fundamental element. It now seems clear that in a sense we need to think both ways. It is very important to maintain a notion of “file with key=values” as the unit of conversation because this is how so much of conventional computing is organized. From config files to credit card receipts, address card and email datagrams, a file as map of k/vs is a very useful format.

But in understanding the paradigm and in building high-performance systems, it is helpful to focus on the key=values. This is my attempt.

The entire system can be viewed as Values – strings of text whose “keys” are names under which they are stored. For instance, in a file system, a Value is a string stored in a file, and the key is the file name. In a database, the key would be the ID of the database record.

The basic mechanism of Prose Objects is to assign _additional_ names to the Values, to give them additional keys used in the recursive expansion and inheritance.

Let’s express this in git-ish terms (with a nod to Ludovic Dubost, who may have anticipated this mapping).

The Value is a file whose name is the hash of the string. This is how git stores files. A Map is a tree (directory/folder) that references those files using meaningful names (the kind of names we now use for keys). These trees are organized into other trees (directories). These higher level (2nd-Nth level) trees correspond to both: 1) the current system of organization of files into folders [G/Z/ol/*] and 2) the links among Prose Objects. The trees can be traversed in two ways: 1) to add a collection of Values to a namespace of a tree (as is done currently by a link to another file) and 2) to obtain a Value’s string ({G/Z/ol/z6#sec}?). This unifies two concepts that seemed to want unification – the folder hierarchy and the system of links.

Note that this somewhat complicates the notion of a file in the current implementation – each k/v becomes a separate file (or is treated as such). This translation can be handled in interface – each line of a file can be saved as a new file and the “file” can be a folder. But there is a problem or needed refinement because while order does not matter for normal k/vs, it does matter for links (“=[] \n =[]” is not the same thing as “=[] \n =[]”). This needs further thought.

This Value orientation simplifies and adds power.  For instance, you can traverse the file-folder tree for a Value or Map in a way that seems natural but wasn’t possible.  The Values also automatically de-duplicate and connect.

For Prose Objects generally –


Personal computing is currently riding the wave of possibilities opened up by 3D printing — the ability to turn a design into an artifact.  No need for a machinist and machine shop, just a tricked-out printer and stack of glue sticks.

It is possible to make the legal system a resource for the programmer.  If you generate the form that would have a particular legal effect if approved, signed, sealed, delivered, filed or otherwise acted on by someone or some succession of someones, and those persons do click, stamp or file … then you have inflected legal reality.  You can do this in the system.  Or you can chain printing systems, using 2D printing to enable the stamp or file and await a click confirmation that it has occurred.  If keep track of results, the system will be come to be able to predict which print runs will be successful and which ones tend to jam.

When I was a teen, during our war in Viet Nam, there was a lot of talk, in America, about how Americans “are.”  There is inherently a lot of compaction and conflation in any such discussion, but a part that bewildered me was the failure to try to prize out what parts were statements about humans, humans in groups, humans in nations, nations of more or less strangers, English speakers, Americans.  What part was “American” about Americans.  That itch was part of what made me try living in other places.

Back to the subject:

A/B testing in running software or a business that depends on software is the process of randomly dishing out a slightly different page to two (or maybe /C three) groups, to see if A works better than B (for the site).  If you have high volumes, you can suss out rather fine issues of usability, value proposition, and the like.

In discussions of law, we have a major A/B problem.  In America, other places are far, physically and mentally.  This is strikingly so in law.  Though we trace our law back to England, we are unique.  Our federal structure, scope of jury, scope of discovery, political appointment of judges, and other features make our generis very sui.  Our politics make us reluctant to make some comparisons.

A/B can be done on some issues as among states or as before and after certain changes.  But the relatively narrow range of most changes means that faint signal is buried in big noise of place, time, and other circumstances.

By living (and therefore at least partly learning) other legal systems, we can jack up the signal.  So even if the noise is higher and more varied, you can begin to piece out what might be American about America’s legal system.  For the signal to point towards possible improvements, it is helpful to compare high-functioning systems.

Terrific conversation last night with Greg Behan reminds me that some people don’t need a B to figure out what A ought to be, their B is internal.

This is not strictly about CommonAccord, but not far off either.  Dan Allen of RedHat @mojavelinux, has released a new version of #AsciiDoctor.  Of what?  It’s an implementation of a format for book manuscripts.  Books need to look pretty.  Authors need to focus on text.  Asciidoc is used by @oreillymedia and others as the medium.  Like word processing, pdf, Wikipedia markup, etc.  But more structured.

It is now a plug in for Firefox.

Dan is a fan of CommonAccord.   And the “attributes” notion in Asciidocs is a hook for a Cmacc-enabling data model.