Redistribution and use, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions must retain the copyright notices that reference this license (the "Copyright Notice"), this list of conditions and the following disclaimer (either in the documentation and/or other materials provided with the distribution).

2. The end-user documentation included with the redistribution, if any, must include the following acknowledgment: "This product includes software from" followed by the Copyright Notice. This acknowledgment may also be included in the software itself, if and wherever such third-party acknowledgments normally appear.

3. The name of this project must not be used to endorse or promote products derived from this software without prior written permission. For written permission, contact the project by sending email to the email address provided in the Copyright Notice (the "Contact Email Address").

4. Products derived from this software may not use the name of this project in their name or URL, without prior written permission, which you may obtain by contacting the Contact Email Address.

5. Reasonable efforts to support this project must be made by contributing any modifications and extensions to the main code trunk maintained by the original contributor. Your contributions must be made under a BSD-style license and sent to the Contact Email Address.

6. Alternative licensing solutions may be negotiated with the original contributor by contacting the Contact Email Address.

THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANY CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"I have a funny feeling that
MARID
will eventually engender a
fusion of the proposals that are now on the table. And when
I say "fusion", I mean the same kind of "fusion" that puts
on a single plate spicy spring rolls with creme fraiche and
smoked salmon drizzled with a curry Bearnaise sauce.

"The differences between BSD and Linux
aren't just surface things that happened accidentally; they're the
result of different philosophical and developmental processes. This is
an attempt to explain why and how BSD works"...

"BSD
is what you get when a bunch of Unix hackers sit down to try to port a
Unix system to the PC. Linux is what you get when a bunch of PC hackers
sit down and try to write a Unix system for the PC."

"...Linux
methodology is the living incarnation of chaos, whereas the BSD
methodology is far more about control." ... "Linux grew out of a
spare-time hacking background, while BSD grew out of a controlled
engineering background." ... "Naturally, the BSD method is far more
amenable to keeping things ordered, while the Linux method practically
necessitates utter chaos."

"Linux (and its various
distributions) are moving in all sorts of different directions, with
very little real coordination. That means they're going to end up in a
lot of places the BSDs, with their more careful and orderly
progression, will only get to more slowly (if at all). A lot of those
places are going to be icky and horrible, and places you don't want to
be. But some of them are going to be absolute jewels, that you could
never reach any other way." ... "Linux may hit lower lows, and they may
even be more numerous. But the sheer number of people and projects
pushing in so many different directions practically assures you of
striking gold."

"Is BSD better than Linux? Well, I think so. But that doesn't mean much. It is, however, different."

My Mocha stuff consists of an
"abstraction layer" and an "object engine" that currently run on top of
Web Crossing which is a proprietary product. What I'm trying to do with
Mocha would be what I consider "commodity software" - software that
should be free and therefore it needs something to run on that is free.

Both the Mocha Object Engine and the Mochascript Library are
written in Javascript and "feel good" together with Helma. Generally, I
feel that Helma fits the way I'm thinking. Having said that, I'm not a
fan (yet) of the skin/macro concept and I'm still digesting Hannes'
relative willingness to accept relational databases as "not from hell"
- but I'm starting to get the picture (ie. pBeans + Groovy Beans).

Here's
why I think the skin/macro stuff doesn't fit right with the Mocha
concept: I believe it draws the line between application logic and
layout to early. I think you Helmaists have started to discover this
yourselves: When you start generating HTML dynamically (a similarity
between the Mochascript lib and the AntvilleLib) and when you start to
add some kind of GUI-translation lookups then you remove both HTML
markup and GUI-Text from the skins - and you're left with gibberish of
mixed layout, string and content lookups. I claim that kind of
gibberish is more difficult for a non-programmer to disekt than a
Javascript syntax with a very high level of abstraction.

Mocha
adds an additional level of abstraction where all of these lookups are
expressed in Javascript. I call these elements "Mocha Objects" and they
might look for example like this:

Translations and string customizations are handled by a lookup
string method that checks for available string replacements based on a
hash lookup. If I wouldn't be against software patents, I would patent
this.

When
running Mocha on top of Helma, a .hac file would basically call the
Mocha Object Engine that determines which Mocha Objects need to be
evaluated in order to respond to the current request. That collection
of Mocha Objects is then evaluated and the result returned to the
client. Skins wouldn't really be needed in this picture. However, the
skins in Helma provide a security and access control layer that allows
a user to make edits that are jailed from the applications Javascript
environment. Adding a separate second tier Javascript environment in
which Mocha Objects are evaluated would be the trick.

But I
might be changing my mind about that skin/macro criticism: In earlier
days, I once implemented a Mochascript library that ran on the
client-side (with Broadvision on the server-side). I never
intentionally abandoned that concept - I just didn't have the time to
maintain/update it. Think of skins as an additional layer of Javascript
code that will dynamically generate the HTML markup on the client-side.
Client's have plenty of CPU power available to first evaluate
Javascript before rendering the resulting markup. The Mochascript
library on the server side would then generate/output client-side
Javascript code instead of HTML, like both my Mochascript lib and for
example the AntvilleLib do now. Helma's skins are the intersection
between HTML and server-side macro calls. Mocha's "skins" would be the
intersection between server-side and client-side Javascript - on the
server-side, we would basically never see an HTML tag.

Some
might argue that Javascript is not as easy to learn for a
non-programmer as for example python. I believe while that might be
true, the reality sports a bigger picture: Sooner or later "everybody"
has to learn that kind of syntax anyway. The advantage of a
"mono-syntax" environment from the client-side to the server-side and
beyond (Java, C, etc.) by far outweighs the learning curve. Speed can
be gained by abstraction instead of syntax.

So, Mocha is
mainly about abstraction and how different levels of abstraction are
layered. Helma might be the ideal underpinnings for Mocha.

The Bush administration might be heading
for turmoil (read that both ways, if you can) leading up to the
elections, facing a power struggle against the Pentagon, CIA and Senat.
Richard
is taking his analysis of past, present and future world order to
new heights
.
At least we won't be surprised in case we'll soon be BBC World watching
a military coup in the USA, possibly following a major disruptive
Terror attack, the declaration of martial law and the cancellation of
the elections - and followed by the "Cheney Circle" facing a military
tribunal for bringing terror to the world. Now, that's what I call a
"Schattenwahrheit"!

Your email address:
The "Decentralize" Newsletter
Exchanging ideas for building a
decentralized fabric of society.
Making true democracy work on a larger
scale while decentralizing "everything",
benefiting from local diversity and
global synergies at the same time.
http://tinyletter.com/zumbrunn