Author: hhubner Date: 2006-01-24 05:04:26 -0600 (Tue, 24 Jan 2006) New Revision: 1801
Added: trunk/projects/bknr-website/website/templates/applications.xml trunk/projects/bknr-website/website/templates/bknr.xsl trunk/projects/bknr-website/website/templates/contact.xml trunk/projects/bknr-website/website/templates/development-style.xml trunk/projects/bknr-website/website/templates/documentation.xml trunk/projects/bknr-website/website/templates/getting.xml trunk/projects/bknr-website/website/templates/home.xml trunk/projects/bknr-website/website/templates/license.xml trunk/projects/bknr-website/website/templates/platforms.xml trunk/projects/bknr-website/website/templates/user-error.xml trunk/projects/bknr-website/website/templates/why-no-db.xml Removed: trunk/projects/bknr-website/website/templates/applications.bknr trunk/projects/bknr-website/website/templates/contact.bknr trunk/projects/bknr-website/website/templates/development-style.bknr trunk/projects/bknr-website/website/templates/documentation.bknr trunk/projects/bknr-website/website/templates/getting.bknr trunk/projects/bknr-website/website/templates/home.bknr trunk/projects/bknr-website/website/templates/license.bknr trunk/projects/bknr-website/website/templates/platforms.bknr trunk/projects/bknr-website/website/templates/technology.bknr trunk/projects/bknr-website/website/templates/toplevel.bknr trunk/projects/bknr-website/website/templates/user-error.bknr trunk/projects/bknr-website/website/templates/why-no-db.bknr Modified: trunk/projects/bknr-website/website/templates/menu.xml Log: Switch to XSLT based documentation.
Deleted: trunk/projects/bknr-website/website/templates/applications.bknr =================================================================== --- trunk/projects/bknr-website/website/templates/applications.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/applications.bknr 2006-01-24 11:04:26 UTC (rev 1801) @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<bknr:toplevel - template="toplevel" - title="Applications" - xmlns="http://www.w3.org/1999/xhtml" - xmlns:bknr="http://bknr.net" - xmlns:bknr-website="http://bknr.net" - > - -<h1>Applications</h1> -<p>The following public web sites are based on BKNR (in order of going on-line): -<ul> - <li><a target="_new" href="http://eboy.com/">eboy</a></li> - <li><a target="_new" href="http://createrainforest.org/">Create Rainforest</a></li> - <li><a target="_new" href="http://quickhoney.com">Quickhoney</a></li> - <li><a target="_new" href="http://lisp-ecoop05.bknr.net">LISP ECOOP05 Workshop</a></li> -</ul> -<p>Of course, this web site uses BKNR, too!</p> -</p> -</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/applications.xml (from rev 1800, trunk/projects/bknr-website/website/templates/applications.bknr) =================================================================== --- trunk/projects/bknr-website/website/templates/applications.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/applications.xml 2006-01-24 11:04:26 UTC (rev 1801) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?> +<page name="applications"> + <h1>Applications</h1> + <p>The following public web sites are based on BKNR (in order of going on-line): + <ul> + <li><a target="_new" href="http://eboy.com/">eboy</a></li> + <li><a target="_new" href="http://createrainforest.org/">Create Rainforest</a></li> + <li><a target="_new" href="http://quickhoney.com">Quickhoney</a></li> + <li><a target="_new" href="http://lisp-ecoop05.bknr.net">LISP ECOOP05 Workshop (now in archive mode)</a></li> + </ul> + </p> +</page> \ No newline at end of file
Added: trunk/projects/bknr-website/website/templates/bknr.xsl =================================================================== --- trunk/projects/bknr-website/website/templates/bknr.xsl 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/bknr.xsl 2006-01-24 11:04:26 UTC (rev 1801) @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + + <xsl:param name="mode">xml</xsl:param> + + <xsl:output method="html" + indent="yes" + omit-xml-declaration="yes" + doctype-public="-//W3C//DTD HTML 4.0 Strict//EN" /> + + <xsl:template match="/page"> + + <html + xmlns="http://www.w3.org/1999/xhtml%22%3E + <head> + <title>BKNR - <xsl:value-of select="@name"/></title> + <link rel="stylesheet" type="text/css" href="../static/styles.css" /> + <script src="../static/javascript.js" language="javascript" type="text/javascript"> </script> + </head> + + <body> + <div id="banner"> + <div id="title">BKNR Lisp Application Environment</div> + <div id="logo"> + <a href="http://bknr.net/" target="_new"> + <img width="88" height="31" alt="BKNR Logo" src="/image/bknr-logo.png" border="0" /> + </a> + </div> + </div> + <div id="body"> + <div id="system-column"> + <xsl:call-template name="menu"> + <xsl:with-param name="current" select="@name"/> + </xsl:call-template> + </div> + <div id="content"> + <xsl:copy-of select="." /> + </div> + </div> + </body> + </html> + </xsl:template> + + <xsl:template name="menu"> + <xsl:param name="current"/> + <div class="site-menu"> + <xsl:for-each select="document('menu.xml')/menu/item"> + xsl:choose + <xsl:when test="@url = $current"> + <div class="site-menu-active"> + <xsl:value-of select="@title"/> + </div> + </xsl:when> + xsl:otherwise + <div class="site-menu-inactive"> + <a href="{@url}.{$mode}"><xsl:value-of select="@title"/></a> + </div> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + </div> + </xsl:template> + +</xsl:stylesheet> \ No newline at end of file
Deleted: trunk/projects/bknr-website/website/templates/contact.bknr =================================================================== --- trunk/projects/bknr-website/website/templates/contact.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/contact.bknr 2006-01-24 11:04:26 UTC (rev 1801) @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<bknr:toplevel - template="toplevel" - title="Contact" - xmlns="http://www.w3.org/1999/xhtml" - xmlns:bknr="http://bknr.net" - xmlns:bknr-website="http://bknr.net" - > - -<h1>Contact</h1> - -<p>If you intend to use BKNR or parts of it, we'd love to hear from -you!</p> - -<p>To get in touch, please send mail to the developer's mailing list -at bknr-devel at common-lisp dot net. You may also <a -href="http://common-lisp.net/cgi-bin/mailman/listinfo/bknr-devel%22%3Esubscribe</a> -to the mailing list if you are interested in participating.</p> - -</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/contact.xml (from rev 1800, trunk/projects/bknr-website/website/templates/contact.bknr) =================================================================== --- trunk/projects/bknr-website/website/templates/contact.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/contact.xml 2006-01-24 11:04:26 UTC (rev 1801) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?> +<page name="contact"> + <h1>Contact</h1> + + <p>If you intend to use BKNR or parts of it, we'd love to hear from + you!</p> + + <p>To get in touch, please send mail to the developer's mailing list + at bknr-devel at common-lisp dot net. You may also <a + href="http://common-lisp.net/cgi-bin/mailman/listinfo/bknr-devel%22%3Esubscribe</a> + to the mailing list if you are interested in participating.</p> +</page> \ No newline at end of file
Deleted: trunk/projects/bknr-website/website/templates/development-style.bknr =================================================================== --- trunk/projects/bknr-website/website/templates/development-style.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/development-style.bknr 2006-01-24 11:04:26 UTC (rev 1801) @@ -1,90 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<bknr:toplevel - template="toplevel" - title="BKNR technology" - xmlns="http://www.w3.org/1999/xhtml" - xmlns:bknr="http://bknr.net" - xmlns:bknr-website="http://bknr.net" - > - -<h2>BKNR programming style</h2> -<p> -All BKNR application data is handled in main memory. Internally, -applications do not use secondary store like data bases or files. Are -application data structures are kept in the data structures provided -by Common Lisp. -</p> -<p> -All destructive operation on the persistent heap need to be explicit -and are synchronized. A transaction is never aborted nor may it fail. -Thus, it is vital to check preconditions before starting a destructive -operation. Within a transaction, application code must properly -handle all possible errors and gracefully return. Errors unhandled in -transaction code are considered fatal and cause the persistence system -to stop. -</p> -<p> -Applications may either define their own, named transactions or they -may use the provided CLOS layer which groups accesses to slots of -persistent objects to atomic transactions. -</p> -<p> -BKNR persistence sequentializes all destructive operations on the -persistent heap. As all data is in RAM when a transaction starts -executing, it is never stalled by having to wait for necessary data to -arrive. Thus, the need for preempting transaction code arises much -less frequently than in traditional systems in which transactions had -to access slow disks in order to collect the data to be processed. -</p> -<p> -Some applications require precondition checks which must be processed -atomically together with the associated transaction code. -Applications must guard such precondition checks with a store lock in -order to block other transaction code from executing. -</p> -<p> -Transaction code must be used only to change the persistent state of a -system. No I/O operations must be performed within transaction code. -Transactions may produce log output, but it they may not use (possibly -blocking) communications mechanisms to other processes. -</p> -<h2>Areas of research</h2> -<h3>Performance</h3> -<p> -For high-performance stores, some optimizations will be worthwile. -The single most time consuming operation while executing transactions -is the appending to the transaction log file. At the moment, this is -done using a synchronous write to the opened Unix file, which takes -significant time. -</p> -<p> -Not all operations need to be absolutely safe, and it might be -worthwile to change the default execution mode of the store to be as -follows: Processing other transactions or non-transaction code may -continue as soon as the transaction log entry of the current operation -has been constructed in RAM and the transaction application code has -been executed. The transaction system will then asynchronously write -the transaction to the transaction log. Non-transactional application -code can continue executing while the log entry is being commited to -disk. Depending on the safety needs of the application, log entries -could also be buffered in a queue to achive higher peak transaction -rates, trading safety for speed. If safety is required, fast stable -store (e.g. battery-backed RAM) can increase the speed of synchronous -log writes. -</p> -<h2>Locking API</h2> -<p> -Current applications do not require sophisticated locking. To support -such applications, a locking API might make sense. -</p> -<h2>Replication</h2> -<p> -Hot-standby servers using the BKNR datastore are conceptually simple. -Full commit safety requires a slightly more involved commit -coordination on the distributed servers than doing the log replication -after the commit has locally finished. Many applications will be able -to loose one or even a few transactions should the system crash. -</p> -</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/development-style.xml (from rev 1800, trunk/projects/bknr-website/website/templates/development-style.bknr) =================================================================== --- trunk/projects/bknr-website/website/templates/development-style.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/development-style.xml 2006-01-24 11:04:26 UTC (rev 1801) @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?> +<page name="development-style"> + <h2>BKNR programming style</h2> + <p> + All BKNR application data is handled in main memory. Internally, + applications do not use secondary store like data bases or files. Are + application data structures are kept in the data structures provided + by Common Lisp. + </p> + <p> + All destructive operation on the persistent heap need to be explicit + and are synchronized. A transaction is never aborted nor may it fail. + Thus, it is vital to check preconditions before starting a destructive + operation. Within a transaction, application code must properly + handle all possible errors and gracefully return. Errors unhandled in + transaction code are considered fatal and cause the persistence system + to stop. + </p> + <p> + Applications may either define their own, named transactions or they + may use the provided CLOS layer which groups accesses to slots of + persistent objects to atomic transactions. + </p> + <p> + BKNR persistence sequentializes all destructive operations on the + persistent heap. As all data is in RAM when a transaction starts + executing, it is never stalled by having to wait for necessary data to + arrive. Thus, the need for preempting transaction code arises much + less frequently than in traditional systems in which transactions had + to access slow disks in order to collect the data to be processed. + </p> + <p> + Some applications require precondition checks which must be processed + atomically together with the associated transaction code. + Applications must guard such precondition checks with a store lock in + order to block other transaction code from executing. + </p> + <p> + Transaction code must be used only to change the persistent state of a + system. No I/O operations must be performed within transaction code. + Transactions may produce log output, but it they may not use (possibly + blocking) communications mechanisms to other processes. + </p> + <h2>Areas of research</h2> + <h3>Performance</h3> + <p> + For high-performance stores, some optimizations will be worthwile. + The single most time consuming operation while executing transactions + is the appending to the transaction log file. At the moment, this is + done using a synchronous write to the opened Unix file, which takes + significant time. + </p> + <p> + Not all operations need to be absolutely safe, and it might be + worthwile to change the default execution mode of the store to be as + follows: Processing other transactions or non-transaction code may + continue as soon as the transaction log entry of the current operation + has been constructed in RAM and the transaction application code has + been executed. The transaction system will then asynchronously write + the transaction to the transaction log. Non-transactional application + code can continue executing while the log entry is being commited to + disk. Depending on the safety needs of the application, log entries + could also be buffered in a queue to achive higher peak transaction + rates, trading safety for speed. If safety is required, fast stable + store (e.g. battery-backed RAM) can increase the speed of synchronous + log writes. + </p> + <h2>Locking API</h2> + <p> + Current applications do not require sophisticated locking. To support + such applications, a locking API might make sense. + </p> + <h2>Replication</h2> + <p> + Hot-standby servers using the BKNR datastore are conceptually simple. + Full commit safety requires a slightly more involved commit + coordination on the distributed servers than doing the log replication + after the commit has locally finished. Many applications will be able + to loose one or even a few transactions should the system crash. + </p> +</page> \ No newline at end of file
Deleted: trunk/projects/bknr-website/website/templates/documentation.bknr =================================================================== --- trunk/projects/bknr-website/website/templates/documentation.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/documentation.bknr 2006-01-24 11:04:26 UTC (rev 1801) @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<bknr:toplevel - template="toplevel" - title="Documentation" - xmlns="http://www.w3.org/1999/xhtml" - xmlns:bknr="http://bknr.net" - xmlns:bknr-website="http://bknr.net" - > - -<h1>Documentation</h1> - -<p>The following documentation in PDF format is available:</p> - -<ul> - - <li>The <a href="/pdf/datastore-manual" target="bknr_pdf">datastore - manual</a> describes the persistence mechanism including the - CLOS-based indexing facility</li> - - <li>The KlammerScript <a href="/pdf/js-manual" - target="bknr_pdf">manual</a> and <a href="/pdf/js-reference" - target="bknr_pdf">reference</a> describe the Lisp to Javascript - converter</li> - -</ul> - -<p>Kudos to Manuel for writing the documentation!</p> - -</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/documentation.xml (from rev 1800, trunk/projects/bknr-website/website/templates/documentation.bknr) =================================================================== --- trunk/projects/bknr-website/website/templates/documentation.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/documentation.xml 2006-01-24 11:04:26 UTC (rev 1801) @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?> +<page name="documentation"> + <h1>Documentation</h1> + + <p>The following documentation in PDF format is available:</p> + + <ul> + + <li>The <a href="/pdf/datastore-manual" target="bknr_pdf">datastore + manual</a> describes the persistence mechanism including the + CLOS-based indexing facility</li> + + <li>The KlammerScript <a href="/pdf/js-manual" + target="bknr_pdf">manual</a> and <a href="/pdf/js-reference" + target="bknr_pdf">reference</a> describe the Lisp to Javascript + converter</li> + + </ul> + + <p>Kudos to Manuel for writing the documentation!</p> +</page> \ No newline at end of file
Deleted: trunk/projects/bknr-website/website/templates/getting.bknr =================================================================== --- trunk/projects/bknr-website/website/templates/getting.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/getting.bknr 2006-01-24 11:04:26 UTC (rev 1801) @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<bknr:toplevel - template="toplevel" - title="Getting BKNR" - xmlns="http://www.w3.org/1999/xhtml" - xmlns:bknr="http://bknr.net" - xmlns:bknr-website="http://bknr.net" - > - - <h1>Getting BKNR</h1> - - <p>Currently, there is are no formal releases of the BKNR - environment. We are working with a <a - href="http://subversion.tigris.org" target="_new">Subversion</a> - repository which is publicy accessible.</p> - - <p>The BKNR repository contains the framework, all software packages - used by BKNR as well as well as several real-world applications which - have been deployed in the internet. The application sources are - provided as example material.</p> - - <h2>Using Subversion</h2> - - <p>To check out the current state of the repository, please install - the <a href="http://subversion.tigris.org" target="_new">Subversion</a> client on your machine and type</p> - - <blockquote> - <tt> - svn co svn://common-lisp.net/project/bknr/svn/trunk <b><i>bknr-svn</i></b> - </tt> - </blockquote> - - <p>This will store the source tree in the <tt><b><i>bknr-svn</i></b></tt> - directory of your local file system. You may specify a different path - if you wish.</p> - - <!-- - - <h2>Tar balls</h2> - - <p>If you cannot install Subversion or if you just want to have a - look at BKNR, you can download the automatically generated - snapshot: - <ul> - <li><a href="/snapshots/bknr.tar.bz2">BKNR core and modules</a></li> - <li><a href="/snapshots/bknr-thirdparty.tar.bz2">BKNR third party packages</a></li> - </ul> - The snapshot is automatically re-generated every night from the Subversion repository. - </p> - - --> - -</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/getting.xml (from rev 1800, trunk/projects/bknr-website/website/templates/getting.bknr) =================================================================== --- trunk/projects/bknr-website/website/templates/getting.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/getting.xml 2006-01-24 11:04:26 UTC (rev 1801) @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?> +<page name="getting"> + <h1>Getting BKNR</h1> + + <p>Currently, there is are no formal releases of the BKNR + environment. We are working with a <a + href="http://subversion.tigris.org" target="_new">Subversion</a> + repository which is publicy accessible. A big thanks to the folks at + <a href="http://common-lisp.net/" target="_new">common-lisp.net</a> + for hosting our project!</p> + + <p>The BKNR repository contains the framework, all software packages + used by BKNR as well as well as several real-world applications which + have been deployed in the internet. The application sources are + provided as example material.</p> + + <h2>Using Subversion</h2> + + <p>To check out the current state of the repository, please install + the <a href="http://subversion.tigris.org" + target="_new">Subversion</a> client on your machine and type</p> + + <blockquote> + <tt> + svn co svn://common-lisp.net/project/bknr/svn/trunk <b><i>bknr-svn</i></b> + </tt> + </blockquote> + + <p>This will store the source tree in the <tt><b><i>bknr-svn</i></b></tt> + directory of your local file system. You may specify a different path + if you wish.</p> + + <!-- + + <h2>Tar balls</h2> + + <p>If you cannot install Subversion or if you just want to have a + look at BKNR, you can download the automatically generated + snapshot: + <ul> + <li><a href="/snapshots/bknr.tar.bz2">BKNR core and modules</a></li> + <li><a href="/snapshots/bknr-thirdparty.tar.bz2">BKNR third party packages</a></li> + </ul> + The snapshot is automatically re-generated every night from the Subversion repository. + </p> + + --> +</page> \ No newline at end of file
Deleted: trunk/projects/bknr-website/website/templates/home.bknr =================================================================== --- trunk/projects/bknr-website/website/templates/home.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/home.bknr 2006-01-24 11:04:26 UTC (rev 1801) @@ -1,108 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<bknr:toplevel - template="toplevel" - title="BKNR Home" - xmlns="http://www.w3.org/1999/xhtml" - xmlns:bknr="http://bknr.net" - xmlns:bknr-website="http://bknr.net" - > - -<h1>Welcome to BKNR!</h1> - -<p>Welcome to the Website of BKNR, the Common Lisp Web Application -environment. This website aims to introduce the BKNR platform as well -as provide you with pointers to the software itself.</p> - -<h2>What is BKNR?</h2> -<p> - -BKNR is a set of Common Lisp libraries which together form an -environment suitable for serving HTTP clients from a persistent Lisp -system. - -It's major components are: -<ul> -<li>Persistence mechanism based on transaction logging, supporting -immutable binary large objects and CLOS persistence.</li> -<li>XML processing facilities</li> -<li>HTTP application environment with session handling and template engine</li> -</ul> -</p> - -<h3>Persistence</h3> -<p> -Persistence in BKNR is achived using a transaction logging mechanism. -All operations which change the persistent image of a system are -explicitely written to a transaction log file. When the system -crashes, the persistent state can be recovered by rolling forward the -transaction log. The transaction log is held in a simple binary -format in order to get acceptable restart times for larger datasets. -</p> -<p> -The persistence mechanism supports a snapshot API which allows the -persistent object system to write all currently active objects to a -sequential file. -</p> -<p> -The Persistent object subsystem provides for ID generation of objects. -Object IDs of persistent objects are written to the transaction log. -Persistent objects are never garbage collected and need to be deleted -by the application if they are no longer in use. -</p> -<p> -BKNR supports automated indices for CLOS instances. They are -implemented in a MOP metaclass and compatible with the BKNR metaclass -for persistent objects. -</p> -<h3>XML processing</h3> -<p> -BKNR integrates the Closure XML (CXML) parser using a CLOS metaclass -to provide for reading and writing XML files of objects. Combined -metaclasses are provided in order to allow for combinations like -indexed+persistent or indexed+xml. -</p> -<p> -CXML is also used for XHTML generation and XHTML template processing. -User-defined element handlers can be added to the XHTML generation to -support application-specific generation of dynamic content. -</p> -<h3>Web application environment</h3> -<p> -BKNR uses the portable aserve web server implementation as HTTP -server. It provides for a handler dispatch mechanism based on CLOS -objects and generic functions to provide for routing requests to -objects and HTML form handling. -</p> -<p> -Session handling through cookies is supported, as well is a simple -web-based CMS for maintaining user accounts and other application -information. -</p> -<p> -A CSS and Javascript generation library supports in-source-code -generation of complete web pages using a lisp-like syntax. -</p> -<h3>Other Libraries</h3> -<p> -Except for the graphics processing library used, all server-side -components of BKNR are implemented in Common Lisp. All components are -Open Source. All software outside of the thirdparty/ tree in the BKNR -repository are distributed under a BSD-style open source license. The -thirdparty/ tree contains a number of publicly available Common Lisp -libraries which are used by BKNR. -</p> -BKNR has been co-developed with a number of real-world applications. -Much of the application code has been kept in the central source code -repository and evolved through a number of API and framework changes. - - -BKNR started while implementing a -web site for <a href="http://eboy.com">eboy</a>, a group of graphics -artists who wanted to have a dynamic web site for publishing their -works. Their new, fully dynamic web site was implemented in CMU -Common Lisp - - -</bknr:toplevel>
Added: trunk/projects/bknr-website/website/templates/home.xml =================================================================== --- trunk/projects/bknr-website/website/templates/home.xml 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/home.xml 2006-01-24 11:04:26 UTC (rev 1801) @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?> +<page name="home"> + <h1>Welcome to BKNR!</h1> + + <p>Welcome to the Website of BKNR, the Common Lisp Web Application + environment. This website aims to introduce the BKNR platform as well + as provide you with pointers to the software itself.</p> + + <h2>What is BKNR?</h2> + <p> + + BKNR is a set of Common Lisp libraries which together form an + environment suitable for serving HTTP clients from a persistent Lisp + system. + + It's major components are: + <ul> + <li>Persistence mechanism based on transaction logging, supporting + immutable binary large objects and CLOS persistence.</li> + <li>XML processing facilities</li> + <li>HTTP application environment with session handling and template engine</li> + </ul> + </p> + + <h3>Persistence</h3> + <p> + Persistence in BKNR is achived using a transaction logging mechanism. + All operations which change the persistent image of a system are + explicitely written to a transaction log file. When the system + crashes, the persistent state can be recovered by rolling forward the + transaction log. The transaction log is held in a simple binary + format in order to get acceptable restart times for larger datasets. + </p> + <p> + The persistence mechanism supports a snapshot API which allows the + persistent object system to write all currently active objects to a + sequential file. + </p> + <p> + The Persistent object subsystem provides for ID generation of objects. + Object IDs of persistent objects are written to the transaction log. + Persistent objects are never garbage collected and need to be deleted + by the application if they are no longer in use. + </p> + <p> + BKNR supports automated indices for CLOS instances. They are + implemented in a MOP metaclass and compatible with the BKNR metaclass + for persistent objects. + </p> + <h3>XML processing</h3> + <p> + BKNR integrates the Closure XML (CXML) parser using a CLOS metaclass + to provide for reading and writing XML files of objects. Combined + metaclasses are provided in order to allow for combinations like + indexed+persistent or indexed+xml. + </p> + <p> + CXML is also used for XHTML generation and XHTML template processing. + User-defined element handlers can be added to the XHTML generation to + support application-specific generation of dynamic content. + </p> + <h3>Web application environment</h3> + <p> + BKNR uses the portable aserve web server implementation as HTTP + server. It provides for a handler dispatch mechanism based on CLOS + objects and generic functions to provide for routing requests to + objects and HTML form handling. + </p> + <p> + Session handling through cookies is supported, as well is a simple + web-based CMS for maintaining user accounts and other application + information. + </p> + <p> + A CSS and Javascript generation library supports in-source-code + generation of complete web pages using a lisp-like syntax. + </p> + <h3>Other Libraries</h3> + <p> + Except for the graphics processing library used, all server-side + components of BKNR are implemented in Common Lisp. All components are + Open Source. All software outside of the thirdparty/ tree in the BKNR + repository are distributed under a BSD-style open source license. The + thirdparty/ tree contains a number of publicly available Common Lisp + libraries which are used by BKNR. + </p> + BKNR has been co-developed with a number of real-world applications. + Much of the application code has been kept in the central source code + repository and evolved through a number of API and framework changes. + + + BKNR started while implementing a + web site for <a href="http://eboy.com">eboy</a>, a group of graphics + artists who wanted to have a dynamic web site for publishing their + works. Their new, fully dynamic web site was implemented in CMU + Common Lisp +</page> \ No newline at end of file
Deleted: trunk/projects/bknr-website/website/templates/license.bknr =================================================================== --- trunk/projects/bknr-website/website/templates/license.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/license.bknr 2006-01-24 11:04:26 UTC (rev 1801) @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<bknr:toplevel - template="toplevel" - title="BKNR License" - xmlns="http://www.w3.org/1999/xhtml" - xmlns:bknr="http://bknr.net" - xmlns:bknr-website="http://bknr.net" - > - <p>Copyright (c) 2003,2004,2005, BKNR (Hans Hübner, Manuel Odendahl)<br /> - All rights reserved.</p> - - <p>Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met:</p> - - <ul> - - <li>Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer.</li> - - <li>Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution.</li> - - <li>Neither the name BKNR nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission.</li> - - </ul> - - <p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS 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 THE COPYRIGHT OWNER OR - 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.</p> -</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/license.xml (from rev 1800, trunk/projects/bknr-website/website/templates/license.bknr) =================================================================== --- trunk/projects/bknr-website/website/templates/license.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/license.xml 2006-01-24 11:04:26 UTC (rev 1801) @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?> +<page name="license"> + <p>Copyright (c) 2003,2004,2005, BKNR (Hans Hübner, Manuel Odendahl)<br /> + All rights reserved.</p> + + <p>Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met:</p> + + <ul> + + <li>Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer.</li> + + <li>Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution.</li> + + <li>Neither the name BKNR nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission.</li> + + </ul> + + <p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS 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 THE COPYRIGHT OWNER OR + 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.</p> +</page> \ No newline at end of file
Modified: trunk/projects/bknr-website/website/templates/menu.xml =================================================================== --- trunk/projects/bknr-website/website/templates/menu.xml 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/menu.xml 2006-01-24 11:04:26 UTC (rev 1801) @@ -1,12 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> -<menus> - <menu name="main"> - <item url="/home" title="Home" /> - <item url="/applications" title="Applications" /> - <item url="/platforms" title="Platforms" /> - <item url="/documentation" title="Documentation" /> - <item url="/license" title="License" /> - <item url="/getting" title="Getting BKNR" /> - <item url="/contact" title="Contact" /> - </menu> -</menus> \ No newline at end of file +<menu name="main"> + <item url="home" title="Home" /> + <item url="applications" title="Applications" /> + <item url="platforms" title="Platforms" /> + <item url="documentation" title="Documentation" /> + <item url="license" title="License" /> + <item url="getting" title="Getting BKNR" /> + <item url="contact" title="Contact" /> +</menu>
Deleted: trunk/projects/bknr-website/website/templates/platforms.bknr =================================================================== --- trunk/projects/bknr-website/website/templates/platforms.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/platforms.bknr 2006-01-24 11:04:26 UTC (rev 1801) @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<bknr:toplevel - template="toplevel" - title="Platforms" - xmlns="http://www.w3.org/1999/xhtml" - xmlns:bknr="http://bknr.net" - xmlns:bknr-website="http://bknr.net" - > - -<h1>BKNR platforms</h1> - -<p>BKNR is developed using the <a -href="http://www.cons.org/cmucl/%22%3ECMU Common Lisp</a> compiler on the -<a href="http://freebsd.org/">FreeBSD</a> operting system. It is -known to run on CMUCL on Linux, and the datastore components have been -tested on the <a href="http://franz.com/products/allegrocl/">Allegro -Common Lisp</a> compiler. Portability is not our main concern, but we -will accept portability patches if they do not affect the mainline -development too much.</p> - -<p>That said, most of the components are written in portable Common -Lisp, but some of the application modules depend on CMUCL extensions.</p> - -</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/platforms.xml (from rev 1800, trunk/projects/bknr-website/website/templates/platforms.bknr) =================================================================== --- trunk/projects/bknr-website/website/templates/platforms.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/platforms.xml 2006-01-24 11:04:26 UTC (rev 1801) @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?> +<page name="platforms"> + <h1>BKNR platforms</h1> + + <p>BKNR is developed using the <a + href="http://www.cons.org/cmucl/%22%3ECMU Common Lisp</a> compiler on the + <a href="http://freebsd.org/">FreeBSD</a> operting system. It is + known to run on CMUCL on Linux, and the datastore components have been + tested on the <a href="http://franz.com/products/allegrocl/">Allegro + Common Lisp</a> compiler. Portability is not our main concern, but we + will accept portability patches if they do not affect the mainline + development too much.</p> + + <p>That said, most of the components are written in portable Common + Lisp, but some of the application modules depend on CMUCL extensions.</p> + +</page>
Deleted: trunk/projects/bknr-website/website/templates/technology.bknr ===================================================================
Deleted: trunk/projects/bknr-website/website/templates/toplevel.bknr =================================================================== --- trunk/projects/bknr-website/website/templates/toplevel.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/toplevel.bknr 2006-01-24 11:04:26 UTC (rev 1801) @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html - xmlns="http://www.w3.org/1999/xhtml" - xmlns:bknr-website="http://bknr.net" - xmlns:bknr="http://bknr.net" - xmlns:menu="http://bknr.net/menu" - > - <head> - <title>BKNR - $(title)</title> - <link rel="stylesheet" type="text/css" href="/static/styles.css" /> - <script src="/static/javascript.js" language="javascript" type="text/javascript"> </script> - </head> - - <body> - <div id="banner"> - <div id="title">BKNR Lisp Application Environment</div> - <div id="logo"> - <a href="http://common-lisp.net/project/bknr/home.html" target="_new"> - <img width="88" height="31" alt="BKNR Logo" src="/image/bknr-logo" border="0" /> - </a> - </div> - </div> - <div id="body"> - <div id="system-column"> - <menu:site-menu config="menu.xml" - menu-name="main" - container-class="site-menu" - active-class="site-menu-active" - inactive-class="site-menu-inactive" /> -<!-- - <div id="login"> - <bknr-website:login-widget /> - </div> - --> - </div> - <div id="content"> - <bknr:tag-body /> - </div> - </div> - </body> -</html>
Deleted: trunk/projects/bknr-website/website/templates/user-error.bknr =================================================================== --- trunk/projects/bknr-website/website/templates/user-error.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/user-error.bknr 2006-01-24 11:04:26 UTC (rev 1801) @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html - xmlns="http://www.w3.org/1999/xhtml" - xmlns:bknr="http://bknr.net" - xmlns:bknr-website="http://bknr.net" - xmlns:menu="http://bknr.net/menu" - > -Your request could not be processed because an error occured: -<pre> -$(error-message) -</pre> -</html> \ No newline at end of file
Copied: trunk/projects/bknr-website/website/templates/user-error.xml (from rev 1800, trunk/projects/bknr-website/website/templates/user-error.bknr)
Deleted: trunk/projects/bknr-website/website/templates/why-no-db.bknr =================================================================== --- trunk/projects/bknr-website/website/templates/why-no-db.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/why-no-db.bknr 2006-01-24 11:04:26 UTC (rev 1801) @@ -1,79 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<bknr:toplevel - template="toplevel" - title="BKNR technology" - xmlns="http://www.w3.org/1999/xhtml" - xmlns:bknr="http://bknr.net" - xmlns:bknr-website="http://bknr.net" - > - -<h1>Requirements for a persistence mechanism</h1> -<p> -We want a persistence mechanism which is closely integrated into our -programming language. Persistence is something we want to assume as -being available which writing applications, and it should be as -unintrusive as possible. Applications should use standard programming -language mechanisms to access all data. -</p> -<p> -The persistence mechanism should ensure that all appplication data in -the system is safe against system crashes. If the system crashes, the -application and all it's data should be restartable into a consistent -state. The amount of work which can be lost due to a unplanned system -failure should be low. -</p> -<p> -The persistence mechanism should make the amount of data which -constitutes the persistent state of the application transparent. It -should provide for mechanisms to duplicate the current state in order -to move it from one machine or software release to another. -</p> -<h1>Does a "Database system" help?</h1> -<p> -The two most popular database families today are relational databases -with SQL as query language, and embedded database facilities like -Berkeley DB which provides for indexed access to tables stored on -disk. They have in common that they assume that the primary location -of data is on-disk and that applications have to read and write data -from and to disk in order to perform their tasks. -</p> -<p> -Database systems, when they were invented, served as an address -extension to the applications. Applications could operate on data -sets which were to large for in-memory processing, providing -persistence at the same time. -</p> -<p> -In addition, SQL databases provide for a language neutral query -language that allow flexible querying of the application data. This -facility is useful in multi-language environments and to facilitate -database queries through third-party applications. -</p> -<p> -Todays main memories and processing speed redefine the environment in -which applications are created. Memory is no longer a very scarce -resource, and memory sizes have generally grown much faster than the -amount of application data that needs to be processed. Thus, -on-demand loading of application from disk can (and should) be totally -avoided by always having the complete data set in memory. -</p> -<h2>Properties of the BKNR persistence mechanism</h2> -<p> -All Disk access by the persistence mechanism is sequential. During -normal operation, the transaction log is sequentially appended to. -During snapshot, the snapshot file of the object subsystem is -sequentially written. During restore, the snapshot and transaction -log files are sequentially read. -</p> -<p> -All files used by BKNR are immutable. A file is never changed, but -only created, read or deleted. -</p> -<p> -The time needed to restore from a crash consists of the time needed to -read the sequential log file, to parse it's content and to execute the -applications' transaction code. -</p> -</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/why-no-db.xml (from rev 1800, trunk/projects/bknr-website/website/templates/why-no-db.bknr) =================================================================== --- trunk/projects/bknr-website/website/templates/why-no-db.bknr 2006-01-24 08:48:40 UTC (rev 1800) +++ trunk/projects/bknr-website/website/templates/why-no-db.xml 2006-01-24 11:04:26 UTC (rev 1801) @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?> +<page name="why-no-db"> + <h1>Requirements for a persistence mechanism</h1> + <p> + We want a persistence mechanism which is closely integrated into our + programming language. Persistence is something we want to assume as + being available which writing applications, and it should be as + unintrusive as possible. Applications should use standard programming + language mechanisms to access all data. + </p> + <p> + The persistence mechanism should ensure that all appplication data in + the system is safe against system crashes. If the system crashes, the + application and all it's data should be restartable into a consistent + state. The amount of work which can be lost due to a unplanned system + failure should be low. + </p> + <p> + The persistence mechanism should make the amount of data which + constitutes the persistent state of the application transparent. It + should provide for mechanisms to duplicate the current state in order + to move it from one machine or software release to another. + </p> + <h1>Does a "Database system" help?</h1> + <p> + The two most popular database families today are relational databases + with SQL as query language, and embedded database facilities like + Berkeley DB which provides for indexed access to tables stored on + disk. They have in common that they assume that the primary location + of data is on-disk and that applications have to read and write data + from and to disk in order to perform their tasks. + </p> + <p> + Database systems, when they were invented, served as an address + extension to the applications. Applications could operate on data + sets which were to large for in-memory processing, providing + persistence at the same time. + </p> + <p> + In addition, SQL databases provide for a language neutral query + language that allow flexible querying of the application data. This + facility is useful in multi-language environments and to facilitate + database queries through third-party applications. + </p> + <p> + Todays main memories and processing speed redefine the environment in + which applications are created. Memory is no longer a very scarce + resource, and memory sizes have generally grown much faster than the + amount of application data that needs to be processed. Thus, + on-demand loading of application from disk can (and should) be totally + avoided by always having the complete data set in memory. + </p> + <h2>Properties of the BKNR persistence mechanism</h2> + <p> + All Disk access by the persistence mechanism is sequential. During + normal operation, the transaction log is sequentially appended to. + During snapshot, the snapshot file of the object subsystem is + sequentially written. During restore, the snapshot and transaction + log files are sequentially read. + </p> + <p> + All files used by BKNR are immutable. A file is never changed, but + only created, read or deleted. + </p> + <p> + The time needed to restore from a crash consists of the time needed to + read the sequential log file, to parse it's content and to execute the + applications' transaction code. + </p> +</page> \ No newline at end of file