root/trunk/bknr/datastore/doc/introduction.tex

Revision 2597, 3.9 kB (checked in by hans, 11 months ago)

Add warning message to manual front page.
Edit LISP->Lisp in the manual (*sigh*)

Line 
1 \chapter{Introduction}
2 \label{sec:introduction}
3
4 \vbox{
5 \centering
6 \includegraphics{satelliteicon}
7 \vspace{1cm}
8 }
9
10 BKNR is a software launch platform for Lisp satellites. You could
11 replace ``launch platform'' with framework and ``satellites'' with
12 ``applications'', but that would be too many buzzwords.
13
14 BKNR is made of facilities that are not very useful on their own, but
15 they can be used to quickly build shiny and elegant Lisp
16 satellites. For example, a very important component of BKNR is its
17 datastore, which brings persistence to CLOS in a very simple way. By
18 adding a few declarations to your class definitions, you can have
19 persistent objects. You can also add XML import/export to your objects
20 in a similar way. I think this is the single most attractive feature
21 of BKNR: no more mapping from a relational database to Lisp objects,
22 no more XML parsing and XML generation, you just write plain
23 application code.
24
25
26 Another interesting feature of BKNR is its web framework, built on top
27 of the Hunchentoot webserver. The web framework has a simple
28 object-oriented handler hierarchy, with sessions, authorization and
29 all the features you are used to from other frameworks. It also
30 gathers usage information, stores it in the datastore, generates
31 statistics, maps sessions to persistent users. Furthermore, a very
32 useful feature is the HTML templater, which enables you to call Lisp
33 code from XML templates. The Lisp template callbacks are simple Lisp
34 functions that can work on the XML DOM representation. This eases
35 working with web developers, who can still use their standard editors
36 to develop the layout of the webpage. Dynamic content is easy to
37 integrate.
38
39 \begin{figure}[htbp]
40     \centering
41 \includegraphics[scale=0.4]{eboyshot1}
42 \caption{Screenshot of eboy.com}
43 \end{figure}
44
45 The application which started BKNR was the website for the graphic
46 designers eboy. A lot of work went into the manipulation of images and
47 the integration of images into the Lisp framework. So another big part
48 of the BKNR web framework is the image manipulation code and the image
49 layout code, based on the CL-GD library by Edi Weitz.
50
51 We have started developing BKNR in March 2004, and it is used in 2 big
52 web applications (the Eboy dynasite ``eboy.com'', and the BOS website
53 ``BOS creates rainforest''), and has been used to implement a few
54 personal websites (the website for the hacker gathering GPN in 2004,
55 which featured an interactive Lisp music-dj, the temporary conference
56 website for the European Lisp Workshop and the BKNR website). The code
57 was opensourced right from the start, but we didn't put a lot of
58 effort into making it accessible for other developers. This is the
59 first try at releasing some kind of public version of the BKNR
60 codebase, with (we hope) decent documentation.
61
62 If you would like to look at some of the BKNR features in a little
63 more detail, take the guided tour in Chapter 2. Chapters 3, 4, 5, 6
64 then show how to use the different facilities in short tutorials,
65 respectively object indices, the datastore, the web framework and the
66 templater. These chapters are slightly modified versions of the
67 tutorials that can be found in each of the facilities. Finally,
68 Chapter 7 shows how to build a full web photo album application using
69 BKNR. Due to time constraints, the last three chapters are not
70 available for the release of BKNR Sputnik. We are sorry for the
71 inconvenience. The sourcecode is in a working state, but not
72 documented and cleaned up yet.
73
74 We would like to thank the eboys for their support while developing
75 BKNR, their cool graphics and their enthusiasm :) We would also like
76 to thank Edi Weitz for his impressive libraries, and his
77 support. Also, I would like to thank Steffen Hurrle for his cool
78 website designs (he also has a new design for the BKNR website, which
79 sadly nobody has the time to update). The BKNR developers are Hans
80 Huebner, David Lichteblau and Manuel Odendahl.
81
Note: See TracBrowser for help on using the browser.