</a>
</p>
-<p class="cke-footer"> To Wise Man's Son and Wednesday's Child all is white that is not black
- They dance in symbiotic deadlock; one step forward two steps back
- Playing karmic snakes and ladders (All your sins will find you out)
- When all your gains are lost in vain on cosmic wings and roundabouts
+<p class="cke-footer">* jeffcovey becomes too groggy to read the directions and becomes
+ the year's first nasal spray overdose fatality.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">Leebert: You don't listen to music.
-Leebert: You listen to the audio equivalent of /dev/urandom
+<p class="cke-footer">Lindsay (Carlton): nighttime baker! sounds a little iffy
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">Lindsay (Carlton): should i eat more post its
+<p class="cke-footer">Baron Hausmann: I hate like...
+Baron Hausmann: suburban punks
+Baron Hausmann: because they try to add things that should never be a part of punk
+Baron Hausmann: like caring
+Baron Hausmann: and cleanliness
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">sup4hleet: My mgr had a staff meeting before we hired our first chick
-sup4hleet: he was like "We're diversifying, so no more searching for porn."
-sup4hleet: Then the chick got hired and she browsed porn all the time.
+<p class="cke-footer">"Karen loved animals. Unfortunately the cheetahs betrayed her trust,"
+Libot said.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">And did those feet in ancient time
-Walk upon England's mountains green?
-And was the holy Lamb of God
-On England's pleasant pastures seen?
+<p class="cke-footer"> (1) _Of course_ we made sure it was actually too slow before making
+the ugly optimization.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">The body bags and little rags of children torn in two,
-And the jellied brains of those who remain to put the finger right on you
-As the madmen play on words and make us all dance to their song
-To the tune of starving millions to make a better kind of gun.
+<p class="cke-footer"> To Wise Man's Son and Wednesday's Child all is white that is not black
+ They dance in symbiotic deadlock; one step forward two steps back
+ Playing karmic snakes and ladders (All your sins will find you out)
+ When all your gains are lost in vain on cosmic wings and roundabouts
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Book List</title>
+ <title>A Not So Fancy Listing of Books</title>
<meta name="generator" content="muse.el" />
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8" />
<link rel="stylesheet" href="default.css" />
</head>
<body>
- <h1>Book List</h1>
+ <h1>A Not So Fancy Listing of Books</h1>
<div class="contents">
<dl>
+<dt>
+<a href="#sec1">Douglas Adams</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec2">Hitchiker's Guide to the Galaxy (collected)</a>
+</dt>
+<dt>
+<a href="#sec3">The Long Dark Tea-Time of the Soul</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec4">Aeschylus</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec5">Oresteia</a>
+</dt>
+<dt>
+<a href="#sec6">Prometheus Bound</a>
+</dt>
+<dt>
+<a href="#sec7">The Persians</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec8">John Allison</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec9">Looks, Brains and Everything</a>
+</dt>
+<dt>
+<a href="#sec10">Blame the Sky</a>
+</dt>
+<dt>
+<a href="#sec11">Skellington</a>
+</dt>
+<dt>
+<a href="#sec12">The Retribution Index</a>
+</dt>
+<dt>
+<a href="#sec13">Great Aches</a>
+</dt>
+<dt>
+<a href="#sec14">Ahoy Hoy!</a>
+</dt>
+<dt>
+<a href="#sec15">Heavy Metal Hearts and Flowers</a>
+</dt>
+<dt>
+<a href="#sec16">Ghosts</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec17">Anonymous</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec18">Chymical Wedding of Christian Rosenkreutz</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec19">Aristophanes</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec20">The Frogs</a>
+</dt>
+<dt>
+<a href="#sec21">The Clouds</a>
+</dt>
+<dt>
+<a href="#sec22">Ecclesiazusae</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec23">Aristotle</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec24">Ethics</a>
+</dt>
+<dt>
+<a href="#sec25">Categories</a>
+</dt>
+<dt>
+<a href="#sec26">Poetics</a>
+</dt>
+<dt>
+<a href="#sec27">Rhetoric</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec28">Marcus Aurelius</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec29">Meditations</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec30">William Blake</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec31">The Four Zoas</a>
+</dt>
+<dt>
+<a href="#sec32">Jerusalem</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec33">Albert Camus</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec34">The Plague</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec35">Mike Carey</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec36">Lucifer (series)</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec37">Confucius</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec38">Analects</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec39">Neil Gaiman</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec40">The Sandman (series)</a>
+</dt>
+<dt>
+<a href="#sec41">Good Omens</a>
+</dt>
+<dt>
+<a href="#sec42">American Gods</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec43">John Taylor Gatto</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec44">Underground History of American Education</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec45">Kahlil Gibran</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec46">A Tear and a Smile</a>
+</dt>
+<dt>
+<a href="#sec47">The Prophet</a>
+</dt>
+<dt>
+<a href="#sec48">Sand and Foam</a>
+</dt>
+<dt>
+<a href="#sec49">The Madman</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec50">Homer</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec51">The Odyssey</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec52">Aldous Huxley</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec53">The Doors of Perception</a>
+</dt>
+<dt>
+<a href="#sec54">Heaven and Hell</a>
+</dt>
+<dt>
+<a href="#sec55">Brave New World</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec56">William James</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec57">The Varieties of Religious Experience</a>
+</dt>
+<dt>
+<a href="#sec58">The PhD Octopus</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec59">Henry James</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec60">The Altar of the Dead</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec61">Gregor Kiczales</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec62">The Art of the Metaobject Protocol</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec63">Søren Kierkegaard</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec64">Sickness Unto Death</a>
+</dt>
+<dt>
+<a href="#sec65">Either/Or</a>
+</dt>
+<dt>
+<a href="#sec66">Fear and Trembling</a>
+</dt>
+<dt>
+<a href="#sec67">Repetition</a>
+</dt>
+<dt>
+<a href="#sec68">The Concept of Anxiety</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec69">Alisa Kwitney</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec70">Destiny: A Chronicle of Deaths Foretold</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec71">David Lamkins</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec72">Successful Lisp</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec73">Mencius</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec74">Mencius</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec75">Walter Miller</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec76">A Canticle for Leibowitz</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec77">John Milton</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec78">Paradise Lost</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec79">Alan Moore</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec80">Watchmen</a>
+</dt>
+<dt>
+<a href="#sec81">V for Vendetta</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec82">Thomas More</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec83">Utopia</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec84">Friedrich Nietzsche</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec85">Thus Spoke Zarathustra</a>
+</dt>
+<dt>
+<a href="#sec86">Beyond Good and Evil</a>
+</dt>
+<dt>
+<a href="#sec87">On the Geneaology of Morals</a>
+</dt>
+<dt>
+<a href="#sec88">Ecce Homo</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec89">George Orwell</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec90">1984</a>
+</dt>
+<dt>
+<a href="#sec91">Animal Farm</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec92">Plato</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec93">Symposium</a>
+</dt>
+<dt>
+<a href="#sec94">Euthyphro</a>
+</dt>
+<dt>
+<a href="#sec95">Apology</a>
+</dt>
+<dt>
+<a href="#sec96">Crito</a>
+</dt>
+<dt>
+<a href="#sec97">Phaedo</a>
+</dt>
+<dt>
+<a href="#sec98">Protagoras</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec99">Edgar Allan Poe</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec100">Tales of Mystery and Suspense</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec101">Luke Rhinehardt</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec102">The Dice Man</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec103">Neal Stephenson</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec104">Snow Crash</a>
+</dt>
+<dt>
+<a href="#sec105">Cryptonomicon</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec106">Bjarne Stroustrup</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec107">The C++ Programming Language (3rd edition)</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec108">JRR Tolkien</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec109">The Lord of the Rings</a>
+</dt>
+<dt>
+<a href="#sec110">The Silmarillion</a>
+</dt>
+<dt>
+<a href="#sec111">The Lost Tales</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec112">Kurt Vonnegut</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec113">Cat's Cradle</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec114">H.G. Wells</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec115">The Island of Dr Moreau</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec116">Robert Anton Wilson</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec117">The Illuminatus! Trilogy</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec118">Yevgeny Zamyatin</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec119">We</a>
+</dt>
+</dl>
+</dd>
</dl>
</div>
-<!-- Page published by Emacs Muse begins here --> <!-- Page published by Emacs Muse ends here -->
+<!-- Page published by Emacs Muse begins here --><h2><a name="sec1" id="sec1"></a>
+Douglas Adams</h2>
+
+
+
+<h3><a name="sec2" id="sec2"></a>
+Hitchiker's Guide to the Galaxy (collected)</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••</span><span class="rating-bad">•• </span> (8) / <em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec3" id="sec3"></a>
+The Long Dark Tea-Time of the Soul</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••</span><span class="rating-bad">•••• </span> (6) / <em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec4" id="sec4"></a>
+Aeschylus</h2>
+
+
+
+<h3><a name="sec5" id="sec5"></a>
+Oresteia</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec6" id="sec6"></a>
+Prometheus Bound</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••••</span><span class="rating-bad">• </span> (9) / <em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec7" id="sec7"></a>
+The Persians</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••</span><span class="rating-bad">•• </span> (8) / <em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec8" id="sec8"></a>
+John Allison</h2>
+
+<p class="first">The author of the rather amazing <a href="http://scarygoround.com">Scary Go Round</a>.
+I highly recommend procuring the printed collections; the printing
+quality is superb (full color on glossy paper), and the long story
+arcs are much easier to read.</p>
+
+<h3><a name="sec9" id="sec9"></a>
+Looks, Brains and Everything</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec10" id="sec10"></a>
+Blame the Sky</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec11" id="sec11"></a>
+Skellington</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec12" id="sec12"></a>
+The Retribution Index</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec13" id="sec13"></a>
+Great Aches</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec14" id="sec14"></a>
+Ahoy Hoy!</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec15" id="sec15"></a>
+Heavy Metal Hearts and Flowers</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec16" id="sec16"></a>
+Ghosts</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec17" id="sec17"></a>
+Anonymous</h2>
+
+
+
+<h3><a name="sec18" id="sec18"></a>
+Chymical Wedding of Christian Rosenkreutz</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec19" id="sec19"></a>
+Aristophanes</h2>
+
+
+
+<h3><a name="sec20" id="sec20"></a>
+The Frogs</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec21" id="sec21"></a>
+The Clouds</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec22" id="sec22"></a>
+Ecclesiazusae</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec23" id="sec23"></a>
+Aristotle</h2>
+
+
+
+<h3><a name="sec24" id="sec24"></a>
+Ethics</h3>
+
+<p><em>Nonfiction</em></p>
+
+
+
+
+
+<h3><a name="sec25" id="sec25"></a>
+Categories</h3>
+
+<p><em>Nonfiction</em></p>
+
+
+
+
+
+<h3><a name="sec26" id="sec26"></a>
+Poetics</h3>
+
+<p><em>Nonfiction</em></p>
+
+
+
+
+
+<h3><a name="sec27" id="sec27"></a>
+Rhetoric</h3>
+
+<p><em>Nonfiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec28" id="sec28"></a>
+Marcus Aurelius</h2>
+
+
+
+<h3><a name="sec29" id="sec29"></a>
+Meditations</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••</span><span class="rating-bad">•••••• </span> (4) / <em>Nonfiction</em></p>
+
+<p>At the time, I enjoyed reading this collection of meditations on
+Stoic philosophy, and it was a fairly quick read (fifteen minutes a
+day over the course of two weeks for me). Nowadays I've read
+Epictetus, and I suggest reading his <em>Discourses</em> instead.</p>
+
+
+
+
+<h2><a name="sec30" id="sec30"></a>
+William Blake</h2>
+
+<p class="first">Blake is my <a href="William%20Blake.html">favorite</a> of the English poets. His
+unique use of relief etching and watercoloring makes for very
+interesting Illuminated works. There is a very high quality
+<a href="http://blakearchive.org">complete archive of Blake's works</a> online
+with high resolution plate scans and full transcriptions among other
+things.</p>
+
+<h3><a name="sec31" id="sec31"></a>
+The Four Zoas</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Fiction</em></p>
+
+<p>The unfinished manuscript of Blake's longest apocalypse. The
+Four Zoas divide from Albion and rage through the ages of dismal woe
+to bring about the end of the cycle of Ulro and restore the cycle of
+Beulah.</p>
+
+
+
+<h3><a name="sec32" id="sec32"></a>
+Jerusalem</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Fiction</em></p>
+
+<p>The finest of Blake's Illuminated works.</p>
+
+
+
+
+<h2><a name="sec33" id="sec33"></a>
+Albert Camus</h2>
+
+
+
+<h3><a name="sec34" id="sec34"></a>
+The Plague</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec35" id="sec35"></a>
+Mike Carey</h2>
+
+
+
+<h3><a name="sec36" id="sec36"></a>
+Lucifer (series)</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••</span><span class="rating-bad">•••• </span> (6) / <em>Fiction</em></p>
+
+<p>Of the <em>Sandman</em> spinoffs, <em>Lucifer</em> stands out as the best for
+the first half, but then the writer appears to take on far too great a
+task, and, with the introduction of some disagreeable character
+relations, fails to execute the story as well as it could have
+been. Still, it was worth reading to the end even though most of the
+stories after issue 35 or so were merely ok. If you like Kierkegaard I
+suggest issues 2, 3, and 62—they show the form of the incommensurable
+relation of the single individual to the absolute perfectly.</p>
+
+
+
+
+<h2><a name="sec37" id="sec37"></a>
+Confucius</h2>
+
+
+
+<h3><a name="sec38" id="sec38"></a>
+Analects</h3>
+
+<p><em>Nonfiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec39" id="sec39"></a>
+Neil Gaiman</h2>
+
+
+
+<h3><a name="sec40" id="sec40"></a>
+The Sandman (series)</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Fiction</em></p>
+
+<p>Perhaps the best comic book series of all time; I would say <em>The
+Sandman</em> as a whole ranks higher than anything even Alan Moore has
+written.</p>
+
+
+
+<h3><a name="sec41" id="sec41"></a>
+Good Omens</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••</span><span class="rating-bad">•• </span> (8) / <em>Fiction</em></p>
+
+<p>A friend of a friend decided one evening that I needed to read
+so-called <em>normal people books</em>, and so she lent me <em>Good Omens</em>. It
+was an enjoyable read and unearthed vague memories of comic book
+magazines I read when I was small and the name <em>Sandman</em>; thus through
+one book I found something far greater.</p>
+
+
+
+<h3><a name="sec42" id="sec42"></a>
+American Gods</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••</span><span class="rating-bad">•••• </span> (6) / <em>Fiction</em></p>
+
+<p>Entertaining, but the end was a bit much rushed.</p>
+
+
+
+
+<h2><a name="sec43" id="sec43"></a>
+John Taylor Gatto</h2>
+
+<p class="first">Former teacher and now author-activist.</p>
+
+<h3><a name="sec44" id="sec44"></a>
+Underground History of American Education</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••••</span><span class="rating-bad">• </span> (9) / <em>Nonfiction</em></p>
+
+<p>An interesting <em>underground</em> history of the American education
+system. Available
+<a href="http://www.johntaylorgatto.com/underground/">online for free</a>.</p>
+
+
+
+
+<h2><a name="sec45" id="sec45"></a>
+Kahlil Gibran</h2>
+
+<p class="first">Kahlil Gibran is fairly interesting; his earlier works do not
+agree with my æsthetic sense (blah blah), but <em>The Madman</em> onward are
+all rather nice. A few of his works are
+<a href="http://leb.net/~mira/">online</a>, but I recommend scouting used book
+stores for old hardcover editions. The (late 90s onward at least)
+<em>hardcover</em> versions from <em>Alfred A. Knopf</em> are in fact permabound
+paperbacks with a hardcasing, and are of seriously inferior quality to
+the editions from the 50s and 60s (and cost quite a bit more,
+naturally).</p>
+
+<h3><a name="sec46" id="sec46"></a>
+A Tear and a Smile</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••</span><span class="rating-bad">••••••• </span> (3) / <em>Fiction</em></p>
+
+<p>One of Kahlil Gibran's earlier works, I did not much like <em>A
+Tear and a Smile</em> excepting the last poem ("A Poet's Voice").</p>
+
+
+
+<h3><a name="sec47" id="sec47"></a>
+The Prophet</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••••</span><span class="rating-bad">• </span> (9) / <em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec48" id="sec48"></a>
+Sand and Foam</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••</span><span class="rating-bad">••• </span> (7) / <em>Fiction</em></p>
+
+<p>An interesting little book of aphorisms.</p>
+
+
+
+<h3><a name="sec49" id="sec49"></a>
+The Madman</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••</span><span class="rating-bad">•• </span> (8) / <em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec50" id="sec50"></a>
+Homer</h2>
+
+
+
+<h3><a name="sec51" id="sec51"></a>
+The Odyssey</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec52" id="sec52"></a>
+Aldous Huxley</h2>
+
+<p class="first">Perhaps the most overrated modern writer. Other people have written
+everything he has to write better and many years before he got around
+to it.</p>
+
+<h3><a name="sec53" id="sec53"></a>
+The Doors of Perception</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> </span><span class="rating-bad">•••••••••• </span> (0) / <em>Nonfiction</em></p>
+
+<p>Huxley stains the name of Blake by naming this horrible
+pseudo-scientific and pseudo-poetic essay after a line from <em>The
+Marriage of Heaven and Hell</em>. Subjectivity and objectivity are
+incommensurable; his attempt and being subjectively objective is
+utterly worthless.</p>
+
+
+
+<h3><a name="sec54" id="sec54"></a>
+Heaven and Hell</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> </span><span class="rating-bad">•••••••••• </span> (0) / <em>Nonfiction</em></p>
+
+<p>Blah blah LSD blah blah Mushrooms blah blah Peyote blah blah I'm
+Aldous Huxley I'm a pretentious jerk. Don't bother.</p>
+
+
+
+<h3><a name="sec55" id="sec55"></a>
+Brave New World</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••</span><span class="rating-bad">••• </span> (7) / <em>Fiction</em></p>
+
+<p>A nice light read; the story is obvious and by the hundreth page
+the ending is clear, but it provided a bit of a break from heavier
+reading for me. I must say that anyone who has read <em>Brave New World</em>
+and does not despise modern society has the intellectual capacity of
+an <em>Epsilon</em>. <em>1984</em> is perhaps easily misread, but <em>Brave New World</em>
+is very clear with its message and is a bit like being smacked upside
+the head with a hammer.</p>
+
+
+
+
+<h2><a name="sec56" id="sec56"></a>
+William James</h2>
+
+
+
+<h3><a name="sec57" id="sec57"></a>
+The Varieties of Religious Experience</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••</span><span class="rating-bad">••• </span> (7) / <em>Nonfiction</em></p>
+
+<p><a href="William%20James%20-%20The%20Varieties%20of%20Religious%20Experience.html">A partially finished extended summary</a></p>
+
+
+
+<h3><a name="sec58" id="sec58"></a>
+The PhD Octopus</h3>
+
+<p><em>Nonfiction</em></p>
+
+<blockquote>
+<p class="quoted">
+America is thus as a nation rapidly drifting towards a state of things
+in which no man of science or letters will be accounted respectable
+unless some kind of badge or diploma is stamped upon him, and in which
+bare personality will be a mark of outcast estate. It seems to me high
+time to rouse ourselves to consciousness, and to cast a critical eye
+upon this decidedly grotesque tendency. Other nations suffer terribly
+from the Mandarin disease. Are we doomed to suffer like the rest?</p>
+
+</blockquote>
+
+<p><a href="William%20James%20-%20The%20PhD%20Octopus.html">Full Text</a></p>
+
+
+
+
+<h2><a name="sec59" id="sec59"></a>
+Henry James</h2>
+
+<p class="first">The novelist brother of William James; I've not read many (read:
+one) of his books, but what I did was decent.</p>
+
+<h3><a name="sec60" id="sec60"></a>
+The Altar of the Dead</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••</span><span class="rating-bad">••• </span> (7) / <em>Fiction</em></p>
+
+<p>A short novella about a man who maintained an altar in a church
+for all of his lost loved ones on the surface, but something a bit
+more beneath.</p>
+
+
+
+
+<h2><a name="sec61" id="sec61"></a>
+Gregor Kiczales</h2>
+
+
+
+<h3><a name="sec62" id="sec62"></a>
+The Art of the Metaobject Protocol</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Nonfiction</em></p>
+
+<p>AMOP is useful as a reference to the CLOS MOP (although less so with
+the online MOP spec), but the true value of the book lies in the first
+half of the book. It presents the design of the CLOS MOP through a
+series of revisions that fix limitations of earlier implementations
+and gradually work toward a generic and well designed MOP for
+CLOS. Through that process one is made more aware of a few general
+object protocol design skills, and gains insight into how to cleanly
+make mapping decisions customizable.</p>
+
+
+
+
+<h2><a name="sec63" id="sec63"></a>
+Søren Kierkegaard</h2>
+
+<p class="first">Kierkegaard was a master of style and philosophy; his writing is
+interesting even if one finds the theistic extentialism espoused
+disagreeable.</p>
+
+<h3><a name="sec64" id="sec64"></a>
+Sickness Unto Death</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Nonfiction</em></p>
+
+<p>I purchased this when I was looking through books at a store after
+being unable to find the book I really wanted, and I must say that it
+was better for me to have found this one.</p>
+
+<p>Contained within is a beautiful analysis of despair in the context of
+Christianity (really theism in general). Even if the argument offends,
+the presentation cannot. The dialectical nature of despair is
+reflected in every aspect of the work, and the method of presentation
+forces reflection.</p>
+
+
+
+<h3><a name="sec65" id="sec65"></a>
+Either/Or</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Nonfiction</em></p>
+
+<p>Composed of two portions, <em>Either/Or</em> is a rather lengthy but
+rewarding read. The first book is a series of essays and a diary of a
+young esthetician; the second is a pair of long letters from an older
+ethicist friend to this esthetician. You are then left to resolve the
+conflict between the views.</p>
+
+
+
+<h3><a name="sec66" id="sec66"></a>
+Fear and Trembling</h3>
+
+<p><em>Nonfiction</em></p>
+
+<p>An interesting dialectical lyric contrasting Despair and Faith.</p>
+
+
+
+<h3><a name="sec67" id="sec67"></a>
+Repetition</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Nonfiction</em></p>
+
+<p>He who despairs of esthetic repetition gets none; he who despairs
+of ethical repetition receieves the esthetic. Is it true then that no
+repetition exists? Is transition all one can hope for?</p>
+
+
+
+<h3><a name="sec68" id="sec68"></a>
+The Concept of Anxiety</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••</span><span class="rating-bad">••• </span> (7) / <em>Nonfiction</em></p>
+
+<p>...Very clearly an early work of Kierkegaard. It is rather formal
+and difficult to get through. I'd recommend reading a lot of other
+Kierkegaard before this.</p>
+
+
+
+
+<h2><a name="sec69" id="sec69"></a>
+Alisa Kwitney</h2>
+
+
+
+<h3><a name="sec70" id="sec70"></a>
+Destiny: A Chronicle of Deaths Foretold</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••</span><span class="rating-bad">•• </span> (8) / <em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec71" id="sec71"></a>
+David Lamkins</h2>
+
+
+
+<h3><a name="sec72" id="sec72"></a>
+Successful Lisp</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••</span><span class="rating-bad">•• </span> (8) / <em>Nonfiction</em></p>
+
+<p>After learning Scheme, I read <em>Successful Lisp</em> and was able to
+pick up Common Lisp fairly easily.</p>
+
+
+
+
+<h2><a name="sec73" id="sec73"></a>
+Mencius</h2>
+
+
+
+<h3><a name="sec74" id="sec74"></a>
+Mencius</h3>
+
+<p><em>Nonfiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec75" id="sec75"></a>
+Walter Miller</h2>
+
+
+
+<h3><a name="sec76" id="sec76"></a>
+A Canticle for Leibowitz</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec77" id="sec77"></a>
+John Milton</h2>
+
+
+
+<h3><a name="sec78" id="sec78"></a>
+Paradise Lost</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec79" id="sec79"></a>
+Alan Moore</h2>
+
+
+
+<h3><a name="sec80" id="sec80"></a>
+Watchmen</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••</span><span class="rating-bad">•• </span> (8) / <em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec81" id="sec81"></a>
+V for Vendetta</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec82" id="sec82"></a>
+Thomas More</h2>
+
+
+
+<h3><a name="sec83" id="sec83"></a>
+Utopia</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••</span><span class="rating-bad">••• </span> (7) / <em>Fiction</em></p>
+
+<p>I read most of Utopia in high school with the TI-89 ebook reader, but
+the way the book was split up made it a bit difficult to grasp the
+overall structure. I found a copy at a used book store one day, and so
+I read it again, and found it much more comprehensible. It is a quick
+read, and decent piece of literature. The interesting social system
+espoused resembles resembles state communism (even if perhaps as a
+negative ideal), but with an strange blend of 14th century European
+social customs.</p>
+
+
+
+
+<h2><a name="sec84" id="sec84"></a>
+Friedrich Nietzsche</h2>
+
+<p class="first">A bit acerbic and esoteric, Nietzsche is for me a good <em>secular</em>
+counterpart to Kierkegaard's theistic philosophy. Nietzsche's
+polemical works raise important questions for anyone who reads works
+on ethics. As such it is a shame that he has gotten a bad reputation
+by being read by far too many angsty teenagers who see (and relay)
+only Nietzsche the asshole rather than Nietzsche the master of the
+polemic.</p>
+
+<h3><a name="sec85" id="sec85"></a>
+Thus Spoke Zarathustra</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••</span><span class="rating-bad">•• </span> (8) / <em>Fiction</em></p>
+
+<p>A masterpiece of indirect communication depsite the occasional
+flaw and overly dramatic passage. Certainly a book worth reading many
+times over the course of one's life.</p>
+
+
+
+<h3><a name="sec86" id="sec86"></a>
+Beyond Good and Evil</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••</span><span class="rating-bad">•• </span> (8) / <em>Nonfiction</em></p>
+
+<p>A somewhat more comprehensible, if a bit less aesthetically
+pleasing, presentation of much of the philosophy found in <em>Thus Spoke
+Zarathustra</em> in the negative form. The final chapters are very
+important (not to detract from the value of the rest of the work) if
+one wishes to understand <em>On the Genealogy of Morals</em>.</p>
+
+
+
+<h3><a name="sec87" id="sec87"></a>
+On the Geneaology of Morals</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••••</span><span class="rating-bad">• </span> (9) / <em>Nonfiction</em></p>
+
+<p><em>On the Geneaology of Morals</em> is a wonderful book of three
+polemical essays on the origin of moral/ethical valuations, and the
+blindness of modern philosphers whose very thinking is tainted by
+these valuations unknowingly.</p>
+
+
+
+<h3><a name="sec88" id="sec88"></a>
+Ecce Homo</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••</span><span class="rating-bad">••• </span> (7) / <em>Nonfiction</em></p>
+
+<p><em>Ecce Homo</em> is Nietzsche's very strange autobiography and
+explanation of his own works. At points it is clear that it could have
+used a bit more editing (prevented by Nietzsche ... falling into a
+catatonic state and all), but is still a very useful book to read as
+Nietzsche explains the overall structure of his works.</p>
+
+
+
+
+<h2><a name="sec89" id="sec89"></a>
+George Orwell</h2>
+
+
+
+<h3><a name="sec90" id="sec90"></a>
+1984</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec91" id="sec91"></a>
+Animal Farm</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec92" id="sec92"></a>
+Plato</h2>
+
+
+
+<h3><a name="sec93" id="sec93"></a>
+Symposium</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec94" id="sec94"></a>
+Euthyphro</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec95" id="sec95"></a>
+Apology</h3>
+
+<p><em>Nonfiction</em></p>
+
+
+
+
+
+<h3><a name="sec96" id="sec96"></a>
+Crito</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec97" id="sec97"></a>
+Phaedo</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Nonfiction</em></p>
+
+
+
+
+
+<h3><a name="sec98" id="sec98"></a>
+Protagoras</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec99" id="sec99"></a>
+Edgar Allan Poe</h2>
+
+<p class="first">ULTRAGOTHIK</p>
+
+<h3><a name="sec100" id="sec100"></a>
+Tales of Mystery and Suspense</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••</span><span class="rating-bad">•••• </span> (6) / <em>Fiction</em></p>
+
+<p>This is when I learned that I still don't really like late 1800s
+American literature all that much. Some of the tales were worth
+reading, but most of it was not in a style I like all that much.</p>
+
+
+
+
+<h2><a name="sec101" id="sec101"></a>
+Luke Rhinehardt</h2>
+
+
+
+<h3><a name="sec102" id="sec102"></a>
+The Dice Man</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••</span><span class="rating-bad">••• </span> (7) / <em>Fiction</em></p>
+
+<blockquote>
+<p class="quoted">
+And it's his illusions about what
+constitutes the real world which are
+inhibiting him...
+His reality, his reason, his society
+...these are what must be destroyed</p>
+
+</blockquote>
+
+<p>A quotation from one of my <a href="http://en.wikipedia.org/wiki/Slaughter_of_the_Soul">favorite metal songs</a> inspired me to grab
+this book; at worst it would be a waste of time. Much reward was found
+in this random stab in the dark. The book is framed as an
+autobiography of the author as a psychoanalyst, and his progression
+through life as a Dice Man after deciding to live his life through
+random chance.</p>
+
+<p>The style, plot, and content are equally neurotic; part comedy, part
+attack on psychoanalysis, and part deep philosophy. It was often
+difficult to put down, and was read in under a week of spare time.</p>
+
+
+
+
+<h2><a name="sec103" id="sec103"></a>
+Neal Stephenson</h2>
+
+
+
+<h3><a name="sec104" id="sec104"></a>
+Snow Crash</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••••</span><span class="rating-bad">• </span> (9) / <em>Fiction</em></p>
+
+<p>As one must read the <em>Bible</em> to understand English literature, so one
+must read <em>Snow Crash</em> today to be a nerd. In the realm of modern pop
+fiction this is one of the better books I've read; it was devoured in
+a mere four nights. Neal Stepheson may not be Milton, but he does come
+up with enganging tales. <em>Snow Crash</em> has a nice undertone of (quite
+accurate) political and social commentary that makes it worth reading
+as more than mere cyberpunk fiction.</p>
+
+
+
+<h3><a name="sec105" id="sec105"></a>
+Cryptonomicon</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••</span><span class="rating-bad">•• </span> (8) / <em>Fiction</em></p>
+
+<p>I read <em>Cryptonomicon</em> when it was new, and at the time I thought it was
+good. It could have lost a hundred or so pages without detracting from
+the plot, but it was easy reading and didn't take very long to
+finish. The story was enganging, and the continual switching between
+the 1940s and present day slowly unravelled the tale in a nice way.</p>
+
+<p>I'd still have to recommend <em>Snow Crash</em> if one wished to read only one
+Stephenson novel.</p>
+
+
+
+
+<h2><a name="sec106" id="sec106"></a>
+Bjarne Stroustrup</h2>
+
+
+
+<h3><a name="sec107" id="sec107"></a>
+The C++ Programming Language (3rd edition)</h3>
+
+<p><em>Nonfiction</em></p>
+
+<p>Once upon a time I was fifteen and I read this book. It was more
+or less what taught me how to write programs just large enough to do
+useful things, and so shall forever be remembered by me. A year and a
+half later I stumbled upon a little language called Scheme and fell
+down the rabbit hole.</p>
+
+
+
+
+<h2><a name="sec108" id="sec108"></a>
+JRR Tolkien</h2>
+
+
+
+<h3><a name="sec109" id="sec109"></a>
+The Lord of the Rings</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••••</span><span class="rating-bad">• </span> (9) / <em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec110" id="sec110"></a>
+The Silmarillion</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Fiction</em></p>
+
+
+
+
+
+<h3><a name="sec111" id="sec111"></a>
+The Lost Tales</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••</span><span class="rating-bad">••• </span> (7) / <em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec112" id="sec112"></a>
+Kurt Vonnegut</h2>
+
+
+
+<h3><a name="sec113" id="sec113"></a>
+Cat's Cradle</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••••</span><span class="rating-bad">• </span> (9) / <em>Fiction</em></p>
+
+<p>There are few books that I have started to read before sleeping
+and found myself watching the sun rise after finishing. <em>Cat's Cradle</em>
+is definitely required nerd reading.</p>
+
+
+
+
+<h2><a name="sec114" id="sec114"></a>
+H.G. Wells</h2>
+
+
+
+<h3><a name="sec115" id="sec115"></a>
+The Island of Dr Moreau</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> •••••••</span><span class="rating-bad">••• </span> (7) / <em>Fiction</em></p>
+
+
+
+
+
+
+<h2><a name="sec116" id="sec116"></a>
+Robert Anton Wilson</h2>
+
+<p class="first">Or rather, Robert Anton Wilson and Robert Shea (but my book script
+updating thing doesn't do multiple authors</p>
+
+<h3><a name="sec117" id="sec117"></a>
+The Illuminatus! Trilogy</h3>
+
+<p><em>Rating:</em> <span class="rating-good"> ••••••••••</span><span class="rating-bad"> </span> (10) / <em>Nonfiction</em></p>
+
+<p>e-cash MP5K-SD Adriatic Bellcore Lon Horiuchi 9705 Samford Road
+jihad New World Order AVN FTS2000 ANZUS subversive SAPO PET Armani</p>
+
+
+
+
+<h2><a name="sec118" id="sec118"></a>
+Yevgeny Zamyatin</h2>
+
+
+
+<h3><a name="sec119" id="sec119"></a>
+We</h3>
+
+<p><em>Fiction</em></p>
+
+
+
+ <!-- Page published by Emacs Muse ends here -->
<p class="cke-buttons">
<!-- validating badges, any browser, etc -->
</a>
</p>
-<p class="cke-footer">Ethan: i'm working on myself
-Ethan: the self is the most important thing
-Ethan: i learned this from a packet of tea
+<p class="cke-footer"> To Wise Man's Son and Wednesday's Child all is white that is not black
+ They dance in symbiotic deadlock; one step forward two steps back
+ Playing karmic snakes and ladders (All your sins will find you out)
+ When all your gains are lost in vain on cosmic wings and roundabouts
</p>
<p class="cke-timestamp">Last Modified:
- January 21, 2013</p>
+ October 26, 2018</p>
</body>
</html>
\ No newline at end of file
</a>
</p>
-<p class="cke-footer">Corinne: this is why we should have designated bath buddies
-Corinne: to get places you cant reach because youre slippery and in
- case you get a lil tooo slippery and crack your head open
- someone can call the coast guard and save you
+<p class="cke-footer">The body bags and little rags of children torn in two,
+And the jellied brains of those who remain to put the finger right on you
+As the madmen play on words and make us all dance to their song
+To the tune of starving millions to make a better kind of gun.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">Leebert: You don't listen to music.
-Leebert: You listen to the audio equivalent of /dev/urandom
+<p class="cke-footer">I'm just thinking aloud; isn't thinking allowed?
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer"><Morty_md> My mind boggled.
-* tim_m shakes morty's mind, hoping for a different combination of letters
-<Morty_md> Sometimes my mind yahtzees instead.
+<p class="cke-footer">No, there's nothing here about X, so be quiet.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">Ethan: i'm working on myself
-Ethan: the self is the most important thing
-Ethan: i learned this from a packet of tea
+<p class="cke-footer">Mike: I WAS NOT MICROWAVED.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer"><Morty_md> My mind boggled.
-* tim_m shakes morty's mind, hoping for a different combination of letters
-<Morty_md> Sometimes my mind yahtzees instead.
+<p class="cke-footer">If nothing in the world can change our children will inherit nothing
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">Jessie: i thought your beard took the oxygen from the air and made it
- breathable for you
+<p class="cke-footer">Mike: I WAS NOT MICROWAVED.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">Leebert: I'm reminded why I dislike programming so much.
-unknownlamer: Programming is fun
-Leebert: So is anal rape.
+<p class="cke-footer">If nothing in the world can change our children will inherit nothing
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer"> No seed of hope nor ray of light,
- Scant succour from the blighted epoch.
- Rise like Socrates and fight;
- Take hate's chalice laced with hemlock.
+<p class="cke-footer"><Morty_md> My mind boggled.
+* tim_m shakes morty's mind, hoping for a different combination of letters
+<Morty_md> Sometimes my mind yahtzees instead.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">"Karen loved animals. Unfortunately the cheetahs betrayed her trust,"
-Libot said.
+<p class="cke-footer"> It's no contest, but we still race there
+ Like the saintly tortoise and the godless hare
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer"> No seed of hope nor ray of light,
- Scant succour from the blighted epoch.
- Rise like Socrates and fight;
- Take hate's chalice laced with hemlock.
+<p class="cke-footer"><Morty_md> My mind boggled.
+* tim_m shakes morty's mind, hoping for a different combination of letters
+<Morty_md> Sometimes my mind yahtzees instead.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">unknownlamer: I just asked a girl out to a greek tragedy
-LeebertLaptop: hmm
-LeebertLaptop: you on a date is a geek tragedy
+<p class="cke-footer">I'm just thinking aloud; isn't thinking allowed?
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">'Asked whether it is a good thing that the course of our
-civilization being largely directed by gigantic immortal,
-belligerent, unsleeping multiheaded tax-avoiding parakeets whose
-unnatural lusts can never be sated, Dr. Larkey declined to
-comment, noting that "corporations have the rights of personhood
-in this country" and that "it is not my place to criticize the
-law".'
+<p class="cke-footer">And did those feet in ancient times
+Walk bare upon these lonely streets like mine?
+Does God watch us from that penthouse high above
+His children down below who live on air and love?
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">And did those feet in ancient times
-Walk bare upon these lonely streets like mine?
-Does God watch us from that penthouse high above
-His children down below who live on air and love?
+<p class="cke-footer"> (1) _Of course_ we made sure it was actually too slow before making
+the ugly optimization.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">sup4hleet: My mgr had a staff meeting before we hired our first chick
-sup4hleet: he was like "We're diversifying, so no more searching for porn."
-sup4hleet: Then the chick got hired and she browsed porn all the time.
+<p class="cke-footer">* jeffcovey becomes too groggy to read the directions and becomes
+ the year's first nasal spray overdose fatality.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">'Asked whether it is a good thing that the course of our
-civilization being largely directed by gigantic immortal,
-belligerent, unsleeping multiheaded tax-avoiding parakeets whose
-unnatural lusts can never be sated, Dr. Larkey declined to
-comment, noting that "corporations have the rights of personhood
-in this country" and that "it is not my place to criticize the
-law".'
+<p class="cke-footer">"Karen loved animals. Unfortunately the cheetahs betrayed her trust,"
+Libot said.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
(options) ...)
(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">generic-name</span> ((parameter type) parameter ...)
- <span class="emacs-face-string">"documentation string"</span>
+ <span class="emacs-face-doc">"documentation string"</span>
body)
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">foo</span> (bar baz quux)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Process the baz with the quux capacitor to make the
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Process the baz with the quux capacitor to make the
foo widget fly into the sky at warp speed"</span>))
(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">foo</span> ((bar example) baz (quux capacitor))
<pre class="src">
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">example-inspect</span> (instance)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Simple object inspector using CLOS MOP"</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Simple object inspector using CLOS MOP"</span>))
(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">example-inspect</span> ((instance t))
(format t <span class="emacs-face-string">"Simple Object~% Value: ~S~%"</span> instance))
<span class="emacs-face-comment-delimiter">;;; </span><span class="emacs-face-comment">Metaclass
</span>(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">observable</span> (standard-class)
()
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Metaclass for observable objects"</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Metaclass for observable objects"</span>))
(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">compute-slots</span> ((class observable))
- <span class="emacs-face-string">"Add a slot for storing observers to observable instances"</span>
+ <span class="emacs-face-doc">"Add a slot for storing observers to observable instances"</span>
(cons (make-instance 'standard-effective-slot-definition
<span class="emacs-face-builtin">:name</span> 'observers
<span class="emacs-face-builtin">:initform</span> '(make-hash-table)
slot-name)
(gethash slot-name (slot-value instance 'observers)))
-(<span class="emacs-face-keyword">defmethod</span> (<span class="emacs-face-function-name">setf slot-value-using-class)</span> <span class="emacs-face-builtin">:before</span> (new-value
+(<span class="emacs-face-keyword">defmethod</span> (<span class="emacs-face-function-name">setf slot-value-using-class</span>) <span class="emacs-face-builtin">:before</span> (new-value
(class observable)
instance
slot)
</a>
</p>
-<p class="cke-footer">unknownlamer: I just asked a girl out to a greek tragedy
-LeebertLaptop: hmm
-LeebertLaptop: you on a date is a geek tragedy
+<p class="cke-footer">No, there's nothing here about X, so be quiet.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">emacsen: "Like... windows are portals man...
-emacsen: Dude... let's yank this shit out of the kill ring"
+<p class="cke-footer">Jessie: i thought your beard took the oxygen from the air and made it
+ breathable for you
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer"><RetroJ`> here's something interesting about one of these chinese
- pop music videos I've found.. it illustrates the
- cultural barrier nicely. this young female pop star is
- wearing a t-shirt with the confederate flag
+<p class="cke-footer">"Karen loved animals. Unfortunately the cheetahs betrayed her trust,"
+Libot said.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer"> It's no contest, but we still race there
- Like the saintly tortoise and the godless hare
+<p class="cke-footer"><ascii_phil> There once was a man named Bertold
+<ascii_phil> Who drank beer when the weather grew cold
+<ascii_phil> As he reached for his cup...
+<ascii_phil> "NEEEEVER GONNA GIVE YOU UP!!!"
+<ascii_phil> Oh, snap! You just got limerickrolled!
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">The body bags and little rags of children torn in two,
-And the jellied brains of those who remain to put the finger right on you
-As the madmen play on words and make us all dance to their song
-To the tune of starving millions to make a better kind of gun.
+<p class="cke-footer"><emag> http://www.etonline.com/celebrities/news/38722/
+<Leebert> emag: I don't see any other source claiming she's dead,
+ just collapsed.
+<tim_m> what's wrong with et online?
+<ascii_phil> It keeps trying to use Skype to phone home.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">And did those feet in ancient times
-Walk bare upon these lonely streets like mine?
-Does God watch us from that penthouse high above
-His children down below who live on air and love?
+<p class="cke-footer"> Ruled by the ebb of my oceans
+ Slaves to the dusk and the dawn
+ Your petri dish civilisations
+ Are buried and born
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">clinton: last time I was a bit weak (*sniff* level four and only 18 hp)
-clinton: I had a -1 intelligence modifier for the first three weeks
-emacsen: what about your character?
+<p class="cke-footer"> To Wise Man's Son and Wednesday's Child all is white that is not black
+ They dance in symbiotic deadlock; one step forward two steps back
+ Playing karmic snakes and ladders (All your sins will find you out)
+ When all your gains are lost in vain on cosmic wings and roundabouts
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">Lindsay (Carlton): should i eat more post its
+<p class="cke-footer">Jessie: i thought your beard took the oxygen from the air and made it
+ breathable for you
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">unknownlamer: I just asked a girl out to a greek tragedy
-LeebertLaptop: hmm
-LeebertLaptop: you on a date is a geek tragedy
+<p class="cke-footer"><ascii_phil> There once was a man named Bertold
+<ascii_phil> Who drank beer when the weather grew cold
+<ascii_phil> As he reached for his cup...
+<ascii_phil> "NEEEEVER GONNA GIVE YOU UP!!!"
+<ascii_phil> Oh, snap! You just got limerickrolled!
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer"> Ruled by the ebb of my oceans
- Slaves to the dusk and the dawn
- Your petri dish civilisations
- Are buried and born
+<p class="cke-footer"> To Wise Man's Son and Wednesday's Child all is white that is not black
+ They dance in symbiotic deadlock; one step forward two steps back
+ Playing karmic snakes and ladders (All your sins will find you out)
+ When all your gains are lost in vain on cosmic wings and roundabouts
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">unknownlamer: I just asked a girl out to a greek tragedy
-LeebertLaptop: hmm
-LeebertLaptop: you on a date is a geek tragedy
+<p class="cke-footer">No, there's nothing here about X, so be quiet.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
<span class="emacs-face-doc">"Name of the Guile evaluation scratch buffer"</span>)
(<span class="emacs-face-keyword">defun</span> <span class="emacs-face-function-name">make-guile-scratch-buffer</span> ()
- (interactive)
+ (<span class="emacs-face-keyword">interactive</span>)
(<span class="emacs-face-keyword">let</span> ((scratch-buf (generate-new-buffer guile-scratch-buffer-name)))
(switch-to-buffer scratch-buf)
(scheme-mode)
</a>
</p>
-<p class="cke-footer">unknownlamer: online dating is dumb in general
-emacsen: computer dating rocks. I love computer
-emacsen: I mean I really LOVE computers ;)
+<p class="cke-footer">Ethan: i'm working on myself
+Ethan: the self is the most important thing
+Ethan: i learned this from a packet of tea
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer"><Sonarman> WHAT??!??! you don't want to attend my roundtable on
- neomarxist deconstruction schemes for modern
- capitalism? YOU'RE PROPPING UP THE SYSTEM, PIG.
-<Sonarman> brb latte
+<p class="cke-footer"><saon> our friend ended up coming over later and just started opening the back gate and i was like "hey" and she finally said something then realized i had a huge shotgun and freaked out a bit
+--
+Mike: I hate cold.
+unknownlamer: cold is amazing
+unknownlamer: you can burn shit and end up warm
+unknownlamer: explore the desolate plains of wintery death
+Mike: I'd rather just kill myself.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">Corinne: rub a dub dub nekked in the tub
+<p class="cke-footer">Lindsay (Carlton): should i eat more post its
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer"><emag> http://www.etonline.com/celebrities/news/38722/
-<Leebert> emag: I don't see any other source claiming she's dead,
- just collapsed.
-<tim_m> what's wrong with et online?
-<ascii_phil> It keeps trying to use Skype to phone home.
+<p class="cke-footer">* jeffcovey becomes too groggy to read the directions and becomes
+ the year's first nasal spray overdose fatality.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">Jessie: but today i was a nerd
-Jessie: i even read slashdot.
+<p class="cke-footer">No, there's nothing here about X, so be quiet.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">standard-application</span> (application)
((url-prefix <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:url-prefix</span>
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A string specifying the
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A string specifying the
start (prefix) of all the urls this app should handle.
This value is used by the standard-server to decide what app a
particular request is aimed at and for generating links to
actions within the app. "</span>)
(www-roots <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:www-roots</span>
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A list of directories (pathname
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A list of directories (pathname
specifiers) or cons-cell (URL-subdir . pathname) to use when looking for static files."</span>)
(dispatchers <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:dispatchers</span>
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A list of request
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A list of request
dispatchers. The user supplied list of dispatchers is extended
with other dispatchers that are required for UCW to function
properly (action-dispatcher, a parenscript-dispatcher, etc). If
application.dispatchers) accessor or, if you want control over
the order of the dispathcers, (slot-value instance
'dispatchers)."</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The default UCW application class."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"The default UCW application class."</span>))
</pre>
<p><a href="http://www.uncommon-web.com/darcsweb/darcsweb.cgi?r=ucw_dev;a=headblob;f=/src/rerl/modular-application/modular-application.lisp">src/rerl/modular-application/modular-application.lisp</a></p>
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">modular-application-mixin</span> ()
()
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Superclass for all application mixins."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Superclass for all application mixins."</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">modular-application</span> (standard-application modular-application-mixin)
...)
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">cookie-session-application-module</span> (modular-application-mixin)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Class for applications which use cookies for sesion tracking.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Class for applications which use cookies for sesion tracking.
Cookie session applications work exactly like
standard-applications except that when the session is not found
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">l10n-application-module</span> (modular-application-mixin)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Application class which can handle l10n requests."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Application class which can handle l10n requests."</span>))
</pre>
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">secure-application-module</span> (modular-application-mixin)
(<span class="emacs-face-builtin">:documentation</span>
- <span class="emacs-face-string">"Mixin class for applications which require authorized access.
+ <span class="emacs-face-doc">"Mixin class for applications which require authorized access.
Concrete application must specialize the following methods:
APPLICATION-FIND-USER (APPLICATION USERNAME)
APPLICATION-CHECK-PASSWORD (APPLICATION USER PASSWORD)
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">simple-window-component</span> (window-component)
((title)
(stylesheet)
- (javascript <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"List of javascript includes.
+ (javascript <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"List of javascript includes.
Each element must be a list whose first value is either the
symbol :SRC or :JS.
<pre class="src">
(defcomponent status-bar ()
- ((messages <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"An ALIST of the messages to
+ ((messages <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"An ALIST of the messages to
show. Each element is a cons of the form (SEVERITY .
MESSAGE). SEVERITY is one of :ERROR, :WARN, :INFO and MESSAGE is
a string which will be html-escaped."</span>)
...)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Stateless status bar to display messages."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Stateless status bar to display messages."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">add-message</span> (status-bar msg <span class="emacs-face-type">&key</span> severity <span class="emacs-face-type">&allow-other-keys</span>)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Add the message text MSG to STATUS-BAR with
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Add the message text MSG to STATUS-BAR with
severity SEVERITY."</span>))
</pre>
(render (status-bar win)))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">show-message</span> (msg <span class="emacs-face-type">&key</span> severity <span class="emacs-face-type">&allow-other-keys</span>)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Show a message in the status bar. Only works if
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Show a message in the status bar. Only works if
current window is a status-bar-mixin"</span>))
</pre>
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">redirect-component</span> ()
((target <span class="emacs-face-builtin">:accessor</span> target <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:target</span>))
(<span class="emacs-face-builtin">:metaclass</span> standard-component-class)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Send a client redirect.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Send a client redirect.
This component, which must be used as a window-component,
redirects the client to the url specified in the target slot. A
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">container</span> ()
(...)
(<span class="emacs-face-builtin">:metaclass</span> standard-component-class)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Allow multiple components to share the same place.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Allow multiple components to share the same place.
The container component serves to manage a set of components.
It does not provide any render impementation, which is the
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">switching-container</span> ...
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A simple renderable container component.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A simple renderable container component.
This component is like the regular CONTAINER but serves to manage a set
of components which share the same place in the UI. Therefore it provides
<pre class="src">
(defcomponent tabbed-pane (switching-container)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Component for providing the user with a standard \"tabbed pane\" GUI widget."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Component for providing the user with a standard \"tabbed pane\" GUI widget."</span>))
</pre>
<p>Provides a generic tabbed pane that renders a nested div split into a
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">login</span> ()
((username) (password) (message))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Generic login (input username and password) component.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Generic login (input username and password) component.
This component, which must be embedded in another component,
presents the user with a simple two fielded login form.
<pre class="src">
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">check-credentials</span> (login)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Returns T if LOGIN is valid."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Returns T if LOGIN is valid."</span>))
(defaction login-successful ((l login))
(answer t))
user)))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">application-find-user</span> (application username)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Find USER by USERNAME for APPLICATION."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Find USER by USERNAME for APPLICATION."</span>))
</pre>
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">error-message</span> (simple-window-component)
((message <span class="emacs-face-builtin">:accessor</span> message <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:message</span> <span class="emacs-face-builtin">:initform</span> <span class="emacs-face-string">"ERROR [no message specified]"</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Generic component for showing server side
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Generic component for showing server side
error messages."</span>)
(<span class="emacs-face-builtin">:metaclass</span> standard-component-class))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">error-component</span> (error-message)
((condition <span class="emacs-face-builtin">:accessor</span> error.condition <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:condition</span> <span class="emacs-face-builtin">:initform</span> nil)
(backtrace <span class="emacs-face-builtin">:accessor</span> error.backtrace <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:backtrace</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Generic component for showing server side
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Generic component for showing server side
error conditions. Unlike ERROR-MESSAGE this component also
attempts to display a backtrace."</span>)
(<span class="emacs-face-builtin">:metaclass</span> standard-component-class))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">info-message</span> ()
((message <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:message</span> <span class="emacs-face-builtin">:accessor</span> message)
(ok-text <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:ok-text</span> <span class="emacs-face-builtin">:accessor</span> ok-text <span class="emacs-face-builtin">:initform</span> <span class="emacs-face-string">"Ok."</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Component for showing a message to the user.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Component for showing a message to the user.
If the OK-TEXT slot is non-NIL component will use that as the
text for a link which, when clicked, causes the component to
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">option-dialog</span> (template-component)
((message) (options) (confirm))
(<span class="emacs-face-builtin">:default-initargs</span> <span class="emacs-face-builtin">:template-name</span> <span class="emacs-face-string">"ucw/option-dialog.tal"</span>)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Component for querying the user.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Component for querying the user.
The value of the slot MESSAGE is used as a general heading.
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">form-field</span> ()
- ((validators <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"List of validators which will be
+ ((validators <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"List of validators which will be
applied to this field."</span>)
- (initially-validate <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"When non-NIL the
+ (initially-validate <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"When non-NIL the
validators will be run as soon as the page
is rendered."</span>)))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">value</span> (form-field)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The lispish translated value that represents the form-field."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"The lispish translated value that represents the form-field."</span>))
-(<span class="emacs-face-keyword">defgeneric</span> (<span class="emacs-face-function-name">setf value)</span> (new-value form-field)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Set the value of a form-field with translation to client."</span>))
+(<span class="emacs-face-keyword">defgeneric</span> (<span class="emacs-face-function-name">setf value</span>) (new-value form-field)
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Set the value of a form-field with translation to client."</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">generic-html-input</span> (form-field html-element)
((client-value <span class="emacs-face-builtin">:accessor</span> client-value <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:client-value</span>
<span class="emacs-face-builtin">:initform</span> <span class="emacs-face-string">""</span>
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The string the client submitted along with this field."</span>)
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"The string the client submitted along with this field."</span>)
(name <span class="emacs-face-builtin">:accessor</span> name <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:name</span> <span class="emacs-face-builtin">:initform</span> nil)
(accesskey <span class="emacs-face-builtin">:accessor</span> accesskey <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:accesskey</span> <span class="emacs-face-builtin">:initform</span> nil)
(tooltip <span class="emacs-face-builtin">:accessor</span> tooltip <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:tooltip</span> <span class="emacs-face-builtin">:initform</span> nil)
((message <span class="emacs-face-builtin">:accessor</span> message <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:message</span> <span class="emacs-face-builtin">:initform</span> nil)))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">validate</span> (field validator)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Validate a form-field with a validator."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Validate a form-field with a validator."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">javascript-check</span> (field validator)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Generate javascript code for checking FIELD against VALIDATOR.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Generate javascript code for checking FIELD against VALIDATOR.
This is the convenience entry point to generate-javascript-check,
methods defined on this generic funcition should return a list of
javascript variable value."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">javascript-invalid-handler</span> (field validator)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The javascript code body for when a field is invalid."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"The javascript code body for when a field is invalid."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">javascript-valid-handler</span> (field validator)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Generate the javascript body for when a field is valid."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Generate the javascript body for when a field is valid."</span>))
</pre>
<h5>Standard Form Fields</h5>
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">integer-field</span> (number-field))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">in-field-string-field</span> (string-field)
- ((in-field-label <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"This slot, if non-NIL, will be
+ ((in-field-label <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"This slot, if non-NIL, will be
used as an initial field label. An initial
field label is a block of text which is placed
inside the input element and removed as soon
((year) (month) (day)))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">dmy-date-field</span> (date-field)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Date fields which orders the inputs day/month/year"</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Date fields which orders the inputs day/month/year"</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">mdy-date-field</span> (date-field))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">select-field</span> (generic-html-input)
- ((data-set <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The values this select chooses
+ ((data-set <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"The values this select chooses
from."</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Form field used for selecting one value from a
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Form field used for selecting one value from a
list of available options."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">render-value</span> (select-field value)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"This function will be passed each value in the field's
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"This function will be passed each value in the field's
data-set and must produce the body of the corresponding
<ucw:option tag."</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">mapping-select-field</span> (select-field)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Class used when we want to chose the values of
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Class used when we want to chose the values of
a certain mapping based on the keys. We render the keys in the
select and return the corresponding value from the VALUE
method."</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">radio-button</span> (generic-html-input)
((value)
- (group <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The RADIO-GROUP this button is a part
+ (group <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"The RADIO-GROUP this button is a part
of."</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A widget representing a single radio
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A widget representing a single radio
button. Should be used in conjunction with a RADIO-GROUP."</span>))
(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">add-value</span> ((group radio-group) value)
- <span class="emacs-face-string">"Adds radio-button with value to group"</span>)
+ <span class="emacs-face-doc">"Adds radio-button with value to group"</span>)
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">checkbox-field</span> (generic-html-input))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">file-upload-field</span> (generic-html-input))
<pre class="src">
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">mime-part-headers</span> (mime-part)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Returns an alist of the headers of MIME-PART.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Returns an alist of the headers of MIME-PART.
The alist must be of the form (NAME . VALUE) where both NAME and
VALUE are strings."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">mime-part-body</span> (mime-part)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Returns the body of MIME-PART."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Returns the body of MIME-PART."</span>))
</pre>
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">not-empty-validator</span> (validator))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">value-validator</span> (validator)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Validators that should only be applied if there is a value.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Validators that should only be applied if there is a value.
That is, they always succeed on nil."</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">length-validator</span> (value-validator)
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">string=-validator</span> (validator)
((other-field <span class="emacs-face-builtin">:accessor</span> other-field <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:other-field</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Ensures that a field is string= to another one."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Ensures that a field is string= to another one."</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">regex-validator</span> (value-validator)
((regex <span class="emacs-face-builtin">:accessor</span> regex <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:regex</span> <span class="emacs-face-builtin">:initform</span> nil)))
((environment <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:environment</span> <span class="emacs-face-builtin">:initform</span> nil)))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">template-component-environment</span> (component)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Create the TAL environment for rendering COMPONENT's template.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Create the TAL environment for rendering COMPONENT's template.
Methods defined on this generic function must return a TAL
environment: a list of TAL binding sets (see the documentation
(make-standard-environment `((component . ,component)) component))
(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">render</span> ((component template-component))
- <span class="emacs-face-string">"Render a template based component.
+ <span class="emacs-face-doc">"Render a template based component.
Calls the component's template. The name of the template is the
value returned by the generic function
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">range-view</span> (template-component)
(<span class="emacs-face-builtin">:default-initargs</span> <span class="emacs-face-builtin">:template-name</span> <span class="emacs-face-string">"ucw/range-view.tal"</span>)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Component for showing the user a set of data one \"window\" at a time.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Component for showing the user a set of data one \"window\" at a time.
The data set is presented one \"window\" at a time with links to
the the first, previous, next and last window. Each window shows
<pre class="src">
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">render-range-view-item</span> (range-view item)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Render a single element of a range-view."</span>)
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Render a single element of a range-view."</span>)
(<span class="emacs-face-builtin">:method</span> ((range-view range-view) (item t))
<span class="emacs-face-string">"Standard implementation of RENDER-RANGE-VIEW-ITEM. Simply
applies ITEM to princ (via <:as-html)."</span>
(css-style)
(extra-tags)
(events))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"An HTML element.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"An HTML element.
HTML elements control aspects that are relevant to almost all tags.
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">widget-component</span> (html-element)
()
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A widget which should be wrapped in a <div>."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A widget which should be wrapped in a <div>."</span>))
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">inline-widget-component</span> (html-element)
()
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A widget which should be wrapped in <span> and not <div>"</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A widget which should be wrapped in <span> and not <div>"</span>))
(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">render</span> <span class="emacs-face-builtin">:wrap-around</span> ((widget widget-component)))
(<span class="emacs-face-keyword">defmethod</span> <span class="emacs-face-function-name">render</span> <span class="emacs-face-builtin">:wrap-around</span> ((widget inline-widget-component)))
<pre class="src">
(<span class="emacs-face-keyword">defclass</span> <span class="emacs-face-type">task-component</span> (standard-component)
(...)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A controller for a single task or operation to
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A controller for a single task or operation to
be performed by the user.
A task component's START action is called as soon as the
serve only to order a sequence of other components."</span>))
(defgeneric/cc start (task)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"action which gets called automatically when
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"action which gets called automatically when
task-component is active. Use defaction to define your own
\"start\" action"</span>))
</pre>
<pre class="src">
(defcomponent cached-component ()
((cached-output <span class="emacs-face-builtin">:accessor</span> cached-output <span class="emacs-face-builtin">:initform</span> nil
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"A string holding the output to
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"A string holding the output to
use for this component. This string will be
written directly to the html stream and is
changed by the REFRESH-COMPONENT-OUTPUT
method."</span> )
(timeout <span class="emacs-face-builtin">:accessor</span> timeout <span class="emacs-face-builtin">:initarg</span> <span class="emacs-face-builtin">:timeout</span>
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"An value specifying how often this
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"An value specifying how often this
component needs to be refreshed. The exact
interpretation of the value depends on the type of
caching used class."</span>))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Component which caches its output.
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Component which caches its output.
The component caching API is built around the generic functions
COMPONENT-DIRTY-P and REFRESH-COMPONENT-OUTPUT and a method on
Do not use CACHED-COMPONENT directly, use one its subclasses."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">component-dirty-p</span> (component)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Returns T is COMPONENT's cache is invalid."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Returns T is COMPONENT's cache is invalid."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">update-cache</span> (component)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Update COMPONENT's cache variables after a refresh."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Update COMPONENT's cache variables after a refresh."</span>))
(defcomponent timeout-cache-component (cached-component)
((last-refresh <span class="emacs-face-builtin">:accessor</span> last-refresh <span class="emacs-face-builtin">:initform</span> nil
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"The time, exrpessed as a
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"The time, exrpessed as a
universal time, when the component was last rendered."</span>))
(<span class="emacs-face-builtin">:default-initargs</span>
<span class="emacs-face-builtin">:timeout</span> (* 30 60 60))
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Render the component at most every TIMEOUT seconds."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Render the component at most every TIMEOUT seconds."</span>))
(defcomponent num-hits-cache-component (cached-component)
((hits-since-refresh <span class="emacs-face-builtin">:accessor</span> hits-since-refresh
<span class="emacs-face-builtin">:initform</span> nil
- <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Number of views since last refresh."</span>))
+ <span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Number of views since last refresh."</span>))
(<span class="emacs-face-builtin">:default-initargs</span> <span class="emacs-face-builtin">:timeout</span> 10)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Render the component every TIMEOUT views."</span>))
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Render the component every TIMEOUT views."</span>))
</pre>
<p>Subclass and override <code>component-dirty-p</code> to do something useful
This macro assumes that the lexcial variable UCW:SELF is bound to
the calling component."</span>)
-(answer VAL) <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">answer parent component ONLY IN ACTIONS
+(answer VAL) <span class="emacs-face-comment">; answer parent component ONLY IN ACTIONS
</span>
-(ok SELF VAL) <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">Used to answer a component anywhere and what answer
-</span> <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">expands into
+(ok SELF VAL) <span class="emacs-face-comment">; Used to answer a component anywhere and what answer
+</span> <span class="emacs-face-comment">; expands into
</span>
-(jump COMPONENT-NAME <span class="emacs-face-type">&REST</span> ARGS) <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">is similar to call, but replaces
-</span> <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">the current component with the new
-</span> <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">one and drops any backtracks (back
-</span> <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">button will no longer work)
+(jump COMPONENT-NAME <span class="emacs-face-type">&REST</span> ARGS) <span class="emacs-face-comment">; is similar to call, but replaces
+</span> <span class="emacs-face-comment">; the current component with the new
+</span> <span class="emacs-face-comment">; one and drops any backtracks (back
+</span> <span class="emacs-face-comment">; button will no longer work)
</span></pre>
<p><code>(call COMPONENT-NAME &ARGS INIT-ARGS)</code> calls <code>COMPONENT-NAME</code> and returns
<pre class="src">
(defaction NAME (first ...) ...)
- <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">(roughly) expands into
+ <span class="emacs-face-comment">; (roughly) expands into
</span>(defmethod/cc NAME (first ...)
(<span class="emacs-face-keyword">let</span> ((self first))
...))
<pre class="src">
(defentry-point url (<span class="emacs-face-builtin">:application</span> APPLICATION
<span class="emacs-face-builtin">:class</span> DISPATCHER-CLASS)
- (PARAM1 ... PARAMN) <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">GET / POST vars, bound in body
+ (PARAM1 ... PARAMN) <span class="emacs-face-comment">; GET / POST vars, bound in body
</span> body)
</pre>
<pre class="src">
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">matcher-match</span> (matcher application context)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Abstract method for subclasses to implement a
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Abstract method for subclasses to implement a
matcher. This method would return multiple-values according to
matcher internal nature.
CONTEXT's application nor rebind *context*."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">handler-handle</span> (handler application context matcher-result)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Abstract function for handler classes to
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Abstract function for handler classes to
implement in order to handle a request matched by relevant
matcher.
matched, request will be closed after this method is run."</span>))
(<span class="emacs-face-keyword">defgeneric</span> <span class="emacs-face-function-name">dispatch</span> (dispatcher application context)
- (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"Entry point into a dispatcher. Must return T
+ (<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"Entry point into a dispatcher. Must return T
if the context has been handled or NIL if it hasn't.
No methods defined on this function may rebind *context*, nor
Simple Dispatcher</h4>
<pre class="src">
-(<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-string">"This class of dispatchers avoids all of UCW's
+(<span class="emacs-face-builtin">:documentation</span> <span class="emacs-face-doc">"This class of dispatchers avoids all of UCW's
standard call/cc (and therefore frame/backtracking/component)
mechanism.
Logs are generated in verbosity defined by LOG-LEVEL and directed to
LOG-ROOT-DIRECTORY if defined."</span>
...
- server) <span class="emacs-face-comment-delimiter">; </span><span class="emacs-face-comment">return server, naturally
+ server) <span class="emacs-face-comment">; return server, naturally
</span></pre>
</a>
</p>
-<p class="cke-footer">No, there's nothing here about X, so be quiet.
+<p class="cke-footer"> To Wise Man's Son and Wednesday's Child all is white that is not black
+ They dance in symbiotic deadlock; one step forward two steps back
+ Playing karmic snakes and ladders (All your sins will find you out)
+ When all your gains are lost in vain on cosmic wings and roundabouts
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">Jessie: i stuck the phone antenna up the dogs nose and he ignored me
+<p class="cke-footer">Jessie: i thought your beard took the oxygen from the air and made it
+ breathable for you
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">And did those feet in ancient time
-Walk upon England's mountains green?
-And was the holy Lamb of God
-On England's pleasant pastures seen?
+<p class="cke-footer">* jeffcovey becomes too groggy to read the directions and becomes
+ the year's first nasal spray overdose fatality.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">Corinne: rub a dub dub nekked in the tub
+<p class="cke-footer">Leebert: You don't listen to music.
+Leebert: You listen to the audio equivalent of /dev/urandom
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">"Karen loved animals. Unfortunately the cheetahs betrayed her trust,"
-Libot said.
+<p class="cke-footer"><captain_krunk> ntk is currently using "telnet fyodor 25" to send email
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
</a>
</p>
-<p class="cke-footer">Leebert: I'm reminded why I dislike programming so much.
-unknownlamer: Programming is fun
-Leebert: So is anal rape.
+<p class="cke-footer">Mike: I WAS NOT MICROWAVED.
</p>
<p class="cke-timestamp">Last Modified:
January 21, 2013</p>
--- /dev/null
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>The Home of Your Friendly Neighborhood Terrorist</title>
+ <meta name="generator" content="muse.el" />
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=utf-8" />
+ <link href="http://feeds.unknownlamer.org/rss/site-updates"
+ rel="alternate" type="application/rss+xml" title="Updates Feed" />
+
+<link rel="stylesheet" href="default.css" />
+ </head>
+ <body>
+ <h1>The Home of Your Friendly Neighborhood Terrorist</h1>
+ <div class="contents">
+<dl>
+<dt>
+<a href="#sec1">Sections</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec2">Boring Technical Stuff (I Know I Know, You're Probably Here for This)</a>
+</dt>
+<dt>
+<a href="#sec3">Perhaps Interesting</a>
+</dt>
+<dt>
+<a href="#sec4"><em>Et cetera</em></a>
+</dt>
+<dt>
+<a href="#sec5">Unabashed Navel Gazing</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec6">About Me / Contact</a>
+</dt>
+<dd>
+<dl>
+<dt>
+<a href="#sec7">GnuPG</a>
+</dt>
+<dt>
+<a href="#sec8">Email</a>
+</dt>
+<dt>
+<a href="#sec9">Jabber</a>
+</dt>
+<dt>
+<a href="#sec10">IRC</a>
+</dt>
+<dt>
+<a href="#sec11">Résumé</a>
+</dt>
+<dt>
+<a href="#sec12">A Picture</a>
+</dt>
+<dt>
+<a href="#sec13">Site Software</a>
+</dt>
+<dt>
+<a href="#sec14">Ancient History</a>
+</dt>
+</dl>
+</dd>
+</dl>
+</div>
+
+
+<!-- Page published by Emacs Muse begins here --><p>Greetings, my name is Clinton and you have stumbled upon my personal
+website. This is a continually evolving project as most things on the
+web are.</p>
+
+<p>You might want to check out my <a href="http://journal.unknownlamer.org/">weblog</a> (warning: contains pictures of
+cats and rants about OpenAFS and Common Lisp).</p>
+
+<h2><a name="sec1" id="sec1"></a>
+Sections</h2>
+
+<h3><a name="sec2" id="sec2"></a>
+Boring Technical Stuff (I Know I Know, You're Probably Here for This)</h3>
+
+<ul>
+<li><a href="Code.html">Code</a>
+
+<ul>
+<li><a href="http://unknownlamer.org/darcsweb/browse">darcsweb</a></li>
+<li><a href="http://git.hcoop.net/?a=project_list;o=age;pf=clinton">gitweb</a> (although a lot of my time is spent on <a href="http://git.hcoop.net/?a=project_list;o=age;pf=hcoop">HCoop code</a>)</li>
+</ul></li>
+<li><a href="Lisp.html">Lisp Stuff</a></li>
+<li><a href="Android.html">Android</a></li>
+</ul>
+
+
+<h3><a name="sec3" id="sec3"></a>
+Perhaps Interesting</h3>
+
+<ul>
+<li><a href="Cooking.html">Cooking</a></li>
+<li><a href="Homebrewing.html">Homebrewing</a></li>
+<li><a href="Book%20List.html">Things I Have Read</a></li>
+</ul>
+
+
+<h3><em><a name="sec4" id="sec4"></a>Et cetera</em></h3>
+
+<ul>
+<li><a href="Imagery.html">Imagery</a></li>
+<li><a href="Politics.html">Political and Social Views</a></li>
+<li><a href="Music.html">Music</a></li>
+</ul>
+
+
+<h3><a name="sec5" id="sec5"></a>
+Unabashed Navel Gazing</h3>
+
+<ul>
+<li><a href="Bicycle.html">Bicycle</a></li>
+<li><a href="Kilt.html">Kilt</a></li>
+<li><a href="Maytag.html">Cat</a></li>
+</ul>
+
+
+
+
+<h2><a name="sec6" id="sec6"></a>
+About Me / Contact</h2>
+
+<p class="first">I am a mild mannered hacker and metalhead.</p>
+
+<p>I hack Lisp and am on the board of a <a href="http://hcoop.net">hosting cooperative</a> that you
+should join.</p>
+
+<p>I welcome criticism and suggestions to improve anything I have
+written here.</p>
+
+<h3><a name="sec7" id="sec7"></a>
+GnuPG</h3>
+
+<p><a href="email-key.asc">BCE8 C667 7CD2 7139 735C 2F99 DB28 E55B 381E 3395</a> General use key. I
+sign my mail with this and you can send me encrypted messages using it
+if you fear the orbital mind control lasers.</p>
+
+<p><a href="software-signing-key.asc">F169 C3BC 9751 843F 9497 42BE 3F59 9AAE 7C43 A9F4</a> (key used for
+signing software release tarballs). <strong>Notice</strong>: I forgot the passphrase
+and lost the revocation (I know, I'm a terrible person) and so this
+key was regenerated <code>2010-04-16</code>. Or perhaps <em>The Network</em> got to me.</p>
+
+
+<h3><a name="sec8" id="sec8"></a>
+Email</h3>
+
+<p><code>clinton at unknownlamer dot gro</code> (a simple puzzle)</p>
+
+
+<h3><a name="sec9" id="sec9"></a>
+Jabber</h3>
+
+<p><code>clinton at hcoop dot net</code> (this also works as an email address and must
+be protected as a result)</p>
+
+
+<h3><a name="sec10" id="sec10"></a>
+IRC</h3>
+
+<p class="first">I hang out on Freenode and oftc as <code>unknown_lamer</code> in various
+channels. <code>/whois</code> will guide you to me.</p>
+
+
+<h3><a name="sec11" id="sec11"></a>
+Résumé</h3>
+
+<p class="first">I am a programmer by trade, and as such have a (potentially) fancy and
+most certainly oudated <a href="files/resume.pdf">Résumé</a>. I am quite familiar with <a href="http://common-lisp.net/project/ucw/">UnCommon Web</a>
+and Common Lisp in general. This, naturally, makes me pretty
+unemployable.</p>
+
+
+<h3><a name="sec12" id="sec12"></a>
+A Picture</h3>
+
+<table class="image" width="100%">
+ <tr><td align="center"><img src="img/photos/me/2009-10-31.jpg" alt="A Furry Young Lad" /></td></tr>
+ <tr><td align="center" class="image-caption">A Furry Young Lad</td></tr>
+</table>
+
+
+<h3><a name="sec13" id="sec13"></a>
+Site Software</h3>
+
+<p class="first">I use <a href="http://www.mwolson.org/projects/MuseMode.html">muse-mode</a> to author the site because <a href="http://emacswiki.org">Emacs</a> is all powerful, and
+the closest approximation to a good user interface available on any
+modern computer system. Muse allows me to simply write with very low
+overhead (I spend most of my time in Emacs, and having hyperlinks and
+a reasonable preview in the file buffer is quite useful). The file
+format is quite hairy, but luckily the code is Free Software and, if
+needed, I could easily write a publishing backend that transcoded my
+site to an easier to parse format. There are advantages to being a
+programmer.</p>
+
+<p>I use darcs to push updates to the site and manage my muse files. As
+such there is a handy <a href="http://feeds.unknownlamer.org/rss/site-updates">updates feed</a> courtesy of a small Lisp program I
+wrote and darcs.</p>
+
+<p>A <a href="Site%20Software.html">more detailed description</a> of my setup is available.</p>
+
+
+<h3><a name="sec14" id="sec14"></a>
+Ancient History</h3>
+
+<p><a href="http://unknownlamer.org/index.1999_2006.html">The Old Site</a> is still available. Links to pages there will remain
+stable indefinitely so as to not break the Holy Command of Our Sovran
+Hypertextia. Be warned I may have been a teenager when most of it was
+written.</p>
+
+
+
+ <!-- Page published by Emacs Muse ends here -->
+
+ <p class="cke-buttons">
+ <!-- validating badges, any browser, etc -->
+ <a href="http://validator.w3.org/check/referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml10"
+ alt="Valid XHTML 1.0!" /></a>
+
+ <a href="http://www.anybrowser.org/campaign/"><img
+ src="img/buttons/w3c_ab.png" alt="[ Viewable With Any Browser
+ ]" /></a>
+
+ <a href="http://www.debian.org/"><img
+ src="img/buttons/debian.png" alt="[ Powered by Debian ]" /></a>
+
+ <a href="http://hcoop.net/">
+ <img src="img/buttons/hcoop.png"
+ alt="[ Hosted by HCoop]" />
+ </a>
+
+ <a href="http://www.fsf.org/register_form?referrer=114">
+ <img src="img/buttons/fsf_member.png"
+ alt="[ FSF Associate Member ]" />
+ </a>
+ </p>
+
+<p class="cke-footer">'Asked whether it is a good thing that the course of our
+civilization being largely directed by gigantic immortal,
+belligerent, unsleeping multiheaded tax-avoiding parakeets whose
+unnatural lusts can never be sated, Dr. Larkey declined to
+comment, noting that "corporations have the rights of personhood
+in this country" and that "it is not my place to criticize the
+law".'
+</p>
+<p class="cke-timestamp">Last Modified:
+ January 21, 2013</p>
+ </body>
+</html>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>planner-cke.el</title>
+ <meta name="generator" content="muse.el" />
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=utf-8" />
+ <link href="http://feeds.unknownlamer.org/rss/site-updates"
+ rel="alternate" type="application/rss+xml" title="Updates Feed" />
+
+<link rel="stylesheet" href="default.css" />
+ </head>
+ <body>
+ <h1>planner-cke.el</h1>
+ <div class="contents">
+<dl>
+</dl>
+</div>
+
+
+<!-- Page published by Emacs Muse begins here --><p>;;; Planner Mode Settings
+(require 'planner)</p>
+
+<p>;;; Basic Config
+(setq planner-carry-tasks-forward 1)
+(setq planner-project "clintons-plans")</p>
+
+<p>(setq planner-use-other-window nil)</p>
+
+<p>;;; Planner template
+(setq planner-day-page-template
+<p style="text-align: center;">
+"* Tasks\n\n\n* Schedule\n\n\n* Notes\n\n\n* Timeclock\n\n\n* Accomplishments\n\n")
+</p>
+
+<p>;;; General Key Bindings
+(global-set-key [?\C-c ?p ?p] #'plan)
+(global-set-key [?\C-c ?p ?d] #'planner-goto-today)
+(global-set-key [?\C-c ?p ?b] #'planner-create-task-from-buffer)
+(global-set-key [?\C-c ?p ?B] #'cke-planner-create-task-from-buffer-extended)
+(global-set-key [?\C-c ?p ?t] #'planner-create-task)
+(global-set-key [?\C-c ?p ?T] #'cke-planner-create-task-extended)
+(global-set-key [?\C-c ?r] #'remember)</p>
+
+<p>;; My emacs runs continually and this ensures that my todo list will
+;; be in front of me when I wake up in the morning
+(add-hook 'midnight-hook #'(lambda ()
+<p style="text-align: center;">
+;; Rebind hook to nil to supress prompts
+;; for auto created cyclic tasks
+(let ((planner-create-task-hook nil)
+;; Only try to create cyclic tasks
+;; when new page is created
+;; automatically because it is
+;; annoying as hell to have the
+;; prompts for my cyclic tasks to
+;; come up when scheduling future
+;; tasks.
+(planner-mode-hook (cons #'planner-cyclic-create-tasks-maybe
+planner-mode-hook)))
+(plan))))
+</p>
+
+<p>;;; Extra task interfaces
+(require 'planner-w3m)
+(require 'planner-bibtex)
+(require 'planner-bookmark)</p>
+
+<p>(require 'planner-publish)</p>
+
+<p>(setq planner-html-inner-header
+<p style="text-align: center;">
+"<calendar arrows=\"t\">
+")
+</p>
+
+<p>(setq planner-calendar-prev-month-button
+<p style="text-align: center;">
+"<<")
+(setq planner-calendar-next-month-button
+">>")
+</p>
+
+<p>;;; Remember
+(require 'remember-planner)
+(setq remember-handler-functions '(remember-planner-append))
+(setq remember-annotation-functions planner-annotation-functions)</p>
+
+<p>;; Local Keybindings
+(define-key planner-mode-map [?\C-c ?n] #'planner-create-note-from-task)
+(define-key planner-mode-map [?\C-c ?d] #'planner-deadline-change)</p>
+
+<p>(require 'planner-gnus)
+(planner-gnus-insinuate)</p>
+
+<p>;; Prompt for a deadline in addition to start date when creating new tasks
+(require 'planner-deadline)</p>
+
+<p>(planner-calendar-insinuate)
+(define-key global-map [?\C-c ?p ?c] #'calendar)</p>
+
+
+<p>;;; Ranking customizations
+(require 'planner-rank)</p>
+
+<p>;; Asks for importance before deadline to allow adding importance to
+;; tasks without a deadline.
+(defun cke-planner-deadline-add (date)
+<blockquote>
+<p class="quoted">(interactive (list (planner-read-date nil t)))
+;; Overload this for the extent because I don't care
+;; about manually setting the urgency; a task lacking a
+;; deadline is for me one with 'average' urgency.
+(cond (date (planner-deadline-add date))
+(t
+(flet ((planner-rank-read-importance-and-urgency
+()
+(list
+(string-to-number
+(read-string "Importance: "
+nil
+nil
+(number-to-string
+planner-rank-default-importance)))
+planner-rank-default-urgency)))
+(planner-rank-change)))))</p>
+</blockquote>
+
+<p>(defun cke-planner-call-extended (fun)
+<blockquote>
+<p class="quoted">(let ((planner-create-task-hook
+(cons #'(lambda ()
+(call-interactively #'cke-planner-deadline-add))
+planner-create-task-hook)))
+(call-interactively fun)))</p>
+</blockquote>
+
+<p>(defun cke-planner-create-task-extended ()
+<blockquote>
+<p class="quoted">"Prompt for deadline and/or importance when creating a task"
+(interactive)
+(cke-planner-call-extended #'planner-create-task))</p>
+</blockquote>
+
+<p>(defun cke-planner-create-task-from-buffer-extended ()
+<blockquote>
+<p class="quoted">"Prompt for deadline and/or importance when creating a task from a buffer"
+(interactive)
+(cke-planner-call-extended #'planner-create-task-from-buffer))</p>
+</blockquote>
+
+<p>(setq planner-sort-tasks-key-function
+<p style="text-align: center;">
+<a name="'planner-sort-tasks-by-rank)" id="'planner-sort-tasks-by-rank)"></a>
+</p>
+
+<p>(setq planner-rank-importance-vs-urgency-factor 1.5)</p>
+
+<p>(setq planner-rank-priority-A-valve 6.49)
+(setq planner-rank-priority-B-valve 4.49)</p>
+
+<p>;;; note: tenative
+;(setq planner-rank-deadline-urgency-map-list '(-1 0 4 10 21 30 90 180 365))</p>
+
+<p>(define-key planner-mode-map [?\C-c ?i] #'planner-rank-change)</p>
+
+<p>;;; Cyclic Tasks
+(require 'planner-cyclic)</p>
+
+<p>(setq planner-cyclic-diary-file "~/plans/diary.cyclic-tasks")</p>
+
+<p>;; Cyclic tasks are only created when #'plan is run by midnight-mode
+(remove-hook 'planner-mode-hook 'planner-cyclic-create-tasks-maybe)</p>
+
+<p>;;; Task IDs
+(require 'planner-id)</p>
+
+<p>(setq planner-id-tracking-file "~/plans/.planner-id")</p>
+
+
+<p>;;; Experimental
+(defun cke-planner-get-annot ()
+<blockquote>
+<p class="quoted">(interactive)
+(kill-new (or (run-hook-with-args-until-success
+'planner-annotation-functions)
+"")))</p>
+</blockquote>
+
+<p>(define-key global-map [?\C-c ?p ?a] #'cke-planner-get-annot)</p>
+
+<p>(require 'planner-schedule)
+;(require 'planner-timeclock)
+;(require 'planner-timeclock-summary)</p>
+
+<p>(setq timeclock-file (cke-personal-file "timelog"))</p>
+
+<p>;(planner-timeclock-summary-insinuate)</p>
+
+<p>(define-key planner-mode-map [?\C-c ?\C-o] #'(lambda ()
+<p style="text-align: center;">
+(interactive)
+(planner-task-open)
+(timeclock-out)))
+</p>
+
+<p>(require 'planner-calendar)</p>
+
+<p>(setq planner-calendar-today-page-name "index")</p>
+
+<p>;; 2018-10-26 seems to be broken...
+;(eval-after-load "muse-publish"</p>
+
+
+
+<p>(require 'planner-accomplishments)</p>
+
+<p>(setq planner-accomplishments-status-display
+<p style="text-align: center;">
+'(("_" . "Unfinished")
+; ("o" . "In progress")
+; ("D" . "Delegated")
+("P" . "Postponed")
+("X" . "Completed")
+("C" . "Cancelled")))
+</p>
+
+<p>(planner-accomplishments-insinuate)</p>
+
+<p>;;; Special task creation functions</p>
+
+<p>(defun cke-planner-create-book-tasks-range (title start end)
+<blockquote>
+<p class="quoted">"Create undated tasks for reading individual sections of a
+book"
+(interactive "MTitle: \nnStart: \nnEnd: ")
+(dotimes (chapter-base (- (1+ end) start))
+(planner-create-task (format "Reading: %s: Chapter %d"
+title (+ chapter-base start))
+nil nil "Reading" "P")))</p>
+</blockquote>
+
+<p>(defun cke-planner-create-book-tasks (title chapters)
+<blockquote>
+<p class="quoted">"Create undated tasks for reading individual sections of a
+book"
+(interactive "MTitle: \nnChapters: ")
+(cke-planner-create-book-tasks-range title 1 chapters))</p>
+</blockquote>
+
+<p>(defun cke-planner-create-bicycle-light-tasks ()
+<blockquote>
+<p class="quoted">(interactive)
+(let ((cke-date (planner-read-date))
+(planner-default-task-priority "A"))
+(mapc (lambda (task-description)
+(planner-create-task task-description cke-date nil "Bicycle"))
+'("Charge headlight"
+"Charge LD-600 AAAs"
+"Charge LD-1000 AAs"))))</p>
+</blockquote>
+
+<p>(global-set-key [?\C-c ?p ?e ?b] #'cke-planner-create-book-tasks)
+(global-set-key [?\C-c ?p ?e ?B] #'cke-planner-create-book-tasks-range)
+(global-set-key [?\C-c ?p ?e ?l] #'cke-planner-create-bicycle-light-tasks)</p>
+
+
+<p>;;; Diary Integration
+;; (require 'planner-diary)</p>
+
+<p>(setq diary-file "~/plans/diary")
+;; (add-hook 'diary-display-hook 'fancy-diary-display)</p>
+
+<p>;; (setq planner-diary-string "* Schedule")
+;; (setq planner-diary-use-diary t)
+;; (planner-diary-insinuate)</p>
+
+<p>;;; Appointments
+(require 'planner-appt)</p>
+
+<p>(setq planner-appt-task-use-appointments-section-flag t)</p>
+
+<p>(planner-appt-use-tasks)
+(planner-appt-insinuate)</p>
+
+<p>;;; BBDB
+(require 'planner-bbdb)</p>
+
+<p>;;; VC Integration
+(require 'planner-log-edit)</p>
+
+<p>;;; Misc Local Keybindings
+(define-key planner-mode-map [?\C-c (control shift ?p)] #'planner-task-pending)</p>
+
+<p>;;; Faces
+(custom-set-faces
+<blockquote>
+<p class="quoted">'(planner-cancelled-task-face ((t (:foreground "gray70" :strike-through "red" :height 0.85))))
+'(planner-completed-task-face ((t (:foreground "gray70" :strike-through "green" :height 0.85))))
+'(planner-low-priority-task-face ((t (:foreground "cyan")))))</p>
+</blockquote>
+
+<p>;;; Works in Progress</p>
+
+<p>;; Next
+;; 1. overlay modification hooks
+;; a. behavior
+;; b. modifying overlay when text length changes
+;; 2. regex matching
+;; a. match groups
+;; 3. integrate with planner
+;; a. use planner deadline functions to match task deadline
+;; b. insert overlay
+;; i. manage overlay size when task is changed
+;; c. hook into planner
+;; 4. Cleanup
+;; a. create a category for the deadline overlay
+;; i. move properties from function to plist on category
+(defun cke-planner-overlay-test ()
+<blockquote>
+<p class="quoted">(save-selected-window
+(switch-to-buffer (get-buffer-create "<em>foo</em>"))
+(let ((cke-overlay (or (car (overlays-at 8))
+(make-overlay 8 13))))
+(overlay-put cke-overlay 'before-string "foo1")
+(overlay-put cke-overlay 'invisible t))))</p>
+</blockquote>
+
+<p>;; Version control integration
+(defun vc-darcs-init-version ()
+<blockquote>
+<p class="quoted">nil)</p>
+</blockquote>
+
+<p>;; this needs to only try to check in new files of the planner
+;; project, and then only when they are real files and not transient
+;; report buffers
+(defadvice planner-prepare-file (after cke-planner-darcs-add
+<p style="text-align: center;">
+disable)
+"Add empty planner files to the current darcs repo if the
+planner projects under vc"
+(set-buffer-modified-p t)
+(save-buffer)
+(when (and (buffer-file-name)
+(eq (muse-project-of-file (buffer-file-name))
+planner-project))
+(let ((vc-default-init-version nil))
+(if (not (condition-case nil
+(vc-register nil nil)
+(error t)))
+(vc-checkin (buffer-file-name) nil "Initial Checkin")))))
+</p>
+
+<p>(ad-unadvise #'planner-prepare-file)</p>
+ <!-- Page published by Emacs Muse ends here -->
+
+ <p class="cke-buttons">
+ <!-- validating badges, any browser, etc -->
+ <a href="http://validator.w3.org/check/referer"><img
+ src="http://www.w3.org/Icons/valid-xhtml10"
+ alt="Valid XHTML 1.0!" /></a>
+
+ <a href="http://www.anybrowser.org/campaign/"><img
+ src="img/buttons/w3c_ab.png" alt="[ Viewable With Any Browser
+ ]" /></a>
+
+ <a href="http://www.debian.org/"><img
+ src="img/buttons/debian.png" alt="[ Powered by Debian ]" /></a>
+
+ <a href="http://hcoop.net/">
+ <img src="img/buttons/hcoop.png"
+ alt="[ Hosted by HCoop]" />
+ </a>
+
+ <a href="http://www.fsf.org/register_form?referrer=114">
+ <img src="img/buttons/fsf_member.png"
+ alt="[ FSF Associate Member ]" />
+ </a>
+ </p>
+
+<p class="cke-footer">Mike: I WAS NOT MICROWAVED.
+</p>
+<p class="cke-timestamp">Last Modified:
+ October 26, 2018</p>
+ </body>
+</html>
\ No newline at end of file