Author: hhubner Date: 2006-01-24 05:14:49 -0600 (Tue, 24 Jan 2006) New Revision: 1804
Removed: trunk/projects/bknr-website/templates/applications.bknr trunk/projects/bknr-website/templates/contact.bknr trunk/projects/bknr-website/templates/development-style.bknr trunk/projects/bknr-website/templates/documentation.bknr trunk/projects/bknr-website/templates/getting.bknr trunk/projects/bknr-website/templates/home.bknr trunk/projects/bknr-website/templates/license.bknr trunk/projects/bknr-website/templates/platforms.bknr trunk/projects/bknr-website/templates/technology.bknr trunk/projects/bknr-website/templates/toplevel.bknr trunk/projects/bknr-website/templates/user-error.bknr trunk/projects/bknr-website/templates/why-no-db.bknr Log: Delete these again, Subversion seems to have overlooked the previous commit.
Deleted: trunk/projects/bknr-website/templates/applications.bknr =================================================================== --- trunk/projects/bknr-website/templates/applications.bknr 2006-01-24 11:10:26 UTC (rev 1803) +++ trunk/projects/bknr-website/templates/applications.bknr 2006-01-24 11:14:49 UTC (rev 1804) @@ -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>
Deleted: trunk/projects/bknr-website/templates/contact.bknr =================================================================== --- trunk/projects/bknr-website/templates/contact.bknr 2006-01-24 11:10:26 UTC (rev 1803) +++ trunk/projects/bknr-website/templates/contact.bknr 2006-01-24 11:14:49 UTC (rev 1804) @@ -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>
Deleted: trunk/projects/bknr-website/templates/development-style.bknr =================================================================== --- trunk/projects/bknr-website/templates/development-style.bknr 2006-01-24 11:10:26 UTC (rev 1803) +++ trunk/projects/bknr-website/templates/development-style.bknr 2006-01-24 11:14:49 UTC (rev 1804) @@ -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>
Deleted: trunk/projects/bknr-website/templates/documentation.bknr =================================================================== --- trunk/projects/bknr-website/templates/documentation.bknr 2006-01-24 11:10:26 UTC (rev 1803) +++ trunk/projects/bknr-website/templates/documentation.bknr 2006-01-24 11:14:49 UTC (rev 1804) @@ -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>
Deleted: trunk/projects/bknr-website/templates/getting.bknr =================================================================== --- trunk/projects/bknr-website/templates/getting.bknr 2006-01-24 11:10:26 UTC (rev 1803) +++ trunk/projects/bknr-website/templates/getting.bknr 2006-01-24 11:14:49 UTC (rev 1804) @@ -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>
Deleted: trunk/projects/bknr-website/templates/home.bknr =================================================================== --- trunk/projects/bknr-website/templates/home.bknr 2006-01-24 11:10:26 UTC (rev 1803) +++ trunk/projects/bknr-website/templates/home.bknr 2006-01-24 11:14:49 UTC (rev 1804) @@ -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>
Deleted: trunk/projects/bknr-website/templates/license.bknr =================================================================== --- trunk/projects/bknr-website/templates/license.bknr 2006-01-24 11:10:26 UTC (rev 1803) +++ trunk/projects/bknr-website/templates/license.bknr 2006-01-24 11:14:49 UTC (rev 1804) @@ -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>
Deleted: trunk/projects/bknr-website/templates/platforms.bknr =================================================================== --- trunk/projects/bknr-website/templates/platforms.bknr 2006-01-24 11:10:26 UTC (rev 1803) +++ trunk/projects/bknr-website/templates/platforms.bknr 2006-01-24 11:14:49 UTC (rev 1804) @@ -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>
Deleted: trunk/projects/bknr-website/templates/technology.bknr ===================================================================
Deleted: trunk/projects/bknr-website/templates/toplevel.bknr =================================================================== --- trunk/projects/bknr-website/templates/toplevel.bknr 2006-01-24 11:10:26 UTC (rev 1803) +++ trunk/projects/bknr-website/templates/toplevel.bknr 2006-01-24 11:14:49 UTC (rev 1804) @@ -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/templates/user-error.bknr =================================================================== --- trunk/projects/bknr-website/templates/user-error.bknr 2006-01-24 11:10:26 UTC (rev 1803) +++ trunk/projects/bknr-website/templates/user-error.bknr 2006-01-24 11:14:49 UTC (rev 1804) @@ -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
Deleted: trunk/projects/bknr-website/templates/why-no-db.bknr =================================================================== --- trunk/projects/bknr-website/templates/why-no-db.bknr 2006-01-24 11:10:26 UTC (rev 1803) +++ trunk/projects/bknr-website/templates/why-no-db.bknr 2006-01-24 11:14:49 UTC (rev 1804) @@ -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>