Corrected feed-to-full.lisp to generate rss 1.0 with full contents.

Pascal J. Bourguignon [2015-10-25 22:41]
Corrected feed-to-full.lisp to generate rss 1.0 with full contents.
Filename
bin/html-update.el
com.informatimago.www/articles/cl-types/index.html
com.informatimago.www/articles/emacs-colors/index.html
com.informatimago.www/articles/ffn=-n/index.html
com.informatimago.www/articles/flpl/index.html
com.informatimago.www/articles/index.html
com.informatimago.www/articles/interleave/index.html
com.informatimago.www/articles/life-saver.html
com.informatimago.www/articles/raspberrypi/ccl-sur-qemu.html
com.informatimago.www/articles/raspberrypi/index.html
com.informatimago.www/articles/usenet.html
com.informatimago.www/attic.html
com.informatimago.www/blog/Makefile
com.informatimago.www/blog/feed-to-full.lisp
com.informatimago.www/blog/fullfeed.xml
com.informatimago.www/default.css
com.informatimago.www/develop/abalone/index.html
com.informatimago.www/develop/aliases_helper/index.html
com.informatimago.www/develop/cirrus/index.html
com.informatimago.www/develop/emacs/index.html
com.informatimago.www/develop/gnustep/index.html
com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.html-generator.html.html
com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.invoice.invoice.html
com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp-reader.reader.html
com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp-text.source-text.html
com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp.stepper.html
com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp.stepper.internal.html
com.informatimago.www/develop/lisp/doc/com.informatimago.lispdoc.utility.html
com.informatimago.www/develop/lisp/doc/com.informatimago.objective-cl.html
com.informatimago.www/develop/lisp/doc/com.informatimago.tools.script.html
com.informatimago.www/develop/lisp/index.html
com.informatimago.www/develop/lisp/why-biobike.html
com.informatimago.www/develop/mtel/index.html
com.informatimago.www/develop/patches/index.html
com.informatimago.www/develop/pic-merge-diff3/index.html
com.informatimago.www/develop/sms/index.html
com.informatimago.www/develop/squeak/index.html
com.informatimago.www/index.html
com.informatimago.www/linux/chrooted-ssh-cvs.html
com.informatimago.www/linux/emacs-on-user-mode-linux.html
com.informatimago.www/linux/rpm-rebuilddb.html
com.informatimago.www/nodes.el
com.informatimago.www/toc.html
diff --git a/bin/html-update.el b/bin/html-update.el
index cd89d66..3b20e3a 100755
--- a/bin/html-update.el
+++ b/bin/html-update.el
@@ -520,7 +520,7 @@ Note: walks the tree prefixed depth first."
                 (format "
 <TD><TABLE BORDER=\"0\" ALIGN=\"CENTER\" SUMMARY=\"%s\">
      <TR><TD BGCOLOR=\"#c0f0e0\">
-           <A HREF=\"%%s\"><SMALL>&lt;&lt; %s &lt;&lt; </SMALL></A></TD>
+           <A CLASS=\"button\" HREF=\"%%s\"><SMALL>&lt;&lt; %s &lt;&lt; </SMALL></A></TD>
     </TABLE>
 "  title title)))
              (begi-format
@@ -544,7 +544,7 @@ Note: walks the tree prefixed depth first."
                 (format "
 <TD><TABLE BORDER=\"0\" ALIGN=\"CENTER\" SUMMARY=\"%s\">
      <TR><TD BGCOLOR=\"#c0f0e0\">
-         <A HREF=\"%%s\"><SMALL>&gt;&gt; %s &gt;&gt;</SMALL></A></TD>
+         <A CLASS=\"button\" HREF=\"%%s\"><SMALL>&gt;&gt; %s &gt;&gt;</SMALL></A></TD>
     </TABLE>
 " title title)))
              (tail-format "
@@ -591,18 +591,18 @@ Note: walks the tree prefixed depth first."
       "<!-- from data in 'node.el'.    Please, do not edit it here. -->\n"
       "<DIV CLASS=\"MENU\">"
       "<HR><P>|\n"
-      (format " <A HREF=\"%s\">Contents</a> |\n"
+      (format " <A CLASS=\"button\" HREF=\"%s\">Contents</a> |\n"
           (html-make-relative-uri curr "toc.html"))
       (if (not (html-equal-uri-p curr "index.html"))
-        (format " <A HREF=\"%s\">Home</a> |\n"
+        (format " <A CLASS=\"button\" HREF=\"%s\">Home</a> |\n"
           (html-make-relative-uri curr "index.html"))
         "")
       (if (and prev (not (html-equal-uri-p curr prev)))
-        (format " <A HREF=\"%s\">Previous</a> |\n"
+        (format " <A CLASS=\"button\" HREF=\"%s\">Previous</a> |\n"
           (html-make-relative-uri curr prev))
         "")
       (if (and pare (not (html-equal-uri-p curr pare)))
-        (format " <A HREF=\"%s\">Up</a> |\n"
+        (format " <A CLASS=\"button\" HREF=\"%s\">Up</a> |\n"
           (html-make-relative-uri curr pare))
         "")
       (let ((child
@@ -613,11 +613,11 @@ Note: walks the tree prefixed depth first."
                             curr (page-curr-path (tree-decor (car children))))))
                   (car children)))))
         (if child
-          (format " <A HREF=\"%s\">Down</a> |\n"
+          (format " <A CLASS=\"button\" HREF=\"%s\">Down</a> |\n"
             (html-make-relative-uri curr (page-curr-path (tree-decor child))))
           ""))
       (if (and next (not (html-equal-uri-p curr next)))
-        (format " <A HREF=\"%s\">Next</a> |\n"
+        (format " <A CLASS=\"button\" HREF=\"%s\">Next</a> |\n"
           (html-make-relative-uri curr next))
         "")
       "</P><HR></DIV>\n"
diff --git a/com.informatimago.www/articles/cl-types/index.html b/com.informatimago.www/articles/cl-types/index.html
index fadde9b..0bcdf04 100644
--- a/com.informatimago.www/articles/cl-types/index.html
+++ b/com.informatimago.www/articles/cl-types/index.html
@@ -25,11 +25,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../ffn=-n/index.html">Previous</a> |
- <A HREF="../usenet.html">Up</a> |
- <A HREF="../life-saver.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../ffn=-n/index.html">Previous</a> |
+ <A CLASS="button" HREF="../usenet.html">Up</a> |
+ <A CLASS="button" HREF="../life-saver.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

diff --git a/com.informatimago.www/articles/emacs-colors/index.html b/com.informatimago.www/articles/emacs-colors/index.html
index 9617dae..cc31da6 100644
--- a/com.informatimago.www/articles/emacs-colors/index.html
+++ b/com.informatimago.www/articles/emacs-colors/index.html
@@ -95,11 +95,11 @@ img.floatRight {
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../life-saver.html">Previous</a> |
- <A HREF="../usenet.html">Up</a> |
- <A HREF="../flpl/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../life-saver.html">Previous</a> |
+ <A CLASS="button" HREF="../usenet.html">Up</a> |
+ <A CLASS="button" HREF="../flpl/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

diff --git a/com.informatimago.www/articles/ffn=-n/index.html b/com.informatimago.www/articles/ffn=-n/index.html
index ca316c7..e2dd156 100644
--- a/com.informatimago.www/articles/ffn=-n/index.html
+++ b/com.informatimago.www/articles/ffn=-n/index.html
@@ -28,11 +28,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../interleave/index.html">Previous</a> |
- <A HREF="../usenet.html">Up</a> |
- <A HREF="../cl-types/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../interleave/index.html">Previous</a> |
+ <A CLASS="button" HREF="../usenet.html">Up</a> |
+ <A CLASS="button" HREF="../cl-types/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

diff --git a/com.informatimago.www/articles/flpl/index.html b/com.informatimago.www/articles/flpl/index.html
index 5c2a570..cfc05d7 100644
--- a/com.informatimago.www/articles/flpl/index.html
+++ b/com.informatimago.www/articles/flpl/index.html
@@ -25,11 +25,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../emacs-colors/index.html">Previous</a> |
- <A HREF="../usenet.html">Up</a> |
- <A HREF="../raspberrypi/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../emacs-colors/index.html">Previous</a> |
+ <A CLASS="button" HREF="../usenet.html">Up</a> |
+ <A CLASS="button" HREF="../raspberrypi/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

diff --git a/com.informatimago.www/articles/index.html b/com.informatimago.www/articles/index.html
index f8e7e2a..fb64c88 100644
--- a/com.informatimago.www/articles/index.html
+++ b/com.informatimago.www/articles/index.html
@@ -24,12 +24,12 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../toc.html">Contents</a> |
- <A HREF="../index.html">Home</a> |
- <A HREF="../develop/emacs/index.html">Previous</a> |
- <A HREF="../index.html">Up</a> |
- <A HREF="usenet.html">Down</a> |
- <A HREF="usenet.html">Next</a> |
+ <A CLASS="button" HREF="../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../index.html">Home</a> |
+ <A CLASS="button" HREF="../develop/emacs/index.html">Previous</a> |
+ <A CLASS="button" HREF="../index.html">Up</a> |
+ <A CLASS="button" HREF="usenet.html">Down</a> |
+ <A CLASS="button" HREF="usenet.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

diff --git a/com.informatimago.www/articles/interleave/index.html b/com.informatimago.www/articles/interleave/index.html
index 5fe9074..79b5fd7 100644
--- a/com.informatimago.www/articles/interleave/index.html
+++ b/com.informatimago.www/articles/interleave/index.html
@@ -25,11 +25,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../usenet.html">Previous</a> |
- <A HREF="../usenet.html">Up</a> |
- <A HREF="../ffn=-n/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../usenet.html">Previous</a> |
+ <A CLASS="button" HREF="../usenet.html">Up</a> |
+ <A CLASS="button" HREF="../ffn=-n/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

diff --git a/com.informatimago.www/articles/life-saver.html b/com.informatimago.www/articles/life-saver.html
index 547ab26..3894b4e 100644
--- a/com.informatimago.www/articles/life-saver.html
+++ b/com.informatimago.www/articles/life-saver.html
@@ -95,11 +95,11 @@ img.floatRight {
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../toc.html">Contents</a> |
- <A HREF="../index.html">Home</a> |
- <A HREF="cl-types/index.html">Previous</a> |
- <A HREF="usenet.html">Up</a> |
- <A HREF="emacs-colors/index.html">Next</a> |
+ <A CLASS="button" HREF="../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../index.html">Home</a> |
+ <A CLASS="button" HREF="cl-types/index.html">Previous</a> |
+ <A CLASS="button" HREF="usenet.html">Up</a> |
+ <A CLASS="button" HREF="emacs-colors/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

diff --git a/com.informatimago.www/articles/raspberrypi/ccl-sur-qemu.html b/com.informatimago.www/articles/raspberrypi/ccl-sur-qemu.html
index 5dfa130..403202d 100644
--- a/com.informatimago.www/articles/raspberrypi/ccl-sur-qemu.html
+++ b/com.informatimago.www/articles/raspberrypi/ccl-sur-qemu.html
@@ -24,11 +24,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="index.html">Previous</a> |
- <A HREF="index.html">Up</a> |
- <A HREF="../../attic.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="index.html">Previous</a> |
+ <A CLASS="button" HREF="index.html">Up</a> |
+ <A CLASS="button" HREF="../../attic.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

diff --git a/com.informatimago.www/articles/raspberrypi/index.html b/com.informatimago.www/articles/raspberrypi/index.html
index ace6dba..da038c9 100644
--- a/com.informatimago.www/articles/raspberrypi/index.html
+++ b/com.informatimago.www/articles/raspberrypi/index.html
@@ -24,12 +24,12 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../flpl/index.html">Previous</a> |
- <A HREF="../usenet.html">Up</a> |
- <A HREF="ccl-sur-qemu.html">Down</a> |
- <A HREF="ccl-sur-qemu.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../flpl/index.html">Previous</a> |
+ <A CLASS="button" HREF="../usenet.html">Up</a> |
+ <A CLASS="button" HREF="ccl-sur-qemu.html">Down</a> |
+ <A CLASS="button" HREF="ccl-sur-qemu.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

diff --git a/com.informatimago.www/articles/usenet.html b/com.informatimago.www/articles/usenet.html
index 24e80ba..864059c 100644
--- a/com.informatimago.www/articles/usenet.html
+++ b/com.informatimago.www/articles/usenet.html
@@ -24,12 +24,12 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../toc.html">Contents</a> |
- <A HREF="../index.html">Home</a> |
- <A HREF="index.html">Previous</a> |
- <A HREF="index.html">Up</a> |
- <A HREF="interleave/index.html">Down</a> |
- <A HREF="interleave/index.html">Next</a> |
+ <A CLASS="button" HREF="../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../index.html">Home</a> |
+ <A CLASS="button" HREF="index.html">Previous</a> |
+ <A CLASS="button" HREF="index.html">Up</a> |
+ <A CLASS="button" HREF="interleave/index.html">Down</a> |
+ <A CLASS="button" HREF="interleave/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

diff --git a/com.informatimago.www/attic.html b/com.informatimago.www/attic.html
index d4320da..62135f6 100644
--- a/com.informatimago.www/attic.html
+++ b/com.informatimago.www/attic.html
@@ -20,12 +20,12 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="toc.html">Contents</a> |
- <A HREF="index.html">Home</a> |
- <A HREF="articles/raspberrypi/ccl-sur-qemu.html">Previous</a> |
- <A HREF="index.html">Up</a> |
- <A HREF="develop/sms/index.html">Down</a> |
- <A HREF="develop/sms/index.html">Next</a> |
+ <A CLASS="button" HREF="toc.html">Contents</a> |
+ <A CLASS="button" HREF="index.html">Home</a> |
+ <A CLASS="button" HREF="articles/raspberrypi/ccl-sur-qemu.html">Previous</a> |
+ <A CLASS="button" HREF="index.html">Up</a> |
+ <A CLASS="button" HREF="develop/sms/index.html">Down</a> |
+ <A CLASS="button" HREF="develop/sms/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -173,12 +173,12 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="toc.html">Contents</a> |
- <A HREF="index.html">Home</a> |
- <A HREF="articles/raspberrypi/ccl-sur-qemu.html">Previous</a> |
- <A HREF="index.html">Up</a> |
- <A HREF="develop/sms/index.html">Down</a> |
- <A HREF="develop/sms/index.html">Next</a> |
+ <A CLASS="button" HREF="toc.html">Contents</a> |
+ <A CLASS="button" HREF="index.html">Home</a> |
+ <A CLASS="button" HREF="articles/raspberrypi/ccl-sur-qemu.html">Previous</a> |
+ <A CLASS="button" HREF="index.html">Up</a> |
+ <A CLASS="button" HREF="develop/sms/index.html">Down</a> |
+ <A CLASS="button" HREF="develop/sms/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->
 <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/blog/Makefile b/com.informatimago.www/blog/Makefile
index 065428c..0f389fa 100644
--- a/com.informatimago.www/blog/Makefile
+++ b/com.informatimago.www/blog/Makefile
@@ -5,9 +5,9 @@ clean::
 install::
 documentation::

-feed:: fullfeed.xml
+feed feeds:: fullfeed.xml

-fullfeed.xml:feed.xml
-	feed-to-full.lisp feed.xml > fullfeed.xml
+fullfeed.xml:feed.xml feed-to-full.lisp Makefile
+	ccl < feed-to-full.lisp  > /tmp/feed-to-full.log

-.PHONY:doc documentation html feed
+.PHONY:doc documentation html feed feeds
diff --git a/com.informatimago.www/blog/feed-to-full.lisp b/com.informatimago.www/blog/feed-to-full.lisp
old mode 100644
new mode 100755
index 9c79bbd..1261e3a
--- a/com.informatimago.www/blog/feed-to-full.lisp
+++ b/com.informatimago.www/blog/feed-to-full.lisp
@@ -1,4 +1,3 @@
-#!/usr/local/bin/clisp -ansi -q -E utf-8
 ;;;; -*- mode:lisp;coding:utf-8 -*-
 ;;;;**************************************************************************
 ;;;;FILE:               feed-to-full.lisp
@@ -55,9 +54,12 @@
          #+(and clisp (not testing-script)) (ext:exit 1)))))

 (redirecting-stdout-to-stderr
-  (load (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname))))
+  (load (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname)))
+  #+clisp (load (merge-pathnames "quicklisp/asdf.lisp"  (user-homedir-pathname))))
+

 (redirecting-stdout-to-stderr
+  #+clisp (ql:quickload "uiop")
   (ql:quickload "xmls")
   (ql:quickload "drakma")
   (ql:quickload "babel")
@@ -91,6 +93,7 @@
                        (parse-html-string value)))
             status)))

+(declaim (function remove-comments)) ; duh
 (defun remove-comments (entity)
   (cond
     ((atom entity) entity)
@@ -147,6 +150,61 @@
                 (subseq email (1+ lt) (position #\> email :start lt))))))
   (error "Unexpected email address format: ~S" email))

+(defun iso8601-date (&key (time (get-universal-time)) (timezone 0 timezonep))
+  (multiple-value-bind (se mi ho da mo ye dow dst tz)
+      (if timezonep
+          (decode-universal-time time timezone)
+          (decode-universal-time time))
+    (declare (ignore dow dst))
+    (multiple-value-bind (tzh tzm) (truncate (abs tz))
+      (format nil "~4,'0D-~2,'0D-~2,'0DT~2,'0D:~2,'0D:~2,'0D~:[+~;-~]~4,'0D"
+              ye mo da ho mi se (plusp tz) (+ (* tzh 100) (truncate tzm 1/60))))))
+
+(defun rfc822-date (&key (time (get-universal-time)) (timezone 0 timezonep))
+  (multiple-value-bind (se mi ho da mo ye dow dst tz)
+      (if timezonep
+          (decode-universal-time time timezone)
+          (decode-universal-time time))
+    (declare (ignore dst))
+    (multiple-value-bind (tzh tzm) (truncate (abs tz))
+      (format nil "~[Mon~;Tue~;Wed~;Thi~;Fri~;Sat~;Sun~], ~2,'0D ~
+                   ~[~;Jan~;Feb~;Mar~;Apr~;May~;Jun~;Jul~;Aug~;Sep~;Oct~;Nov~;Dec~] ~
+                   ~4,'0D ~2,'0D:~2,'0D:~2,'0D ~:[+~;-~]~4,'0D"
+              dow da mo ye ho mi se (plusp tz) (+ (* tzh 100) (truncate tzm 1/60))))))
+
+(defun parse-rfc822-date (date)
+  (with-standard-io-syntax
+    (let ((*package* (load-time-value (find-package "KEYWORD"))))
+      (with-input-from-string (in (substitute #\space #\, (substitute #\space #\: date)))
+        (let ((dow (read in))
+              (da (read in))
+              (mo (let ((month (read in)))
+                    (1+ (or (position month #(:jan :feb :mar :apr :may :jun
+                                              :jul :aug :sep :oct :nov :dec))
+                            (error "Invalid month ~S in date ~S" month date)))))
+              (ye (read in))
+              (ho (read in))
+              (mi (read in))
+              (se (read in))
+              (tz (read in)))
+          (declare (ignore dow))
+          (check-type da (integer 1 31))
+          (check-type ye (integer 1900 4000))
+          (check-type ho (integer 0 23))
+          (check-type mi (integer 0 59))
+          (check-type se (integer 0 60))
+          (check-type tz (integer -2400 +2400))
+          (encode-universal-time se mi ho da mo ye
+                                 (multiple-value-bind (tzh tzm) (truncate (abs tz) 100)
+                                   (* (if (plusp tz)
+                                          -1
+                                          +1)
+                                      (+ tzh (/ tzm 60))))))))))
+
+
+(defun rfc822-to-iso8601 (date)
+  (iso8601-date :time (parse-rfc822-date date)))
+
 (defun test/split-email ()
   (assert (equal (multiple-value-list (split-email "Pascal Bourguignon <pjb@informatimago.com>"))
                  '("Pascal Bourguignon" "pjb@informatimago.com")))
@@ -154,17 +212,20 @@
                  '("Pascal Bourguignon" "pjb@informatimago.com")))
   :success)

-(defun full-item (item)
+(defun full-item (item version)
   (let* ((blog-desc   (xmlrep-string-child (xmlrep-find-child-tag "description" item)))
          (link        (xmlrep-string-child (xmlrep-find-child-tag "link"        item)))
          (guid        (xmlrep-string-child (xmlrep-find-child-tag "guid"        item)))
          (author      (xmlrep-string-child (xmlrep-find-child-tag "author"      item)))
+         (title       (xmlrep-string-child (xmlrep-find-child-tag "title"       item)))
+         (category    (xmlrep-string-child (xmlrep-find-child-tag "category"    item)))
+         (pubDate     (xmlrep-string-child (xmlrep-find-child-tag "pubDate"     item)))
          (image-url   (xmlrep-attrib-value "url" (xmlrep-find-child-tag "enclosure" item)))
          (article     (get-resource link)))
-    (multiple-value-bind (title page-author page-desc keywords language document) (unwrap article)
-      (declare (ignore page-desc))
+    (multiple-value-bind (article-title article-author description keywords language document) (unwrap article)
+      (declare (ignore article-title article-author description))
       (multiple-value-bind (author-name author-email) (split-email author)
-        (let ((description
+        (let ((content
                 (with-output-to-string (out)
                   (write-escaping '((#\& . "&amp;")
                                     (#\< . "&lt;")
@@ -185,43 +246,46 @@
                                          ,document))
                                      out))
                                   out))))
-          (print description)
-          `("item" ()
-                   ("dc:identifier" () ,guid)
-                   ("dc:creator"    () ,author)
-                   ("dc:language"   () ,language)
-                   ("dc:format"     () "text/html")
-                   ,@(mapcar (lambda (tag) (xmlrep-find-child-tag tag item))
-                             '("title"
-                               "link"
-                               "guid"
-                               "category"
-                               "pubDate"))
-                   ("description"   () ,description)))))))
+          (ecase version
+            ((2)
+             `("item" ()
+                     ("dc:identifier" () ,guid)
+                     ("dc:creator"    () ,author)
+                     ("dc:language"   () ,language)
+                     ("dc:format"     () "text/html")
+                     ("title"         () ,title)
+                     ("link"          () ,link)
+                     ("guid"          () ,guid)
+                     ("category"      () ,category)
+                     ("pubDate"       () ,pubDate)
+                     ("description"   () ,content)))
+            ((1)
+             `("entry" nil
+                      ("id"        () ,guid)
+                      ("published" () ,(rfc822-to-iso8601 pubDate))
+                      ("updated"   () (iso8601-date))
+                      ("title"   (("type" "text")) ,title)
+                      ("content" (("type" "html")) ,content)
+                      ("link" (("rel" "self")
+                              ("type" "application/atom+xml")
+                              ("href" ,link)))
+                      ("author" ()
+                               ("name" () ,author-name)
+                               ("email" () ,author-email))))))))))


 (defun string-child-tagged (tag element)
   (or (ignore-errors (xmlrep-string-child (xmlrep-find-child-tag tag element)))
       ""))

-(defun rfc822-date (&key (time (get-universal-time)) (timezone 0 timezonep))
-  (multiple-value-bind (se mi ho da mo ye dow dst tz)
-      (if timezonep
-          (decode-universal-time time timezone)
-          (decode-universal-time time))
-    (declare (ignore dst))
-    (multiple-value-bind (tzh tzm) (truncate (abs tz))
-      (format nil "~[Mon~;Tue~;Wed~;Thi~;Fri~;Sat~;Sun~], ~2,'0D ~
-                   ~[Jan~;Feb~;Mar~;Apr~;May~;Jun~;Jul~;Aug~;Sep~;Oct~;Nov~;Dec~] ~
-                   ~4,'0D ~2,'0D:~2,'0D:~2,'0D ~:[+~;-~]~4,'0D"
-              dow da mo ye ho mi se (plusp tz) (+ (* tzh 100) (truncate tzm 1/60))))))
-
-(defun write-full-feed (xml stream)
+(defun write-full-feed (xml version stream)
   (write-line "<?xml version=\"1.0\" encoding=\"utf-8\"?>" stream)
-  (write-line "<?xml-stylesheet type=\"text/xsl\" href=\"css/feed.xsl\"?>" stream)
+  (ecase version
+    ((2) (write-line "<?xml-stylesheet type=\"text/xsl\" href=\"css/feed.xsl\" ?>" stream))
+    ((1) (write-line "<?xml-stylesheet href=\"http://www.blogger.com/styles/atom.css\" type=\"text/css\" ?>" stream)))
   (write-xml xml stream :indent nil))

-(defun full-channel (channel)
+(defun full-channel (channel version)
   (let* ((channel        (list* (car channel) (cadr channel)
                                 (remove-if (function consp) (cddr channel)
                                            :key (function first))))
@@ -240,32 +304,54 @@
          (fulllink       (let ((pos (position #\/ link :from-end t)))
                            (replace-subseq "full" (copy-seq link) pos pos))))
     (declare (ignore language))
-    `("rss" (("version"       "2.0")
-             ("xmlns:atom"    "http://www.w3.org/2005/Atom")
-             ("xmlns:content" "http://purl.org/rss/1.0/modules/content/")
-             ("xmlns:dc"      "http://purl.org/dc/elements/1.1/")
-             ("xmlns:media"   "http://search.yahoo.com/mrss/")
-             ("xmlns:og"      "http://ogp.me/ns#"))
-            ("channel" nil
-                       ("atom:link" (("rel" "self")                             ("href" ,fulllink)))
-                       ("atom:link" (("rel" "alternate") ("title" "Source URL") ("href" ,link)))
-                       ("title"          () ,title)
-                       ("category"       () ,category)
-                       ("copyright"      () ,copyright)
-                       ("pubDate"        () ,pubDate)
-                       ("lastBuildDate"  () ,(rfc822-date))
-                       ("managingEditor" () ,managingEditor)
-                       ("webMaster"      () ,webMaster)
-                       ("link"           () ,link)
-                       ("ttl"            () ,ttl)
-                       ("description"    () ,description)
-                       ,image
-                       ,@(mapcar (function full-item) items)))))
+    (multiple-value-bind (author-name author-email) (split-email managingEditor)
+      (ecase version
+        ((2)
+         `("rss" (("version"       "2.0")
+                  ("xmlns:atom"    "http://www.w3.org/2005/Atom")
+                  ("xmlns:content" "http://purl.org/rss/1.0/modules/content/")
+                  ("xmlns:dc"      "http://purl.org/dc/elements/1.1/")
+                  ("xmlns:media"   "http://search.yahoo.com/mrss/")
+                  ("xmlns:og"      "http://ogp.me/ns#"))
+                 ("channel" nil
+                            ("atom:link" (("rel" "self")                             ("href" ,fulllink)))
+                            ("atom:link" (("rel" "alternate") ("title" "Source URL") ("href" ,link)))
+                            ("title"          () ,title)
+                            ("category"       () ,category)
+                            ("copyright"      () ,copyright)
+                            ("pubDate"        () ,pubDate)
+                            ("lastBuildDate"  () ,(rfc822-date))
+                            ("managingEditor" () ,managingEditor)
+                            ("webMaster"      () ,webMaster)
+                            ("link"           () ,link)
+                            ("ttl"            () ,ttl)
+                            ("description"    () ,description)
+                            ,image
+                            ,@(mapcar (lambda (item) (full-item item version)) items))))
+
+        ((1)
+         `(:feed (("xmlns" "http://www.w3.org/2005/Atom")
+                  ("xmlns:openSearch" "http://a9.com/-/spec/opensearchrss/1.0/")
+                  ("xmlns:blogger" "http://schemas.google.com/blogger/2008")
+                  ("xmlns:georss" "http://www.georss.org/georss")
+                  ("xmlns:gd" "http://schemas.google.com/g/2005")
+                  ("xmlns:thr" "http://purl.org/syndication/thread/1.0"))
+                 (:updated   () ,(rfc822-date))
+                 (:category  (("term" ,category)))
+                 (:title     (("type" "text")) ,title)
+                 (:link      (("href" ,link)
+                              ("type" "application/atom+xml")
+                              ("rel" "self")))
+                 (:author    ()
+                             (:name () ,author-name)
+                             (:email () ,author-email))
+                 ,@(mapcar (lambda (item) (full-item item version)) items)))))))

 (defun fullfeed (input output)
   (let* ((feed           (parse input))
          (channel        (xmlrep-find-child-tag "channel" feed)))
-    (write-full-feed (full-channel channel) output)))
+    (write-full-feed (full-channel channel 1) 1 output)))
+

 (defun main (&optional arguments)
   (unless (and (= 1 (length arguments))
@@ -279,6 +365,15 @@
   (main ext:*args*)
   (ext:exit 0))

+(setf *default-pathname-defaults* #P"/Users/pjb/public_html/sites/com.informatimago.www/blog/")
+(with-open-file (input "feed.xml")
+  (with-open-file (output "fullfeed.xml"
+                          :direction :output
+                          :if-does-not-exist :create
+                          :if-exists :supersede)
+    (fullfeed input output)))
+
+

 (pushnew :testing-script *features*)
 #-(and) (progn
diff --git a/com.informatimago.www/blog/fullfeed.xml b/com.informatimago.www/blog/fullfeed.xml
index cd38756..df121de 100644
--- a/com.informatimago.www/blog/fullfeed.xml
+++ b/com.informatimago.www/blog/fullfeed.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xsl" href="css/feed.xsl"?>
-<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:og="http://ogp.me/ns#"><channel><atom:link rel="self" href="http://www.informatimago.comfull/blog"/><atom:link rel="alternate" title="Source URL" href="http://www.informatimago.com/blog"/><title>Informatimago</title><category>Programming</category><copyright>2015 Pascal J. Bourguignon</copyright><pubDate>Sun, 04 Oct 2015 16:45:27 +0200</pubDate><lastBuildDate>Sat, 24 Nov 2015 11:33:36 +0100</lastBuildDate><managingEditor>pjb+blog@informatimago.com (Pascal J. Bourguignon)</managingEditor><webMaster>pjb+blog@informatimago.com (Pascal J. Bourguignon)</webMaster><link>http://www.informatimago.com/blog</link><ttl>1440</ttl><description>Informatimago Lisp Programming</description><image><title>Informatimago</title><link>http://www.informatimago.com/blog</link><url>http://www.informatimago.com/images/informatimago.jpg</url></image><item><dc:identifier>http://www.informatimago.com/develop/lisp/com/informatimago/clext/pipe-article-en.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>Stream Pipe</title><link>http://www.informatimago.com/develop/lisp/com/informatimago/clext/pipe-article-en.html</link><guid isPermaLink="true">http://www.informatimago.com/develop/lisp/com/informatimago/clext/pipe-article-en.html</guid><category>lisp</category><pubDate>Sun, 04 Oct 2015 16:45:27 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+<?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css" ?>
+<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"><updated>Sun, 25 Oct 2015 23:40:36 +0100</updated><category term="Programming"/><title type="text">Informatimago</title><link href="http://www.informatimago.com/blog" type="application/atom+xml" rel="self"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author><entry><id>http://www.informatimago.com/develop/lisp/com/informatimago/clext/pipe-article-en.html</id><published>2015-10-04T16:45:27+0100</published><updated><iso8601-date/></updated><title type="text">Stream Pipe</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/pipe.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
 &amp;lt;h1&amp;gt;Stream Pipe&amp;lt;/h1&amp;gt;
@@ -172,10 +172,10 @@ git clone https://gitlab.com/com-informatimago/com-informatimago.git informatima
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/botihn/botihn-fr.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>Botihn: un simple robot IRC pour surveiller Hacker News (FR)</title><link>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/botihn/botihn-fr.html</link><guid isPermaLink="true">http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/botihn/botihn-fr.html</guid><category>lisp</category><pubDate>Mon, 27 Apr 2015 12:00:00 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/develop/lisp/com/informatimago/clext/pipe-article-en.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/botihn/botihn-fr.html</id><published>2015-04-27T12:00:00+0100</published><updated><iso8601-date/></updated><title type="text">Botihn: un simple robot IRC pour surveiller Hacker News (FR)</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/botihn.png&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
-&amp;lt;h1&amp;gt;&amp;#195;&amp;#137;criture d&#039;un robot IRC simple&amp;lt;/h1&amp;gt;
+&amp;lt;h1&amp;gt;Botihn: un simple robot IRC pour surveiller Hacker News (FR)&amp;lt;/h1&amp;gt;
 &amp;lt;p&amp;gt;&amp;#201;criture d&#039;un robot IRC simple.&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;mailto:pjb+blog@informatimago.com&amp;quot;&amp;gt;Pascal J. Bourguignon&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;common lisp,lisp,irc,bot,hacker news,drakma,cl-json,cl-irc,cesarum&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
@@ -518,10 +518,10 @@ make
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/articles/raspberrypi/ccl-sur-qemu.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>Clozure CL sur Raspberry Pi (FR)</title><link>http://www.informatimago.com/articles/raspberrypi/ccl-sur-qemu.html</link><guid isPermaLink="true">http://www.informatimago.com/articles/raspberrypi/ccl-sur-qemu.html</guid><category>lisp</category><pubDate>Fri, 20 Dec 2013 23:54:26 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/botihn/botihn-fr.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/articles/raspberrypi/ccl-sur-qemu.html</id><published>2013-12-20T22:54:26+0100</published><updated><iso8601-date/></updated><title type="text">Clozure CL sur Raspberry Pi (FR)</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/raspberry-pi.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
-&amp;lt;h1&amp;gt;&amp;lt;/h1&amp;gt;
+&amp;lt;h1&amp;gt;Clozure CL sur Raspberry Pi (FR)&amp;lt;/h1&amp;gt;
 &amp;lt;p&amp;gt;Installer Clozure CL sur Raspberry Pi.&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;mailto:pjb+blog@informatimago.com&amp;quot;&amp;gt;Pascal J. Bourguignon&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
@@ -607,7 +607,7 @@ ccl/armcl
 &amp;lt;/p&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/sudoku-solver/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>Sudoku Solver</title><link>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/sudoku-solver/index.html</link><guid isPermaLink="true">http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/sudoku-solver/index.html</guid><category>lisp</category><pubDate>Wed, 12 Dec 2012 12:00:00 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/articles/raspberrypi/ccl-sur-qemu.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/sudoku-solver/index.html</id><published>2012-12-12T11:00:00+0100</published><updated><iso8601-date/></updated><title type="text">Sudoku Solver</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/sudoku.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
 &amp;lt;h1&amp;gt;Sudoku Solver&amp;lt;/h1&amp;gt;
@@ -709,7 +709,7 @@ ccl/armcl
   &amp;lt;/pre&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/wang.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>Old LISP programs still run in Common Lisp</title><link>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/wang.html</link><guid isPermaLink="true">http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/wang.html</guid><category>lisp</category><pubDate>Thu, 04 Oct 2012 14:52:16 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/sudoku-solver/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/wang.html</id><published>2012-10-04T14:52:16+0100</published><updated><iso8601-date/></updated><title type="text">Old LISP programs still run in Common Lisp</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/hao-wang.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
 &amp;lt;h1&amp;gt;Old LISP programs still run in Common Lisp&amp;lt;/h1&amp;gt;
@@ -974,7 +974,7 @@ T

 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/intersection-r5rs-common-lisp-emacs-lisp/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>Intersection Common Lisp, Emacs Lisp and R5RS Scheme</title><link>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/intersection-r5rs-common-lisp-emacs-lisp/index.html</link><guid isPermaLink="true">http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/intersection-r5rs-common-lisp-emacs-lisp/index.html</guid><category>lisp</category><pubDate>Wed, 27 May 2011 12:00:00 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/wang.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/intersection-r5rs-common-lisp-emacs-lisp/index.html</id><published>2011-05-27T12:00:00+0100</published><updated><iso8601-date/></updated><title type="text">Intersection Common Lisp, Emacs Lisp and R5RS Scheme</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/intersection.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
 &amp;lt;h1&amp;gt;Intersection Common Lisp, Emacs Lisp and R5RS Scheme&amp;lt;/h1&amp;gt;
@@ -1054,10 +1054,10 @@ bigloo &amp;lt;span class=&amp;quot;comment&amp;quot;&amp;gt;-no-hello&amp;lt;/s
 &amp;lt;/p&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/articles/flpl/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>A Fortran-Compiled List-Processing Language</title><link>http://www.informatimago.com/articles/flpl/index.html</link><guid isPermaLink="true">http://www.informatimago.com/articles/flpl/index.html</guid><category>lisp</category><pubDate>Wed, 19 Jan 2011 01:55:26 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/intersection-r5rs-common-lisp-emacs-lisp/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/articles/flpl/index.html</id><published>2011-01-19T00:55:26+0100</published><updated><iso8601-date/></updated><title type="text">A Fortran-Compiled List-Processing Language</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/IBM704b.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
-&amp;lt;h1&amp;gt;&amp;lt;/h1&amp;gt;
+&amp;lt;h1&amp;gt;A Fortran-Compiled List-Processing Language&amp;lt;/h1&amp;gt;
 &amp;lt;p&amp;gt;A transcription of the April 1959 article &amp;quot;A Fortran-Compiled List-Processing Language&amp;quot; by: H. Gelernter, J. R. Hansen, C. L. Gerberich.&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;mailto:pjb+blog@informatimago.com&amp;quot;&amp;gt;Pascal J. Bourguignon&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
@@ -1083,10 +1083,10 @@ J. R. Hansen, C. L. Gerberich.
 &amp;lt;/p&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/articles/emacs-colors/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>Playing with colors in emacs</title><link>http://www.informatimago.com/articles/emacs-colors/index.html</link><guid isPermaLink="true">http://www.informatimago.com/articles/emacs-colors/index.html</guid><category>lisp</category><pubDate>Wed, 20 Oct 2010 08:16:58 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/articles/flpl/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/articles/emacs-colors/index.html</id><published>2010-10-20T08:16:58+0100</published><updated><iso8601-date/></updated><title type="text">Playing with colors in emacs</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/colors.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
-&amp;lt;h1&amp;gt;&amp;lt;/h1&amp;gt;
+&amp;lt;h1&amp;gt;Playing with colors in emacs&amp;lt;/h1&amp;gt;
 &amp;lt;p&amp;gt;Having fun with color text properties in GNU emacs.&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;mailto:pjb+blog@informatimago.com&amp;quot;&amp;gt;Pascal J. Bourguignon&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
@@ -1165,10 +1165,10 @@ enough that you won&#039;t even see the result of your settings.&amp;lt;/p&amp;g
 &amp;lt;/img&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/articles/life-saver.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>Life Saver</title><link>http://www.informatimago.com/articles/life-saver.html</link><guid isPermaLink="true">http://www.informatimago.com/articles/life-saver.html</guid><category>lisp</category><pubDate>Thu, 14 Oct 2010 23:48:34 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/articles/emacs-colors/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/articles/life-saver.html</id><published>2010-10-14T23:48:34+0100</published><updated><iso8601-date/></updated><title type="text">Life Saver</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/articles/lifesaver.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
-&amp;lt;h1&amp;gt;&amp;lt;/h1&amp;gt;
+&amp;lt;h1&amp;gt;Life Saver&amp;lt;/h1&amp;gt;
 &amp;lt;p&amp;gt;Libraries and tools to help to the Lisp programmer having to write C++ code.&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;mailto:pjb+blog@informatimago.com&amp;quot;&amp;gt;Pascal J. Bourguignon&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
@@ -1616,10 +1616,10 @@ should be included in any application written in C or C++.
 &amp;lt;/img&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/articles/cl-types/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>Graphs of Common Lisp Types</title><link>http://www.informatimago.com/articles/cl-types/index.html</link><guid isPermaLink="true">http://www.informatimago.com/articles/cl-types/index.html</guid><category>lisp</category><pubDate>Sun, 10 Oct 2010, 10:10:10 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/articles/life-saver.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/articles/cl-types/index.html</id><published>2010-10-10T10:10:10+0100</published><updated><iso8601-date/></updated><title type="text">Graphs of Common Lisp Types</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/graph.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
-&amp;lt;h1&amp;gt;&amp;lt;/h1&amp;gt;
+&amp;lt;h1&amp;gt;Graphs of Common Lisp Types&amp;lt;/h1&amp;gt;
 &amp;lt;p&amp;gt;Generate the graph of the Common Lisp type hierarchy in the implementation.&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;mailto:pjb+blog@informatimago.com&amp;quot;&amp;gt;Pascal J. Bourguignon&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
@@ -1725,10 +1725,10 @@ hierarchy of these various implementations:&amp;lt;/p&amp;gt;
 &amp;lt;/p&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/sedit/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>A Simple Sexp Structure Editor</title><link>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/sedit/index.html</link><guid isPermaLink="true">http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/sedit/index.html</guid><category>lisp</category><pubDate>Wed, 08 Sep 2010 12:00:00 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/articles/cl-types/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/sedit/index.html</id><published>2010-09-08T12:00:00+0100</published><updated><iso8601-date/></updated><title type="text">A Simple Sexp Structure Editor</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/sedit.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
-&amp;lt;h1&amp;gt;Sexp Edit&amp;lt;/h1&amp;gt;
+&amp;lt;h1&amp;gt;A Simple Sexp Structure Editor&amp;lt;/h1&amp;gt;
 &amp;lt;p&amp;gt;A simple sexp structure editor to demonstrate how we can edit lisp sources directly.&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;mailto:pjb+blog@informatimago.com&amp;quot;&amp;gt;Pascal J. Bourguignon&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Common Lisp, Lisp, Sexp, Editor, Structure Editor&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
@@ -1858,7 +1858,7 @@ C/IBCL-USER[6]&amp;amp;gt;
 &amp;lt;/p&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/rpsls/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>Rock, Paper, Scissors, Gun, Dynamite, Nuke, Lightning, Devil, Dragon, Alien, Water, Bowl, Air, Moon, Sponge, Wolf, Cockroach, Tree, Man, Woman, Monkey, Snake, Axe, Fire, Sun</title><link>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/rpsls/index.html</link><guid isPermaLink="true">http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/rpsls/index.html</guid><category>lisp</category><pubDate>Sat, 17 Jul 2010 12:00:00 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/sedit/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/rpsls/index.html</id><published>2010-07-17T12:00:00+0100</published><updated><iso8601-date/></updated><title type="text">Rock, Paper, Scissors, Gun, Dynamite, Nuke, Lightning, Devil, Dragon, Alien, Water, Bowl, Air, Moon, Sponge, Wolf, Cockroach, Tree, Man, Woman, Monkey, Snake, Axe, Fire, Sun</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/rps.png&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
 &amp;lt;h1&amp;gt;Rock, Paper, Scissors, Gun, Dynamite, Nuke, Lightning, Devil, Dragon, Alien, Water, Bowl, Air, Moon, Sponge, Wolf, Cockroach, Tree, Man, Woman, Monkey, Snake, Axe, Fire, Sun&amp;lt;/h1&amp;gt;
@@ -1975,10 +1975,10 @@ CL-USER&amp;amp;gt;
   &amp;lt;/pre&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/playtomo-stonedge/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>Playtomo Stonedge Game</title><link>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/playtomo-stonedge/index.html</link><guid isPermaLink="true">http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/playtomo-stonedge/index.html</guid><category>lisp</category><pubDate>Fri, 09 Jul 2010 12:00:00 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/rpsls/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/playtomo-stonedge/index.html</id><published>2010-07-09T12:00:00+0100</published><updated><iso8601-date/></updated><title type="text">Playtomo Stonedge Game</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/stoneedge.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
-&amp;lt;h1&amp;gt;An implementation of the Playtomo Stonedge game, with its solver&amp;lt;/h1&amp;gt;
+&amp;lt;h1&amp;gt;Playtomo Stonedge Game&amp;lt;/h1&amp;gt;
 &amp;lt;p&amp;gt;An implementation of the Playtomo Stonedge Game, and its solver.&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;mailto:pjb+blog@informatimago.com&amp;quot;&amp;gt;Pascal J. Bourguignon&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Common Lisp, Lisp, game, playtomo, stonedge, solver&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
@@ -2910,10 +2910,10 @@ CL-USER&amp;amp;gt;
   &amp;lt;/pre&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/articles/ffn=-n/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>f(f(n)) = -n</title><link>http://www.informatimago.com/articles/ffn=-n/index.html</link><guid isPermaLink="true">http://www.informatimago.com/articles/ffn=-n/index.html</guid><category>lisp</category><pubDate>Tue, 09 Mar 2008 12:00:00 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/playtomo-stonedge/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/articles/ffn=-n/index.html</id><published>2008-03-09T11:00:00+0100</published><updated><iso8601-date/></updated><title type="text">f(f(n)) = -n</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/ffn=-n.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
-&amp;lt;h1&amp;gt;&amp;lt;/h1&amp;gt;
+&amp;lt;h1&amp;gt;f(f(n)) = -n&amp;lt;/h1&amp;gt;
 &amp;lt;p&amp;gt;A function f on 32-bit integers that, when applied twice, negates the integer. f(f(n)) = -n.&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;mailto:pjb+blog@informatimago.com&amp;quot;&amp;gt;Pascal J. Bourguignon&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
@@ -3295,7 +3295,7 @@ C/USER[85]&amp;gt;
 &amp;lt;/p&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/m-expression/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>A Parser for M-Expressions</title><link>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/m-expression/index.html</link><guid isPermaLink="true">http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/m-expression/index.html</guid><category>lisp</category><pubDate>Thu, 28 Sep 2006 12:00:00 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/articles/ffn=-n/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/m-expression/index.html</id><published>2006-09-28T12:00:00+0100</published><updated><iso8601-date/></updated><title type="text">A Parser for M-Expressions</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/m-expr-mccarthy.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
 &amp;lt;h1&amp;gt;A Parser for M-Expressions&amp;lt;/h1&amp;gt;
@@ -3420,10 +3420,10 @@ NIL

 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/articles/interleave/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>Interleave</title><link>http://www.informatimago.com/articles/interleave/index.html</link><guid isPermaLink="true">http://www.informatimago.com/articles/interleave/index.html</guid><category>lisp</category><pubDate>Mon, 26 Aug 2006 12:00:00 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/m-expression/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/articles/interleave/index.html</id><published>2006-08-26T12:00:00+0100</published><updated><iso8601-date/></updated><title type="text">Interleave</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/interleave.png&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
-&amp;lt;h1&amp;gt;&amp;lt;/h1&amp;gt;
+&amp;lt;h1&amp;gt;Interleave&amp;lt;/h1&amp;gt;
 &amp;lt;p&amp;gt;Implementation in Common Lisp of an algorithm to compute &amp;quot;interleave&amp;quot; and &amp;quot;deinterleave&amp;quot; permutations.&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;mailto:pjb+blog@informatimago.com&amp;quot;&amp;gt;Pascal J. Bourguignon&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
@@ -3637,10 +3637,10 @@ Graphviz&amp;lt;/a&amp;gt; from .dot files generated by &amp;lt;a href=&amp;quot
 &amp;lt;/p&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/ibcl/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>Image Based Development</title><link>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/ibcl/index.html</link><guid isPermaLink="true">http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/ibcl/index.html</guid><category>lisp</category><pubDate>Thu, 04 May 2006 12:00:00 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/articles/interleave/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/ibcl/index.html</id><published>2006-05-04T12:00:00+0100</published><updated><iso8601-date/></updated><title type="text">Image Based Development</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/interlisp-xerox.gif&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
-&amp;lt;h1&amp;gt;Common Lisp - Image Based Development&amp;lt;/h1&amp;gt;
+&amp;lt;h1&amp;gt;Image Based Development&amp;lt;/h1&amp;gt;
 &amp;lt;p&amp;gt;An utility to ease development in a Common Lisp image.&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;mailto:pjb+blog@informatimago.com&amp;quot;&amp;gt;Pascal J. Bourguignon&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Common Lisp, Lisp, Lisp Image, Image Based Common Lisp, IBCL&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
@@ -3765,10 +3765,10 @@ cl-user&amp;amp;gt;
 &amp;lt;/p&amp;gt;
 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/brainfuck/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>Brainfuck</title><link>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/brainfuck/index.html</link><guid isPermaLink="true">http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/brainfuck/index.html</guid><category>lisp</category><pubDate>Mon, 11 Sep 2005 12:00:00 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/ibcl/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/brainfuck/index.html</id><published>2005-09-11T12:00:00+0100</published><updated><iso8601-date/></updated><title type="text">Brainfuck</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/brainfuck.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
-&amp;lt;h1&amp;gt;Brainfuck in Lisp -- Lisp in Brainfuck&amp;lt;/h1&amp;gt;
+&amp;lt;h1&amp;gt;Brainfuck&amp;lt;/h1&amp;gt;
 &amp;lt;p&amp;gt;A Brainfuck implementation.&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;mailto:pjb+blog@informatimago.com&amp;quot;&amp;gt;Pascal J. Bourguignon&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Brainfuck, Common Lisp, Lisp, virtual machine, compiler, emulator&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
@@ -3843,10 +3843,10 @@ cl-user&amp;amp;gt;

 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/aim-8/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>The original LISP</title><link>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/aim-8/index.html</link><guid isPermaLink="true">http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/aim-8/index.html</guid><category>lisp</category><pubDate>Sun, 24 Oct 2004 12:00:00 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/brainfuck/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/aim-8/index.html</id><published>2004-10-24T12:00:00+0100</published><updated><iso8601-date/></updated><title type="text">The original LISP</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/aim-8-mccarthy.gif&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
-&amp;lt;h1&amp;gt;The Original LISP&amp;lt;/h1&amp;gt;
+&amp;lt;h1&amp;gt;The original LISP&amp;lt;/h1&amp;gt;
 &amp;lt;p&amp;gt;An implementation of the Original LISP in the AIM-8,
     including a transcription of said memo.&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;mailto:pjb+blog@informatimago.com&amp;quot;&amp;gt;Pascal J. Bourguignon&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
@@ -4019,10 +4019,10 @@ Bye.

 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item><item><dc:identifier>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/basic/index.html</dc:identifier><dc:creator>pjb+blog@informatimago.com (Pascal J. Bourguignon)</dc:creator><dc:language>en</dc:language><dc:format>text/html</dc:format><title>BASIC</title><link>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/basic/index.html</link><guid isPermaLink="true">http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/basic/index.html</guid><category>lisp</category><pubDate>Mon, 19 May 2003 12:00:00 +0200</pubDate><description>&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/aim-8/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry><entry><id>http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/basic/index.html</id><published>2003-05-19T12:00:00+0100</published><updated><iso8601-date/></updated><title type="text">BASIC</title><content type="html">&amp;lt;div class=&amp;quot;blog&amp;quot;&amp;gt;
 &amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;
 &amp;lt;img src=&amp;quot;http://www.informatimago.com/blog/dartmouth-basic.jpg&amp;quot; height=&amp;quot;100px&amp;quot; class=&amp;quot;floatRight&amp;quot;&amp;gt;&amp;lt;/img&amp;gt;
-&amp;lt;h1&amp;gt;A Quick, Dirty and Ugly BASIC implemented in Common Lisp&amp;lt;/h1&amp;gt;
+&amp;lt;h1&amp;gt;BASIC&amp;lt;/h1&amp;gt;
 &amp;lt;p&amp;gt;A Quick, Dirty and Ugly Basic interpreter&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;mailto:pjb+blog@informatimago.com&amp;quot;&amp;gt;Pascal J. Bourguignon&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;BASIC, Common Lisp, Lisp&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;
@@ -4101,4 +4101,4 @@ Bye.

 &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
-</description></item></channel></rss>
\ No newline at end of file
+</content><link rel="self" type="application/atom+xml" href="http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/basic/index.html"/><author><name>Pascal J. Bourguignon</name><email>pjb+blog@informatimago.com</email></author></entry></feed>
\ No newline at end of file
diff --git a/com.informatimago.www/default.css b/com.informatimago.www/default.css
index faa6665..5f51dfc 100644
--- a/com.informatimago.www/default.css
+++ b/com.informatimago.www/default.css
@@ -1,12 +1,8 @@
 /* kindly stolen from http://www.stud.uni-karlsruhe.de/~unk6/style.css */
 H1, H2, H3 { font-family: sans-serif; }
 /* H1 { text-align: center; } */
-A { text-decoration: none; }
 ADDRESS { display: block; text-align: right; }

-/* CLIM style */
-A       { margin: -3px; padding: 0 3px; }
-A:hover { margin: -3px; padding: 0 2px; border: 1px solid black; }


 html, body {
@@ -15,6 +11,9 @@ html, body {
 	font-family: sans-serif;
 }

+/* A       { margin: -3px; padding: 0 3px; text-decoration: none; } */
+/* A:hover { margin: -3px; padding: 0 2px; border: 1px solid black; } */
+
 a:link {
  	color: #1f00ff;
 	background-color: transparent;
@@ -28,11 +27,42 @@ a:visited {
 }

 a:hover {
- 	color: #9900dd;
+ 	color: #4020ff;
 	background-color: transparent;
 	text-decoration: none;
 }

+/* a.button { */
+/*     display: block; */
+/*     height: 20px; */
+/*     width: auto; */
+/*     border: 1px solid #000; */
+/*      */
+  /* font: bold 11px Arial; */
+  /* text-decoration: none; */
+  /* background-color: #EEEEEE; */
+  /* color: #333333; */
+  /* padding: 2px 6px 2px 6px; */
+  /* border-top: 1px solid #CCCCCC; */
+  /* border-right: 1px solid #333333; */
+  /* border-bottom: 1px solid #333333; */
+  /* border-left: 1px solid #CCCCCC; */
+/* } */
+
+.button {
+    -webkit-border-radius: 4px;
+    -moz-border-radius: 4px;
+    border-radius: 4px;
+    border: solid 1px #20538D;
+    padding: 3px 5px 2px 5px;
+    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);
+    -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 1px rgba(0, 0, 0, 0.2);
+    -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 1px rgba(0, 0, 0, 0.2);
+    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 1px rgba(0, 0, 0, 0.2);
+    background: #4479BA;
+    color: #ccc;
+    text-decoration: none;
+}
 .center {
 	text-align: center;
 }
@@ -129,11 +159,14 @@ div.copyright {
 	vertical-align: text-top;
 }

-/* code, pre { */
-/*   font-size: 0.9em */
-/*   font-family: 'Courier New', Courier, Fixed; */
-/* } */
-code, pre {
+code {
+    font-size: 0.9em;
+    font-family: 'Courier New', Courier, Fixed;
+}
+
+pre {
+    font-size: 0.9em;
+    font-family: 'Courier New', Courier, Fixed;
     padding-left: 5px;
     padding-right: 5px;
     padding-top: 5px;
@@ -141,17 +174,18 @@ code, pre {
     color: #44ff44;
     background-color: black;
 }
+
 pre.text {
     color:black;
     background-color:white;
 }

-
 .code {
-    color: #00ff00;
-    background-color: #000000;
+    color: #44ff44;
+    background-color: black;
 }

+
 .cl-function {
     /* font-lock-cl-function-face */
     color: #1e90ff;
diff --git a/com.informatimago.www/develop/abalone/index.html b/com.informatimago.www/develop/abalone/index.html
index 418874b..58e8246 100644
--- a/com.informatimago.www/develop/abalone/index.html
+++ b/com.informatimago.www/develop/abalone/index.html
@@ -21,11 +21,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../../linux/emacs-on-user-mode-linux.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
- <A HREF="../mtel/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../../linux/emacs-on-user-mode-linux.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../mtel/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -112,11 +112,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../../linux/emacs-on-user-mode-linux.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
- <A HREF="../mtel/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../../linux/emacs-on-user-mode-linux.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../mtel/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->
   <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/develop/aliases_helper/index.html b/com.informatimago.www/develop/aliases_helper/index.html
index a89a003..ad9073b 100644
--- a/com.informatimago.www/develop/aliases_helper/index.html
+++ b/com.informatimago.www/develop/aliases_helper/index.html
@@ -16,11 +16,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../sms/index.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
- <A HREF="../pic-merge-diff3/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../sms/index.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../pic-merge-diff3/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -267,6 +267,10 @@ execute /bin/mail -s &#39;List Aliases&#39; informat &lt; /var/lists/aliases



+
+
+
+
 ).
        <p>You may get the source of <code>aliases_helper</code> from:</P>
 <p><br></p>
@@ -293,11 +297,11 @@ execute /bin/mail -s &#39;List Aliases&#39; informat &lt; /var/lists/aliases
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../sms/index.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
- <A HREF="../pic-merge-diff3/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../sms/index.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../pic-merge-diff3/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->
   <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/develop/cirrus/index.html b/com.informatimago.www/develop/cirrus/index.html
index 66bbf98..e00136b 100644
--- a/com.informatimago.www/develop/cirrus/index.html
+++ b/com.informatimago.www/develop/cirrus/index.html
@@ -19,11 +19,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../squeak/index.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
- <A HREF="../gnustep/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../squeak/index.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../gnustep/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -150,11 +150,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../squeak/index.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
- <A HREF="../gnustep/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../squeak/index.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../gnustep/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->
   <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/develop/emacs/index.html b/com.informatimago.www/develop/emacs/index.html
index 2e70f55..03aa44b 100644
--- a/com.informatimago.www/develop/emacs/index.html
+++ b/com.informatimago.www/develop/emacs/index.html
@@ -19,11 +19,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../lisp/com/informatimago/small-cl-pgms/botihn/botihn-fr.html">Previous</a> |
- <A HREF="../../index.html">Up</a> |
- <A HREF="../../articles/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../lisp/com/informatimago/small-cl-pgms/botihn/botihn-fr.html">Previous</a> |
+ <A CLASS="button" HREF="../../index.html">Up</a> |
+ <A CLASS="button" HREF="../../articles/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -299,11 +299,11 @@ or with <a href="https://gitlab.com/com-informatimago/emacs">gitlab</a>.</p>
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../lisp/com/informatimago/small-cl-pgms/botihn/botihn-fr.html">Previous</a> |
- <A HREF="../../index.html">Up</a> |
- <A HREF="../../articles/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../lisp/com/informatimago/small-cl-pgms/botihn/botihn-fr.html">Previous</a> |
+ <A CLASS="button" HREF="../../index.html">Up</a> |
+ <A CLASS="button" HREF="../../articles/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->
   <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/develop/gnustep/index.html b/com.informatimago.www/develop/gnustep/index.html
index dccfc08..42c05ef 100644
--- a/com.informatimago.www/develop/gnustep/index.html
+++ b/com.informatimago.www/develop/gnustep/index.html
@@ -19,11 +19,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../cirrus/index.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
- <A HREF="../patches/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../cirrus/index.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../patches/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -176,6 +176,10 @@ useful when invoked from a script.



+
+
+
+
 ).</P>
 <p><br></p>
 <TABLE BORDER="1" WIDTH="95%" SUMMARY="Download sources">
@@ -500,11 +504,11 @@ useful when invoked from a script.
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../cirrus/index.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
- <A HREF="../patches/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../cirrus/index.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../patches/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->
   <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.html-generator.html.html b/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.html-generator.html.html
index 725207e..e6aec50 100644
--- a/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.html-generator.html.html
+++ b/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.html-generator.html.html
@@ -127,7 +127,7 @@ the Common Lisp standard character set and HTML default character set.</pre>
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">The stream used by WITH-HTML-OUTPUT and WRITE-HTML by default.</pre>
-<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TERMINAL-IO* #x30200036D38D&gt;</tt></blockquote><a name="*HTML-VERSION*"></a>
+<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TERMINAL-IO* #x30200036D69D&gt;</tt></blockquote><a name="*HTML-VERSION*"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
diff --git a/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.invoice.invoice.html b/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.invoice.invoice.html
index b1efbab..01d33a4 100644
--- a/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.invoice.invoice.html
+++ b/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.invoice.invoice.html
@@ -52,7 +52,7 @@ License:
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">The readtable used to read currencies.</pre>
-<blockquote>Initial value: <tt>#&lt;READTABLE #x3020014AB3AD&gt;</tt></blockquote><a name="*INVOICE-SET*"></a>
+<blockquote>Initial value: <tt>#&lt;READTABLE #x3020014CC5AD&gt;</tt></blockquote><a name="*INVOICE-SET*"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
diff --git a/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp-reader.reader.html b/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp-reader.reader.html
index 8c9a0bc..5b3c735 100644
--- a/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp-reader.reader.html
+++ b/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp-reader.reader.html
@@ -137,7 +137,7 @@ Lisp printer (e.g., see the  function READTABLE-CASE).

 URL: &lt;<a href="http://www.lispworks.com/documentation/HyperSpec/Body/v_rdtabl.htm">http://www.lispworks.com/documentation/HyperSpec/Body/v_rdtabl.htm</a>&gt;
 </pre>
-<blockquote>Initial value: <tt>#&lt;READTABLE #x30200088E73D&gt;</tt></blockquote><a name="COPY-READTABLE"></a>
+<blockquote>Initial value: <tt>#&lt;READTABLE #x30200089D69D&gt;</tt></blockquote><a name="COPY-READTABLE"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
diff --git a/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp-text.source-text.html b/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp-text.source-text.html
index 3cdd5f2..bf61ab1 100644
--- a/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp-text.source-text.html
+++ b/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp-text.source-text.html
@@ -35,7 +35,7 @@
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">The source readtable.</pre>
-<blockquote>Initial value: <tt>#&lt;READTABLE #x30200097B48D&gt;</tt></blockquote><a name="*SOURCE-SIGNAL-ERRORS*"></a>
+<blockquote>Initial value: <tt>#&lt;READTABLE #x302000977C0D&gt;</tt></blockquote><a name="*SOURCE-SIGNAL-ERRORS*"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
diff --git a/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp.stepper.html b/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp.stepper.html
index 7236f5e..894ea81 100644
--- a/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp.stepper.html
+++ b/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp.stepper.html
@@ -195,7 +195,7 @@ See the source file for details.
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">interactive debugging stream</pre>
-<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TERMINAL-IO* #x30200036D30D&gt;</tt></blockquote><a name="*DEBUGGER-HOOK*"></a>
+<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TERMINAL-IO* #x30200036D61D&gt;</tt></blockquote><a name="*DEBUGGER-HOOK*"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
@@ -216,7 +216,7 @@ See the source file for details.
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">error output stream</pre>
-<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TERMINAL-IO* #x30200036D34D&gt;</tt></blockquote><a name="*FEATURES*"></a>
+<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TERMINAL-IO* #x30200036D65D&gt;</tt></blockquote><a name="*FEATURES*"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
@@ -233,7 +233,7 @@ See the source file for details.
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">counter for generating unique GENSYM symbols</pre>
-<blockquote>Initial value: <tt>25686</tt></blockquote><a name="*LOAD-PATHNAME*"></a>
+<blockquote>Initial value: <tt>55218</tt></blockquote><a name="*LOAD-PATHNAME*"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
@@ -434,7 +434,7 @@ integers and rational numbers.</pre>
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">query I/O stream</pre>
-<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TERMINAL-IO* #x30200036D30D&gt;</tt></blockquote>
+<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TERMINAL-IO* #x30200036D61D&gt;</tt></blockquote>
 <p><b>*RANDOM-STATE*</b><i class="undocumented"></i></p><a name="*READ-BASE*"></a>
 <table border="0" width="100%">
 <tr>
@@ -469,7 +469,7 @@ integers and rational numbers.</pre>
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">default input stream</pre>
-<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TERMINAL-IO* #x30200036D4ED&gt;</tt></blockquote><a name="*STANDARD-OUTPUT*"></a>
+<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TERMINAL-IO* #x30200036D7FD&gt;</tt></blockquote><a name="*STANDARD-OUTPUT*"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
@@ -477,7 +477,7 @@ integers and rational numbers.</pre>
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">default output stream</pre>
-<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TERMINAL-IO* #x30200036D38D&gt;</tt></blockquote><a name="*STEP-MAX-TRACE-DEPTH*"></a>
+<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TERMINAL-IO* #x30200036D69D&gt;</tt></blockquote><a name="*STEP-MAX-TRACE-DEPTH*"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
@@ -550,7 +550,7 @@ until a break-point is reached.
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">The stream where the stepper traces are written to.</pre>
-<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TRACE-OUTPUT* #x30200160C04D&gt;</tt></blockquote><a name="*TERMINAL-IO*"></a>
+<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TRACE-OUTPUT* #x30200161944D&gt;</tt></blockquote><a name="*TERMINAL-IO*"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
@@ -558,7 +558,7 @@ until a break-point is reached.
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">terminal I/O stream</pre>
-<blockquote>Initial value: <tt>#&lt;ECHOING-TWO-WAY-STREAM input #&lt;BASIC-CHARACTER-INPUT-STREAM UTF-8 (PIPE/0) #x30200036E50D&gt;, output #&lt;BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (TTY/1) #x30200036E07D&gt; #x3020003734CD&gt;</tt></blockquote><a name="*TRACE-OUTPUT*"></a>
+<blockquote>Initial value: <tt>#&lt;ECHOING-TWO-WAY-STREAM input #&lt;BASIC-CHARACTER-INPUT-STREAM UTF-8 (PIPE/0) #x30200036E81D&gt;, output #&lt;BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (TTY/1) #x30200036E38D&gt; #x302000373A4D&gt;</tt></blockquote><a name="*TRACE-OUTPUT*"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
@@ -566,7 +566,7 @@ until a break-point is reached.
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">trace output stream</pre>
-<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TERMINAL-IO* #x30200036D38D&gt;</tt></blockquote><a name="+"></a>
+<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TERMINAL-IO* #x30200036D69D&gt;</tt></blockquote><a name="+"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
diff --git a/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp.stepper.internal.html b/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp.stepper.internal.html
index aa619dd..4617875 100644
--- a/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp.stepper.internal.html
+++ b/com.informatimago.www/develop/lisp/doc/com.informatimago.common-lisp.lisp.stepper.internal.html
@@ -122,7 +122,7 @@ until a break-point is reached.
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">The stream where the stepper traces are written to.</pre>
-<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TRACE-OUTPUT* #x30200160C04D&gt;</tt></blockquote><a name="DID-BIND"></a>
+<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *TRACE-OUTPUT* #x30200161944D&gt;</tt></blockquote><a name="DID-BIND"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
diff --git a/com.informatimago.www/develop/lisp/doc/com.informatimago.lispdoc.utility.html b/com.informatimago.www/develop/lisp/doc/com.informatimago.lispdoc.utility.html
index 628465c..1ea0da5 100644
--- a/com.informatimago.www/develop/lisp/doc/com.informatimago.lispdoc.utility.html
+++ b/com.informatimago.www/develop/lisp/doc/com.informatimago.lispdoc.utility.html
@@ -35,7 +35,7 @@ License:
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
-<div class="symbol">(<b>appendf</b> g28056 &amp;rest args)</div></td>
+<div class="symbol">(<b>appendf</b> g53323 &amp;rest args)</div></td>
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>macro</i></div></td></tr></table>
 <pre class="docstring">Append onto list</pre>
diff --git a/com.informatimago.www/develop/lisp/doc/com.informatimago.objective-cl.html b/com.informatimago.www/develop/lisp/doc/com.informatimago.objective-cl.html
index f7e6b37..8bceb03 100644
--- a/com.informatimago.www/develop/lisp/doc/com.informatimago.objective-cl.html
+++ b/com.informatimago.www/develop/lisp/doc/com.informatimago.objective-cl.html
@@ -32,7 +32,7 @@ read Objective-C bracketed expressions, and @"" strings.
 <pre class="docstring">The Objective-CL readtable, used to read Objective-CL expressions
 (possibly including Objective-CL forms starting with #\[ or #\@).
 Basically the same as *lisp-readtable*, but with readtable-case set to :preserve.</pre>
-<blockquote>Initial value: <tt>#&lt;READTABLE #x3020034F9DCD&gt;</tt></blockquote>
+<blockquote>Initial value: <tt>#&lt;READTABLE #x3020034F656D&gt;</tt></blockquote>
 <p><b>*OBJECTIVE-CL-READTABLE*</b><i class="undocumented"></i></p>
 <p><b>@</b><i class="undocumented"></i></p><a name="DISABLE-OBJCL-READER-MACROS"></a>
 <table border="0" width="100%">
diff --git a/com.informatimago.www/develop/lisp/doc/com.informatimago.tools.script.html b/com.informatimago.www/develop/lisp/doc/com.informatimago.tools.script.html
index afb724a..d4c9a84 100644
--- a/com.informatimago.www/develop/lisp/doc/com.informatimago.tools.script.html
+++ b/com.informatimago.www/develop/lisp/doc/com.informatimago.tools.script.html
@@ -37,7 +37,7 @@ otherwise we fallback to *PROGRAM-NAME*.</pre>
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">The stream where the error  stream of the shell commands is set to.</pre>
-<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *ERROR-OUTPUT* #x3020018EA92D&gt;</tt></blockquote><a name="*SHELL-OUTPUT*"></a>
+<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *ERROR-OUTPUT* #x3020018F5D6D&gt;</tt></blockquote><a name="*SHELL-OUTPUT*"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
@@ -45,7 +45,7 @@ otherwise we fallback to *PROGRAM-NAME*.</pre>
 <td valign="top" align="right" width="200px">
 <div class="kind"><i>variable</i></div></td></tr></table>
 <pre class="docstring">The stream where the output stream of the shell commands is set to.</pre>
-<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *STANDARD-OUTPUT* #x3020018EAB8D&gt;</tt></blockquote><a name="*VERBOSE*"></a>
+<blockquote>Initial value: <tt>#&lt;SYNONYM-STREAM to *STANDARD-OUTPUT* #x3020018F5FCD&gt;</tt></blockquote><a name="*VERBOSE*"></a>
 <table border="0" width="100%">
 <tr>
 <td valign="top" align="left">
diff --git a/com.informatimago.www/develop/lisp/index.html b/com.informatimago.www/develop/lisp/index.html
index 490be30..44804db 100644
--- a/com.informatimago.www/develop/lisp/index.html
+++ b/com.informatimago.www/develop/lisp/index.html
@@ -19,12 +19,12 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../../index.html">Previous</a> |
- <A HREF="../../index.html">Up</a> |
- <A HREF="doc/index.html">Down</a> |
- <A HREF="doc/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../../index.html">Previous</a> |
+ <A CLASS="button" HREF="../../index.html">Up</a> |
+ <A CLASS="button" HREF="why-biobike.html">Down</a> |
+ <A CLASS="button" HREF="why-biobike.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -182,12 +182,12 @@ but first try to do them yourself!</p>
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../../index.html">Previous</a> |
- <A HREF="../../index.html">Up</a> |
- <A HREF="doc/index.html">Down</a> |
- <A HREF="doc/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../../index.html">Previous</a> |
+ <A CLASS="button" HREF="../../index.html">Up</a> |
+ <A CLASS="button" HREF="why-biobike.html">Down</a> |
+ <A CLASS="button" HREF="why-biobike.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->
 <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/develop/lisp/why-biobike.html b/com.informatimago.www/develop/lisp/why-biobike.html
new file mode 100644
index 0000000..75a2f59
--- /dev/null
+++ b/com.informatimago.www/develop/lisp/why-biobike.html
@@ -0,0 +1,219 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<!--
+;;; +=========================================================================+
+;;; | Copyright (c) 2002, 2003, 2004 JP Massar, Jeff Shrager, Mike Travers    |
+;;; |                                                                         |
+;;; | Permission is hereby granted, free of charge, to any person obtaining   |
+;;; | a copy of this software and associated documentation files (the         |
+;;; | "Software"), to deal in the Software without restriction, including     |
+;;; | without limitation the rights to use, copy, modify, merge, publish,     |
+;;; | distribute, sublicense, and/or sell copies of the Software, and to      |
+;;; | permit persons to whom the Software is furnished to do so, subject to   |
+;;; | the following conditions:                                               |
+;;; |                                                                         |
+;;; | The above copyright notice and this permission notice shall be included |
+;;; | in all copies or substantial portions of the Software.                  |
+;;; |                                                                         |
+;;; | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,         |
+;;; | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF      |
+;;; | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  |
+;;; | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY    |
+;;; | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,    |
+;;; | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE       |
+;;; | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                  |
+;;; +=========================================================================+
+-->
+<html>
+  <head>
+    <link rel="icon"          href="/favicon.ico" type="image/x-icon">
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
+    <link rel="stylesheet"    href="/default.css"  type="text/css">
+    <title>Why Lisp?</title>
+    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+    <META NAME="author"             CONTENT="Jeff Shrager">
+    <META HTTP-EQUIV="Description"
+          NAME="description"        CONTENT="Jeff Shrager Why Lisp article.">
+    <META NAME="keywords"           CONTENT="Common Lisp,lisp,software,logiciel,programas,programming language,language,development,développement,desarrollo">
+
+    <style type="text/css">
+body {
+  margin-top:0 !important;
+  padding-top:0 !important;
+  min-width:800px !important;
+}
+    </style>
+  </head>
+  <body>
+
+<!--TOP-BEGIN-->
+<!-- This section is automatically generated by html-update, -->
+<!-- from data in 'node.el'.    Please, do not edit it here. -->
+<DIV CLASS="TOP"></DIV>
+<!--TOP-END-->
+<!--MENU-BEGIN-->
+<!-- This section is automatically generated by html-update, -->
+<!-- from data in 'node.el'.    Please, do not edit it here. -->
+<DIV CLASS="MENU"><HR><P>|
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="index.html">Previous</a> |
+ <A CLASS="button" HREF="index.html">Up</a> |
+ <A CLASS="button" HREF="doc/index.html">Next</a> |
+</P><HR></DIV>
+<!--MENU-END-->
+
+<div class="document" id="why-lisp-biobike">
+<h2><b>Why Lisp?</h2>
+</b></p><p>
+</p></center>
+
+<p align="right">Copyright (c) 2003-2006 by The BioBike Team (contact
+  <a href="https://web.archive.org/web/20120422022427/http://nostoc.stanford.edu/jeff/personal/index.html">
+    Jeff Shrager</a> for more information)</p>
+
+<p><p>
+
+The question that we are most frequently asked by engineers and computer scientists is: <i>"Why did you base
+BioBike on Lisp, instead of some 'modern' programming language, like
+C/C++, Java, PERL, or Python; Isn't Lisp an archaic, dead, and anyway
+impossibly complex programming language?"</i>
+
+<p>
+
+First, Lisp is far from archaic or dead!  Although it is one of the
+oldest programming languages (invented in the early 1960s, along with
+Fortran!), it is still widely used in the Artificial Intelligence
+community, and is the first programming language taught in intro
+computer science courses at many top universities, including MIT and
+Berkeley. (Actually, what's taught is usually Scheme, a dialect of
+Lisp; Common Lisp can be thought of as an industrial form of Scheme.)
+
+<p>
+
+Lisp is also the <i>only</i> programming language with certain very
+useful features, such as true macros, that are
+<i>critical</i> when you are inventing a new programming language,
+like BioBike, because they enable you to extend Lisp's syntax<sup>1</sup>.  Lisp
+is the most natural language in which to write complex 'symbolic
+reasoning' programs, which are the heart of BioBike's novel
+capabilities.  Symbolic reasoning involves manipulating conceptual
+objects, such as 'genes', 'ontologies', 'pathway models', and the
+like, and Lisp was built specifically for this sort of manipulation
+(although not specifically for biology at the time).  This is why it
+has remained popular in the most advanced computing circles, esp. in
+Artificial Intelligence.
+
+<p>
+
+As for being impossibly complex, it's not any more complex than any
+other programming language.  (Those who don't know Chinese think it's
+hard too, but the Chinese don't!)  Many other 'modern' programming
+languages have been based directly on Lisp; Python, for example, is
+just a near approximation to Lisp.  (See Peter Norvig's comparison
+<a href="http://www.norvig.com/python-lisp.html">here</a>.)  One of us
+(Shrager) teaches Lisp to both programmers and non-programmers
+regularly.  Lisp is often taught to non-programmers because it has
+very simple syntax (requiring only the balancing of parentheses), and
+deals naturally with complex symbolic computations (as above), so
+musicians, writers, and others who want to write programs that deal
+with complex structured knowledge find Lisp easy and powerful.  We
+think that biologists will as well.
+
+<p>
+
+As for C/C++/Java, those languages are of a very different sort than
+Lisp and Python (and to a large extent PERL). Lisp, et al., are
+essentially interactive programming languages; You write small concise
+programs that do small concise things, and test them in small concise
+ways.  C and friends are designed for writing large,
+industrial-strength programs, and have lots of features -- such as
+required type declarations -- that make them
+run FAST, but which at the same time make them difficult to use for
+small, concise applications.  (Lisp, by the way, is no slouch in the
+area of speed! It has decades of excellent compiler development
+underneath that makes well-written Lisp code run at nearly the speed
+of C (better than half as fast, in many cases).  Of course,
+you can write a slow program in <i>any</i> programming language!
+Also, as pattern matching is a big thing these days, it's interesting
+to note that a PERL-compatible pattern matcher written entirely in
+Lisp is as fast as, and in some cases <i>faster</i> than, the PERL
+pattern matcher itself!  Code and comparisons <a
+href="http://www.weitz.de/cl-ppcre/">here</a>.)  We use this pattern
+matcher.
+
+<p>
+
+Bottom line: Why Lisp?  <i>Because it's the right language for the
+job!</i>
+
+<p>
+Other essays along similar lines:
+<ul>
+<li>
+<a href="http://www.norvig.com/paip-preface.html#whylisp">
+'Why Lisp? Why Common Lisp? </a> by
+<a href="http://www.norvig.com/index.html"> Peter Norvig</a> (currently at Google)
+<li>
+<a href="http://www.norvig.com/python-lisp.html">
+Python for Lisp Programmers</a> by
+<a href="http://www.norvig.com/index.html"> Peter Norvig</a>
+<li>
+<a href="http://www.paulgraham.com/lisp.html">
+Various essays about Lisp and related links</a> by
+<a href="http://www.paulgraham.com/index.html">Paul Graham</a> (developer of Yahoo Stores). <br> He has written extensively comparing Lisp with other programming languages.
+<p>
+</ul>
+
+<p><hr><p>
+
+Notes:
+
+<p>
+
+1. Python, which is more-or-less lisp w/o the parens, is missing
+several critical features to do what we do in BioBike, esp. true
+macros, which enable you to manipulate expressions, create sub
+langauages, and engage in applicative programming. Someday the Python
+crowd will realize that uniform syntax is a good thing, and will
+re-adopt parens (or something like them), and then Python will just be
+Lisp again, and much the better for it!
+
+</blockquote>
+
+</div>
+
+<!--MENU-BEGIN-->
+<!-- This section is automatically generated by html-update, -->
+<!-- from data in 'node.el'.    Please, do not edit it here. -->
+<DIV CLASS="MENU"><HR><P>|
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="index.html">Previous</a> |
+ <A CLASS="button" HREF="index.html">Up</a> |
+ <A CLASS="button" HREF="doc/index.html">Next</a> |
+</P><HR></DIV>
+<!--MENU-END-->
+<!--BOTTOM-BEGIN-->
+<!-- This section is automatically generated by html-update, -->
+<!-- from data in 'node.el'.    Please, do not edit it here. -->
+<DIV CLASS="BOTTOM">
+<hr><code><small>
+ | <a href="http://www.informatimago.com//develop/lisp/why-biobike.html">Mirror on informatimago.com</a>
+ | <a href="http://informatimago.free.fr/i//develop/lisp/why-biobike.html">Mirror on free.fr</a>
+ | </small></code>
+
+<BR><SMALL>
+      <a href="http://validator.w3.org/check?uri=referer"><img
+          src="http://www.w3.org/Icons/valid-html401"
+          alt="Valid HTML 4.01!" height="31" width="88"></a>
+   </SMALL>
+</DIV>
+<!--BOTTOM-END-->
+
+</body>
+</html>
+
+<!--
+     FILE ARCHIVED ON 2:24:27 Apr 22, 2012 AND RETRIEVED FROM THE
+     INTERNET ARCHIVE ON 19:42:38 Oct 25, 2015.
+-->
diff --git a/com.informatimago.www/develop/mtel/index.html b/com.informatimago.www/develop/mtel/index.html
index 613c4b4..29d07a3 100644
--- a/com.informatimago.www/develop/mtel/index.html
+++ b/com.informatimago.www/develop/mtel/index.html
@@ -20,11 +20,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../abalone/index.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
- <A HREF="../squeak/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../abalone/index.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../squeak/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -175,11 +175,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../abalone/index.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
- <A HREF="../squeak/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../abalone/index.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../squeak/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->
   <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/develop/patches/index.html b/com.informatimago.www/develop/patches/index.html
index a42a82d..89b557e 100644
--- a/com.informatimago.www/develop/patches/index.html
+++ b/com.informatimago.www/develop/patches/index.html
@@ -27,10 +27,10 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../gnustep/index.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../gnustep/index.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -335,10 +335,10 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../gnustep/index.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../gnustep/index.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
 </P><HR></DIV>
 <!--MENU-END-->
   <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/develop/pic-merge-diff3/index.html b/com.informatimago.www/develop/pic-merge-diff3/index.html
index 36616e1..015b97a 100644
--- a/com.informatimago.www/develop/pic-merge-diff3/index.html
+++ b/com.informatimago.www/develop/pic-merge-diff3/index.html
@@ -20,11 +20,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../aliases_helper/index.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
- <A HREF="../../linux/rpm-rebuilddb.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../aliases_helper/index.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../../linux/rpm-rebuilddb.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -281,11 +281,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../aliases_helper/index.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
- <A HREF="../../linux/rpm-rebuilddb.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../aliases_helper/index.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../../linux/rpm-rebuilddb.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->
   <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/develop/sms/index.html b/com.informatimago.www/develop/sms/index.html
index 2926a4a..1e09e9f 100644
--- a/com.informatimago.www/develop/sms/index.html
+++ b/com.informatimago.www/develop/sms/index.html
@@ -27,12 +27,12 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../../attic.html">Previous</a> |
- <A HREF="../../attic.html">Up</a> |
- <A HREF="../aliases_helper/index.html">Down</a> |
- <A HREF="../aliases_helper/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../../attic.html">Previous</a> |
+ <A CLASS="button" HREF="../../attic.html">Up</a> |
+ <A CLASS="button" HREF="../aliases_helper/index.html">Down</a> |
+ <A CLASS="button" HREF="../aliases_helper/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -192,12 +192,12 @@ Ukraine       KyivStar              +38067.
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../../attic.html">Previous</a> |
- <A HREF="../../attic.html">Up</a> |
- <A HREF="../aliases_helper/index.html">Down</a> |
- <A HREF="../aliases_helper/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../../attic.html">Previous</a> |
+ <A CLASS="button" HREF="../../attic.html">Up</a> |
+ <A CLASS="button" HREF="../aliases_helper/index.html">Down</a> |
+ <A CLASS="button" HREF="../aliases_helper/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->
 <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/develop/squeak/index.html b/com.informatimago.www/develop/squeak/index.html
index 701ebca..69f64ae 100644
--- a/com.informatimago.www/develop/squeak/index.html
+++ b/com.informatimago.www/develop/squeak/index.html
@@ -19,11 +19,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../mtel/index.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
- <A HREF="../cirrus/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../mtel/index.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../cirrus/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -710,11 +710,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../../toc.html">Contents</a> |
- <A HREF="../../index.html">Home</a> |
- <A HREF="../mtel/index.html">Previous</a> |
- <A HREF="../sms/index.html">Up</a> |
- <A HREF="../cirrus/index.html">Next</a> |
+ <A CLASS="button" HREF="../../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../../index.html">Home</a> |
+ <A CLASS="button" HREF="../mtel/index.html">Previous</a> |
+ <A CLASS="button" HREF="../sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../cirrus/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->
 <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/index.html b/com.informatimago.www/index.html
index 231bdef..4f50964 100644
--- a/com.informatimago.www/index.html
+++ b/com.informatimago.www/index.html
@@ -24,9 +24,9 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="toc.html">Contents</a> |
- <A HREF="develop/lisp/index.html">Down</a> |
- <A HREF="develop/lisp/index.html">Next</a> |
+ <A CLASS="button" HREF="toc.html">Contents</a> |
+ <A CLASS="button" HREF="develop/lisp/index.html">Down</a> |
+ <A CLASS="button" HREF="develop/lisp/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -75,7 +75,7 @@
 <h3>Other links: </h3>
 <ul>
 <li><a target="_blank" href="http://www.gigamonkeys.com/book/introduction-why-lisp.html">Why Lisp?</a></li>
-<li><a target="_blank" href="http://nostoc.stanford.edu/Docs/whylisp.html">Why Lisp?</a></li>
+<li><a target="_blank" href="/develop/lisp/why-biobike.html">Why Lisp?</a></li>
 <li><a target="_blank" href="http://www.defmacro.org/ramblings/lisp.html">The Nature of Lisp</a></li>
 <br>

diff --git a/com.informatimago.www/linux/chrooted-ssh-cvs.html b/com.informatimago.www/linux/chrooted-ssh-cvs.html
index 05c7502..a299bf2 100644
--- a/com.informatimago.www/linux/chrooted-ssh-cvs.html
+++ b/com.informatimago.www/linux/chrooted-ssh-cvs.html
@@ -27,11 +27,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../toc.html">Contents</a> |
- <A HREF="../index.html">Home</a> |
- <A HREF="rpm-rebuilddb.html">Previous</a> |
- <A HREF="../develop/sms/index.html">Up</a> |
- <A HREF="emacs-on-user-mode-linux.html">Next</a> |
+ <A CLASS="button" HREF="../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../index.html">Home</a> |
+ <A CLASS="button" HREF="rpm-rebuilddb.html">Previous</a> |
+ <A CLASS="button" HREF="../develop/sms/index.html">Up</a> |
+ <A CLASS="button" HREF="emacs-on-user-mode-linux.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -226,11 +226,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../toc.html">Contents</a> |
- <A HREF="../index.html">Home</a> |
- <A HREF="rpm-rebuilddb.html">Previous</a> |
- <A HREF="../develop/sms/index.html">Up</a> |
- <A HREF="emacs-on-user-mode-linux.html">Next</a> |
+ <A CLASS="button" HREF="../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../index.html">Home</a> |
+ <A CLASS="button" HREF="rpm-rebuilddb.html">Previous</a> |
+ <A CLASS="button" HREF="../develop/sms/index.html">Up</a> |
+ <A CLASS="button" HREF="emacs-on-user-mode-linux.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->
   <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/linux/emacs-on-user-mode-linux.html b/com.informatimago.www/linux/emacs-on-user-mode-linux.html
index 7f6ee1f..d718b97 100644
--- a/com.informatimago.www/linux/emacs-on-user-mode-linux.html
+++ b/com.informatimago.www/linux/emacs-on-user-mode-linux.html
@@ -21,11 +21,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../toc.html">Contents</a> |
- <A HREF="../index.html">Home</a> |
- <A HREF="chrooted-ssh-cvs.html">Previous</a> |
- <A HREF="../develop/sms/index.html">Up</a> |
- <A HREF="../develop/abalone/index.html">Next</a> |
+ <A CLASS="button" HREF="../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../index.html">Home</a> |
+ <A CLASS="button" HREF="chrooted-ssh-cvs.html">Previous</a> |
+ <A CLASS="button" HREF="../develop/sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../develop/abalone/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -162,11 +162,11 @@ implementation with a FFI  and portable Hemlock.
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../toc.html">Contents</a> |
- <A HREF="../index.html">Home</a> |
- <A HREF="chrooted-ssh-cvs.html">Previous</a> |
- <A HREF="../develop/sms/index.html">Up</a> |
- <A HREF="../develop/abalone/index.html">Next</a> |
+ <A CLASS="button" HREF="../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../index.html">Home</a> |
+ <A CLASS="button" HREF="chrooted-ssh-cvs.html">Previous</a> |
+ <A CLASS="button" HREF="../develop/sms/index.html">Up</a> |
+ <A CLASS="button" HREF="../develop/abalone/index.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->
   <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/linux/rpm-rebuilddb.html b/com.informatimago.www/linux/rpm-rebuilddb.html
index f8dda8c..535afb0 100644
--- a/com.informatimago.www/linux/rpm-rebuilddb.html
+++ b/com.informatimago.www/linux/rpm-rebuilddb.html
@@ -27,11 +27,11 @@
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../toc.html">Contents</a> |
- <A HREF="../index.html">Home</a> |
- <A HREF="../develop/pic-merge-diff3/index.html">Previous</a> |
- <A HREF="../develop/sms/index.html">Up</a> |
- <A HREF="chrooted-ssh-cvs.html">Next</a> |
+ <A CLASS="button" HREF="../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../index.html">Home</a> |
+ <A CLASS="button" HREF="../develop/pic-merge-diff3/index.html">Previous</a> |
+ <A CLASS="button" HREF="../develop/sms/index.html">Up</a> |
+ <A CLASS="button" HREF="chrooted-ssh-cvs.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->

@@ -197,11 +197,11 @@ rpm -q -a
 <!-- This section is automatically generated by html-update, -->
 <!-- from data in 'node.el'.    Please, do not edit it here. -->
 <DIV CLASS="MENU"><HR><P>|
- <A HREF="../toc.html">Contents</a> |
- <A HREF="../index.html">Home</a> |
- <A HREF="../develop/pic-merge-diff3/index.html">Previous</a> |
- <A HREF="../develop/sms/index.html">Up</a> |
- <A HREF="chrooted-ssh-cvs.html">Next</a> |
+ <A CLASS="button" HREF="../toc.html">Contents</a> |
+ <A CLASS="button" HREF="../index.html">Home</a> |
+ <A CLASS="button" HREF="../develop/pic-merge-diff3/index.html">Previous</a> |
+ <A CLASS="button" HREF="../develop/sms/index.html">Up</a> |
+ <A CLASS="button" HREF="chrooted-ssh-cvs.html">Next</a> |
 </P><HR></DIV>
 <!--MENU-END-->
   <!--BOTTOM-BEGIN-->
diff --git a/com.informatimago.www/nodes.el b/com.informatimago.www/nodes.el
index ac94800..db86e57 100644
--- a/com.informatimago.www/nodes.el
+++ b/com.informatimago.www/nodes.el
@@ -61,6 +61,8 @@
 (setq nodes
       '("index.html"
         ("develop/lisp/index.html"
+
+         ("develop/lisp/why-biobike.html")
          ("develop/lisp/doc/index.html")

          ("develop/lisp/com/informatimago/clext/pipe-article-en.html")
diff --git a/com.informatimago.www/toc.html b/com.informatimago.www/toc.html
index 6c4e45e..9896a9e 100644
--- a/com.informatimago.www/toc.html
+++ b/com.informatimago.www/toc.html
@@ -14,6 +14,7 @@
 <li><ol>
 <li><a href="develop/lisp/index.html">Informatimago Common-Lisp Software</a></li>
 <li><ol>
+<li><a href="develop/lisp/why-biobike.html">Why Lisp?</a></li>
 <li><a href="develop/lisp/doc/index.html">Informatimago CL Software</a></li>
 <li><a href="develop/lisp/com/informatimago/clext/pipe-article-en.html">Stream Pipe</a></li>
 <li><a href="develop/lisp/com/informatimago/clext/pipe-article-fr.html">Tuyau de flux</a></li>
ViewGit