;;; zb

(require-library 3e8-html)

;; section with a descriptive header
(define (section/hdr name id hdr . body)
  `(div (@ (class "section")
           (id ,id))
        (h3 ,name)
        ,hdr
        (table ,@body)))
(define (article name . desc)
  `(tr (td (@ (class "article"))
           ,name)
       (td ,@desc)))

;;; main

(render-page
 "3e8.org - Zbigniew's Scheme page"

 (navskip)
 (call-resp (category 'hacks 'zb)
            "Witam na ~zbigniew.")
 (navbar 'zb)
 
 `(div (@ (id "content")
          (class "wide"))    ;; signal wide content (tables)
       (div (@ (id "main"))
            ,(section "Articles" 'articles
                      (article (link "moving-unmanaged-itunes-files.html"
                                     "Moving unmanaged iTunes files")
                               "Move your unmanaged (NFS-mounted, etc.) iTunes music files around without leaving messy symlinks splattered all about.")
                      
                      (article (link "quack-pretty-lambda.html"
                                     "Quack pretty-lambda on Carbon Emacs")
                               "Covers some of the thornier issues encountered when getting the pretty lambda fontification of quack.el to work on OS X.")

                      (article (link "cocoa/manipulating-itunes-plist.html"
                                     "Manipulating the iTunes property list file in Scheme")
                               "This tutorial covers reading and writing OS X property lists with the "
                               (link "eggs/objc.html" "objc egg")
                               ", gradually building up an application library which can reconnect \"lost\" iTunes files.")

                      (article (link "cocoa/creating-a-cocoa-app.html"
                                     "Creating a Cocoa Application in Chicken")
                               "Walkthrough of an implementation of Currency Converter in "
                               (link "http://www.call-with-current-continuation.org/" "Chicken")
                               " Scheme.")

                      (article (link "eggs/lexing.txt"
                                     "Notes on Scheme lexers and parsers")
                               "Some notes I made on Silex, LALR, SLLGen, bigloo, PLT, packrat, and so on.")

                      (article (link "commander-s.html"
                                     "Commander S, a review")
                               "Initial impressions of Commander S, the interactive front-end to "
                               (link "http://www.scsh.net" "scsh")
                               "."))

            ,(section "Apps" 'zb-apps
                      (program (link "cocoa/cocoa-app.tgz" "Cocoa App Source 0.2")
                               "Source code for my Cocoa walkthrough.  Contains two applications: "
                               (link "cocoa/Currency%20Converter.png" "Currency Converter")
                               " and " (link "cocoa/Color%20View.png" "Color View") ".")

                      (program (link "eggs/temp-converter.scm" "Temperature Converter")
                               "The first Cocoa app for Chicken. "
                               (link "cocoa/Temperature%20Converter.png" "Screenshot here")
                               ".  Source only, download " (link "http://en.wikipedia.org/wiki/The" "the")
                               " objc egg to build it.")

                      (program (link "/pub/scrmable.scm" "scrmable.scm")
                               "Port of jwz's " (link "http://www.jwz.org/hacks/scrmable.pl" "scrmable.pl")
                               " to Chicken.  Warning: The ahltgriom ofetn pcroudes uibilltnginele otuupt."))

            ,(section/hdr (raquo (link "eggs/" "Eggs")) 'eggs
                          '(p "These are mostly old copies of my eggs.  Please obtain the latest ones using "
                              (tt "chicken-install") ", or see my Github and Bitbucket repositories.")
                          (program (link "args/args.html" "args")
                                   "Command line argument facilities atop SRFI 37: args-fold.  Also see the "
                                   (link "args/args-examples.scm" "examples for this egg") " and for "
                                   (link "args/args-fold.scm" "args-fold itself") ".")
                          (program (link "eggs/doctype.html" "doctype")
                                   "Provides XML doctypes as strings.")
                          (program (link "eggs/eggdoc.html" "eggdoc")
                                   "An egg documentation tool.")
                          (program (link "eggs/eggdoc-texinfo/eggdoc-texinfo.html" "eggdoc-texinfo")
                                   "Render eggdoc source into Texinfo (.texi, .info, "
                                   (link "http://3e8.org/zb/eggs/eggdoc-texinfo/eggdoc-texinfo.egg.pdf" ".pdf")
                                   ").  Also see the "
                                   (link "http://3e8.org/zb/eggs/eggdoc-texinfo/output/" "generated output")
                                   " for most Chicken eggs.")
                          (program (link "hostinfo/hostinfo.html"
                                         "hostinfo")
                                   "Look up host, protocol, and service information.")
                          (program (link "eggs/lazy-ssax.egg" "lazy-ssax")
                                   "Dmitry Lizorkin's lazy-ssax library ported to Chicken.")
                          (program (link "eggs/objc.html" "objc 0.4")
                                   "Scheme to Objective C bridge for Chicken. "
                                   (link "eggs/objc-04-changes.txt"
                                         "Detailed changelog for version 0.4 of 2006-01-21") ".")
                          (program (link "eggs/sxml-tools.html" "sxml-tools")
                                   "sxml-tools from " (link "ssax.sf.net" "SSAX project"))
                          (program (link "eggs/sxml-transforms.html" "sxml-transforms")
                                   "The SXML transformations (to XML, SXML, and HTML) from the SSAX project at Sourceforge.")
                          (program (link "eggs/testeez.html" "testeez")
                                   "Neil van Dyke's testeez, synced to version 0.3")
                          (program (link "vector-lib/vector-lib.html" "vector-lib")
                                   "Reference implementation of SRFI-43 with additions and bugfixes."))

            ,(section/hdr "Patches" 'zb-patch
                          '(p "All new patches go into SVN; these are old.")
                          (program (link "eggs/posix-time.scm" "posix time extensions")
                                   "Provides additional time functions missing from unit posix: "
                                   '(tt "local-time->seconds") " and " '(tt "utc-time->seconds")
                                   ".  No longer necessary in recent (2.3+) versions of Chicken.")
                          (program (link "patches/chicken-1.935-hpux-sl-so.patch" "HP-UX chicken library patch")
                                   "remove -Wl,-R ; library extension .so -> .sl (modules still .so). Tested on 11i")))

       ,(sidebar)))
