<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>What's In Peter's Head &#187; Lisp</title>
	<atom:link href="http://www.pchristensen.com/blog/articles/category/lisp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pchristensen.com/blog</link>
	<description>Peter Christensen's Blog</description>
	<lastBuildDate>Thu, 24 Jun 2010 13:09:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Recap of Intro to Lisp Workshop</title>
		<link>http://www.pchristensen.com/blog/articles/recap-of-intro-to-lisp-workshop/</link>
		<comments>http://www.pchristensen.com/blog/articles/recap-of-intro-to-lisp-workshop/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 17:37:03 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://www.pchristensen.com/blog/?p=270</guid>
		<description><![CDATA[Thanks to everyone who attended or helped with the Chicago Lisp User Group&#8217;s Intro to Lisp Workshop!  We had a great turnout (41 people!), a great facility (thanks to IIT&#8217;s Institute of Design), food and prizes (thanks to Obtiva), plus there was some Lisp too! This page will (eventually) contain links to all of [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to everyone who attended or helped with the Chicago Lisp User Group&#8217;s Intro to Lisp Workshop!  We had a great turnout (41 people!), a great facility (thanks to IIT&#8217;s Institute of Design), food and prizes (thanks to Obtiva), plus there was some Lisp too! This page will (eventually) contain links to all of the information about the workshop, but since most of it isn&#8217;t written or produced yet, this will at least give an idea of what to look forward to.  All of the presentations were videotaped and those videos will eventually be online.  There is also a big stack of feedback forms waiting to be collated, and some of that feedback will be put online.</p>
<p><strong><a href="http://www.pchristensen.com/blog/articles/chicago-intro-to-lisp-workshop-attendee-stats/">Attendee Statistics</a></strong> &#8211; a breakdown of the programming languages and OS of choice, as well as a geographic breakdown of where attendees came from.</p>
<p><strong>Funniest Comment</strong> &#8211; someone&#8217;s IM status was set to &#8220;Developing a speech impediment&#8230;&#8221;</p>
<p><strong>Presentations</strong></p>
<ul>
<li><em>Setting up a Lisp Development Environment</em> &#8211; this actually didn&#8217;t end up being much of a presentation, since the setup documents for Linux, OSX, and <a href="http://www.pchristensen.com/blog/articles/installing-sbcl-emacs-and-slime-on-windows-xp/">Windows</a> ended up being so thorough that most people didn&#8217;t need to troubleshoot.</li>
<li><em>Lisp Basics and Idioms</em> (by Peter Christensen) &#8211; my intro talk that covered the history, concepts, and paradigms of Lisp.  The goal was to give a big picture and proper mindset for development in Lisp.
<ul>
<li><a href="http://www.pchristensen.com/blog/articles/lisp-basics-and-idioms-presentation-from-intro-to-lisp-workshop/">HTML version of presentation slides</a> (with links, extra resources, etc)</li>
</ul>
</li>
<li><em>Macros</em> (by Craig Luddington and Eli Naeher) &#8211; an interactive talk on macros, showing basics of macro development, macro examination in SLIME, and a survey of some of the built-in macros of Common Lisp.</li>
<li><em>Chat Server Development Demo</em> (by John Quigley) &#8211; John started with a quiz-show style review where he tested two unwitting volunteers on their understanding of Lisps execution and development model.  After that, he demoed a chat server that he wrote in about 250 lines of Lisp.  Due to technical difficulties and time constraints, he wasn&#8217;t able to do the live updates, but we were proud to have several minutes of open chat on the server where no one cursed (I think the worst comment was &#8220;turd&#8221;).  John has promised a demo of it at one of our meetings.</li>
</ul>
<p><a href="http://www.amazon.com/exec/obidos/ASIN/0596510047/pchristensen-20"><img style="float:right;margin-left:4px;border:0px;" src="http://ecx.images-amazon.com/images/I/41gMIrC%2BDrL._SL160_.jpg" alt="Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly))" width="122" height="160" /></a></p>
<p><a href="http://www.amazon.com/exec/obidos/ASIN/0521692695/pchristensen-20"><img style="float:right;margin-left:4px;border:0px;" src="http://ecx.images-amazon.com/images/I/41rwtENNgBL._SL160_.jpg" alt="Programming in Haskell" width="123" height="160" /></a></p>
<p><a href="http://www.amazon.com/exec/obidos/ASIN/1590592395/pchristensen-20"><img style="float:right;margin-left:4px;border:0px;" src="http://ecx.images-amazon.com/images/I/51kJaXsi6hL._SL160_.jpg" alt="Practical Common Lisp" width="115" height="160" /></a></p>
<p><strong>Book Raffle Winners</strong></p>
<p>Congratulations to Luke Orland, Janet Kirsch, and (should have written down the third name) who won the following books in our registration raffle.</p>
<p><strong>Gift-bag DVDs</strong></p>
<p><a href="http://wisdomandwonder.com/" target="_blank">Grant Rettke</a> took the initiative to put together a &#8220;gift bag&#8221; DVD full of resources for people looking to learn more about Lisp development.  The <a href="http://www.chicagolisp.org/wiki/doku.php?id=giftbag" target="_blank">complete list</a> is very long, but here is a summary:</p>
<ul>
<li>Electronic versions of books like <a href="http://www.paulgraham.com/onlisptext.html" target="_blank">OnLisp</a>, <a href="http://mitpress.mit.edu/sicp/full-text/book/book.html" target="_blank">SICP</a>, etc</li>
<li>Screencasts and movies like those from the <a href="http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/" target="_blank">SICP lectures</a>, <a href="http://www.lispcast.com/" target="_blank">LispCast</a>, the <a href="http://www.pchristensen.com/blog/articles/reference-for-the-slimelispemacs-screencast/">SLIME movie</a>, etc</li>
<li>Tons of documents like my <a href="http://www.pchristensen.com/blog/articles/public-beta-open-for-ultimate-n00b-slimeemacs-cheat-sheet/">SLIME cheat sheet</a>, intro documents for Scheme and Lisp programming, some background and historical documents, etc</li>
</ul>
<p>We&#8217;re looking to make an updated version of this DVD, including the materials from the workshop.  Please <a href="http://www.pchristensen.com/blog/contact-me/">let me know</a> if you&#8217;d be interested one &#8211; if there is a lot of interest, we might make another batch and mail them out for a small fee.</p>
<p><strong>After-Party</strong></p>
<p>After the workshop, a dozen or so people walked down to <a href="http://www.elephantcastle.com/content/locations/chicago_adams_st" target="_blank">Elephant &amp; Castle Pub and Restaurant</a>.  I didn&#8217;t go since I had a house full of beautiful women waiting for me (my wife and daughters <img src='http://www.pchristensen.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p><strong>Sponsors</strong></p>
<p>Special thanks to Kevin Taylor of Obtiva for sponsoring the food, drinks, gift DVDs, and the Practical Common Lisp prize book!  Obtiva does on-site or outsourced development, and provides training in leading edge technologies.</p>
<p><a href="http://obtiva.com/"><img class="alignnone size-full wp-image-268" style="border:0px;" title="obtiva" src="http://www.pchristensen.com/blog/wp-content/uploads/2008/06/obtiva.png" alt="" width="250" height="68" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pchristensen.com/blog/articles/recap-of-intro-to-lisp-workshop/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>&#8220;Lisp Basics and Idioms&#8221; Presentation from Intro to Lisp Workshop</title>
		<link>http://www.pchristensen.com/blog/articles/lisp-basics-and-idioms-presentation-from-intro-to-lisp-workshop/</link>
		<comments>http://www.pchristensen.com/blog/articles/lisp-basics-and-idioms-presentation-from-intro-to-lisp-workshop/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 00:01:19 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://www.pchristensen.com/blog/?p=263</guid>
		<description><![CDATA[This is an HTML version of the slides from my &#8220;Lisp Basics and Idioms&#8221; presentation at the Chicago Lisp User Group&#8217;s Intro to Lisp Workshop.  It&#8217;s also videotaped but it will take a while to transfer it to digital, edit it, etc.  It was a good presentation (IMHO) worth waiting for, but here&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>This is an HTML version of the slides from my &#8220;Lisp Basics and Idioms&#8221; presentation at the Chicago Lisp User Group&#8217;s Intro to Lisp Workshop.  It&#8217;s also videotaped but it will take a while to transfer it to digital, edit it, etc.  It was a good presentation (IMHO) worth waiting for, but here&#8217;s the sneak peek (with links!).</p>
<p>If you want to look at the .ppt, you can <a href="http://www.pchristensen.com/blog/wp-content/uploads/2008/05/lisp-basics-and-idioms.ppt">download it here</a>, but it&#8217;s pretty bare (or ugly, depending on how charitable you are), it doesn&#8217;t have as much info as the version below (no links, fewer references), and it is missing all of the good verbal ad-libbing I did when presenting.  But hey, I&#8217;m not complaining if you want to see it!</p>
<p><strong>***Lisp Basics and Idioms***</strong></p>
<p><span id="more-263"></span></p>
<p><strong>Lisp Is Old</strong></p>
<ul>
<li>1958: John McCarthy writes an algebraic list processing language for AI work
<ul>
<li>Original Paper: <a href="http://www-formal.stanford.edu/jmc/recursive.html" target="_blank">RECURSIVE FUNCTIONS OF SYMBOLIC EXPRESSIONS AND THEIR COMPUTATION BY MACHINE (Part I)</a></li>
</ul>
</li>
<li><a href="http://www-formal.stanford.edu/jmc/history/lisp/lisp.html" target="_blank">McCarthy’s grad student wrote an interpreter for it</a></li>
<li>Strongly tied to AI research during the 70s and 80s
<ul>
<li><a href="http://www.cs.umbc.edu/331/resources/papers/Evolution-of-Lisp.pdf" target="_blank">Evolution of Lisp</a> (pdf)</li>
</ul>
</li>
<li>Fell from prominence during the <a href="http://en.wikipedia.org/wiki/AI_winter" target="_blank">AI Winter</a></li>
</ul>
<p><strong>Lisp Is New</strong></p>
<ul>
<li>Paul Graham’s essays – <a href="http://paulgraham.com/avg.html" target="_blank">Beating the Averages</a>, <a href="http://lib.store.yahoo.net/lib/paulgraham/bbnexcerpts.txt" target="_blank">Lisp in Web-Based Applications</a></li>
<li>Eric Raymond – “&#8221;LISP is worth learning for … the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot.“
<ul>
<li>This and <a href="http://paulgraham.com/quotes.html" target="_blank">lots more Lisp quotes</a></li>
</ul>
</li>
<li>Me &#8211; <a href="http://www.pchristensen.com/blog/articles/lisp-the-golden-age-isnt-coming-back-lets-welcome-a-bright-future/">Lisp: The Good Old Days Will Never Come Back &#8211; Let&#8217;s Welcom a Bright Future</a></li>
<li>Recent development of open source versions</li>
</ul>
<p><strong>Lisp Is A Family of Languages</strong></p>
<ul>
<li>Common Lisp: ANSI Standard written in the 80s caused languages to coalesce, then implementations to flourish
<ul>
<li><a href="http://common-lisp.net/~dlw/LispSurvey.html" target="_blank">Common Lisp Implementations: A Survey</a></li>
</ul>
</li>
<li>Scheme: A conceptually cleaner variant with a smaller specification</li>
<li>Proprietary: <a href="http://www.lispworks.com/downloads/" target="_blank">LispWorks</a>, <a href="http://www.franz.com/downloads/allegrodownload.lhtml" target="_blank">Allegro</a></li>
<li>Open Source: <a href="http://www.sbcl.org/" target="_blank">SBCL</a>, <a href="http://clisp.cons.org/" target="_blank">CLisp</a></li>
<li>Others: compile to C, run on JVM, etc</li>
</ul>
<p><strong>Lisp Is Functional, But Not Strictly</strong></p>
<ul>
<li>Functional is the most natural to write</li>
<li>Can make sequential blocks, either explicitly or in constructs</li>
<li>Can make and change values if needed</li>
<li>Can build and incorporate new paradigms as necessary, i.e. CLOS</li>
<li>Lisp is strongly typed, dynamic typed</li>
</ul>
<p><strong>Lisp Has Lots of Parentheses</strong></p>
<ul>
<li>&#8220;Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in.&#8221; -Larry Wall</li>
<li>Used to group expressions</li>
<li>Makes syntax simple and consistent</li>
<li>Most forms are (function args*)</li>
</ul>
<p><strong>But the Parentheses Aren&#8217;t a Big Deal</strong></p>
<ul>
<li>&#8220;Parentheses?  What parentheses? I haven&#8217;t  noticed any  parentheses since my first month of Lisp programming.  I like to ask people who complain about parentheses in Lisp if they are bothered by all the spaces between words in a newspaper&#8221; &#8211; Ken Tilton</li>
<li>Editors indent automatically</li>
<li>Emacs commands to balance and close parens</li>
<li>Paredit (Emacs library) lets you manipulate sexps directly</li>
</ul>
<p><strong>Lisp Uses Symbols</strong></p>
<ul>
<li>Like variables but better</li>
<li>Like pointers but less dangerous</li>
<li>Assign a name to a value</li>
<li>Values can be lots of things – numbers, strings, functions, lists, other data structures</li>
</ul>
<p><strong>Lisp Has First Class Functions</strong></p>
<ul>
<li>Easy to define
<ul>
<li>(defun hello-world () (format t “hello, world”))</li>
</ul>
</li>
<li>Can be passed as parameters</li>
<li>Can be returned as values from other functions</li>
<li>Anonymous functions too!</li>
</ul>
<p><strong>Lisp Has Flexible Parameters</strong></p>
<ul>
<li>Parameters can be optional, with defaults
<ul>
<li>(defun foo (a &amp;optional b) (list a b))</li>
</ul>
<ul>
<li>(defun foo2 (a &amp;optional (b 10)) (list a b))</li>
</ul>
</li>
<li>Parameter lists can be variable length
<ul>
<li>(defun + (&amp;rest numbers) …)</li>
</ul>
</li>
<li>Keyword parameters
<ul>
<li>(defun foo3 (&amp;key a b) …)</li>
</ul>
</li>
</ul>
<p><strong>Lisp Uses Pairs</strong></p>
<ul>
<li>Lists are chains of pairs</li>
<li><img class="alignnone size-full wp-image-265" title="list-1-2-3" src="http://www.pchristensen.com/blog/wp-content/uploads/2008/05/list-1-2-3.png" alt="" width="202" height="34" /></li>
<li>Can make other trees, etc as well</li>
<li><img class="alignnone size-full wp-image-264" title="list-or-tree" src="http://www.pchristensen.com/blog/wp-content/uploads/2008/05/list-or-tree.png" alt="" width="316" height="148" />
<ul>
<li><a href="http://gigamonkeys.com/book/beyond-lists-other-uses-for-cons-cells.html" target="_blank">Beyond Lists: Other Uses for Cons Cells</a></li>
</ul>
</li>
</ul>
<p><strong>Lisp Uses Lists</strong></p>
<ul>
<li>&#8220;It is better to have 100 functions operate on one data structure than to have 10 functions operate on 10 data structures.&#8221; &#8211; Alan J. Perlis</li>
<li>Tons of functions for manipulating lists
<ul>
<li><a href="http://gigamonkeys.com/book/they-called-it-lisp-for-a-reason-list-processing.html" target="_blank">They Call It LISP For A Reason: List Processing</a></li>
</ul>
</li>
<li>Useful for recursive definitions</li>
<li>Lists aren’t perfect so&#8230;</li>
</ul>
<p><strong>Lisp Has More Than Just Lists</strong></p>
<ul>
<li><a href="http://gigamonkeys.com/book/collections.html" target="_blank">Collections</a></li>
<li>Vectors – fixed size sequences</li>
<li>Arrays – can be multidimensional, resizable</li>
<li>Sequence functions on collections – COUNT, FIND, POSITION, REMOVE, SUBSTITUTE, etc</li>
<li>This is one place where syntax would help</li>
<li>(aref a 5) instead of a[5]</li>
</ul>
<p><strong>Lisp Does Lots More</strong></p>
<ul>
<li><a href="http://gigamonkeys.com/book/files-and-file-io.html" target="_blank">File and File I/O</a></li>
<li>Advanced object system using generic functions and message passing</li>
<li><a href="http://gigamonkeys.com/book/a-few-format-recipes.html" target="_blank">Text formatting</a></li>
<li><a href="http://gigamonkeys.com/book/loop-for-black-belts.html" target="_blank">Fancy iteration constructs</a></li>
<li><a href="http://gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html" target="_blank">Conditions and restarts</a></li>
<li>Libraries for other things</li>
</ul>
<p><strong>Lisp Has Lots of Free Online Resources</strong></p>
<ul>
<li><a href="http://homepage.mac.com/svc/CommonLispFirstContact/CommonLispFirstContact.pdf" target="_blank">Common Lisp: First Contact</a></li>
<li><a href="http://www.cs.cmu.edu/~dst/LispBook/index.html" target="_blank">A Gentle Introduction to Symbolic Computation</a> (<a href="http://www.amazon.com/o/asin/0805304924/pchristensen-20" target="_blank">buy dead tree copy</a>)<a href="http://www.cs.cmu.edu/~dst/LispBook/index.html" target="_blank"><br />
</a></li>
<li><a href="http://mitpress.mit.edu/sicp/full-text/book/book.html" target="_blank">Structure and Interpretation of Computer Programs</a> (<a href="http://www.amazon.com/o/asin/0262011530/pchristensen-20" target="_blank">buy dead tree copy</a>)<a href="http://mitpress.mit.edu/sicp/full-text/book/book.html" target="_blank"><br />
</a></li>
<li><a href="http://gigamonkeys.com/book/" target="_blank">Practical Common Lisp</a> (<a href="http://www.amazon.com/o/asin/1590592395/pchristensen-20" target="_blank">buy dead tree copy</a>)</li>
<li><a href="http://www.bookshelf.jp/texi/onlisp/onlisp.html" target="_blank">OnLisp</a> (<a href="http://www.amazon.com/o/asin/0130305529/pchristensen-20" target="_blank">buy dead tree copy</a>)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.pchristensen.com/blog/articles/lisp-basics-and-idioms-presentation-from-intro-to-lisp-workshop/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Chicago Intro to Lisp Workshop Attendee Stats</title>
		<link>http://www.pchristensen.com/blog/articles/chicago-intro-to-lisp-workshop-attendee-stats/</link>
		<comments>http://www.pchristensen.com/blog/articles/chicago-intro-to-lisp-workshop-attendee-stats/#comments</comments>
		<pubDate>Sat, 31 May 2008 23:01:31 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://www.pchristensen.com/blog/?p=262</guid>
		<description><![CDATA[[UPDATED 6/3/2008:  I fixed a duplicate, found some more registration forms, and updated the stats.]
We&#8217;re blogging live from the Chicago Lisp User Group&#8217;s Intro to Lisp Workshop, and (now that my presentation is done &#8211; whew!) here are some statistics on the attendees, based on our ghetto paper signin forms.
Total People: 41. Only 5 [...]]]></description>
			<content:encoded><![CDATA[<p>[<strong>UPDATED 6/3/2008</strong>:  I fixed a duplicate, found some more registration forms, and updated the stats.]</p>
<p>We&#8217;re blogging live from the Chicago Lisp User Group&#8217;s Intro to Lisp Workshop, and (now that my presentation is done &#8211; whew!) here are some statistics on the attendees, based on our ghetto paper signin forms.</p>
<p><strong>Total People</strong>: 41. Only 5 were involved in planning or presenting, and only 10 had ever been to one of our meetings.</p>
<p><strong>Total Registration Forms</strong>: <span style="text-decoration: line-through;">25</span> 31.  This is the baseline for all of the statistics below (except How Did You Hear?) and doesn&#8217;t include Chicago Lisp members.  22 of them wanted to receive email announcements of future meetings.</p>
<p><strong>Geographic Distribution</strong>:</p>
<p>Within Chicago &#8211; 68%<br />
Illinois (outside Chicago) &#8211; 13%<br />
Out of State &#8211; 19% (Madison and LaCrosse, Wisconsin, Omaha, Nebraska, and Columbus, Ohio)<br />
People driving over 100 miles &#8211; 7<br />
Furthest Travelers: Blaine and Scott from Omaha &#8211; 468 miles!</p>
<p><strong>% Gmail Addresses</strong>: 45%</p>
<p><strong>Primary Languages</strong> (% of registrants) &#8211; people could specify more than one</p>
<p>Java &#8211; 48%<br />
Ruby &#8211; 39%<br />
Python &#8211; 29%<br />
C++ &#8211; 26%<br />
C &#8211; 26%<br />
Javascript &#8211; 16%<br />
Perl &#8211; 10%<br />
C# &#8211; 10%<br />
Lisp &#8211; 10%<br />
Obj-C &#8211; 6%<br />
PHP &#8211; 6%<br />
Bash &#8211; 3%<br />
Erlang &#8211; 3%<br />
VB &#8211; 3%<br />
Fortran &#8211; 3%<br />
Groovy &#8211; 3%<br />
SmallTalk &#8211; 3%</p>
<p><strong>Primary Operating System</strong> (% of registrants) &#8211; again, people could specify more than one</p>
<p>Linux &#8211; 71%<br />
OSX    &#8211; 48%<br />
Windows &#8211; 13%<br />
Solaris &#8211; 3%</p>
<p><strong>How Did You Hear About The Workshop?</strong> (% of those who answered) &#8211; one answer, but I forgot to write it on the form so only 14 answered it.</p>
<p>Chicago Linux User Group &#8211; 29%<br />
Chicago Python User Group &#8211; 14%<br />
Chicago Ruby User Group &#8211; 29%<br />
Other &#8211; 36%</p>
<p><span style="text-decoration: line-through;">I&#8217;ll put up</span> Here&#8217;s an <a href="http://www.pchristensen.com/blog/articles/lisp-basics-and-idioms-presentation-from-intro-to-lisp-workshop/">HTML version of my slideshow &#8220;Lisp Basics and Idioms&#8221;</a><span style="text-decoration: line-through;"> soon</span>. I&#8217;m not sure what to do about the Macros presentation since it&#8217;s more in depth and was very interactive on screen (and we didn&#8217;t screen capture it).  I video recorded the presentations but it&#8217;ll take me a while to get them off my camcorder and edit and process them.  Keep your eyes here for more goodness.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pchristensen.com/blog/articles/chicago-intro-to-lisp-workshop-attendee-stats/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Installing SBCL, Emacs, and SLIME on Windows XP</title>
		<link>http://www.pchristensen.com/blog/articles/installing-sbcl-emacs-and-slime-on-windows-xp/</link>
		<comments>http://www.pchristensen.com/blog/articles/installing-sbcl-emacs-and-slime-on-windows-xp/#comments</comments>
		<pubDate>Fri, 30 May 2008 19:04:00 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.pchristensen.com/blog/?p=261</guid>
		<description><![CDATA[My recent install guide for CLISP, Emacs, and SLIME on Windows XP was a big hit &#8211; it has had about 2000 hits and 5 sincere thanks in the comments (it even got praise from a troll!).  In it I promised a similar guide for SBCL, and here it is.
The nice thing is that [...]]]></description>
			<content:encoded><![CDATA[<p>My recent <a href="http://www.pchristensen.com/blog/articles/installing-clisp-emacs-and-slime-on-windows-xp/">install guide for CLISP, Emacs, and SLIME on Windows XP</a> was a big hit &#8211; it has had about 2000 hits and 5 sincere thanks in the comments (it even got <a href="http://www.pchristensen.com/blog/articles/installing-clisp-emacs-and-slime-on-windows-xp/#comment-478">praise from a troll!</a>).  In it I promised a similar guide for SBCL, and here it is.</p>
<p>The nice thing is that swapping out Common Lisp implementations within an Emacs/SLIME setup is easy, so maybe 3/4 of this guide is identical to the CLISP guide.  I&#8217;ll put a disclaimer at the beginning of each section saying whether there&#8217;s anything new or whether you can skip it.</p>
<p><span id="more-261"></span></p>
<p><strong>0. Files to Download</strong> [<strong>DIFF</strong>: The only difference is the link to the SBCL installer instead of the CLisp installer]</p>
<p>If you want to get started on downloading the setup files, here are the links:</p>
<ul>
<li><a href="http://www.7-zip.org/" target="_blank">7-zip</a> (<a href="http://downloads.sourceforge.net/sevenzip/7z457.exe">download v4.57</a> &#8211; 840K) &#8211; for unpacking .tar and .tar.gz files commonly used in *nix.</li>
<li><a href="http://www.gnu.org/software/emacs/" target="_blank">Emacs</a> (<a href="http://ftp.gnu.org/pub/gnu/emacs/windows/emacs-22.2-bin-i386.zip">download v22.2</a> &#8211; 37MB)</li>
<li><a href="http://www.sbcl.org/" target="_blank">SBCL</a> (<a href="http://downloads.sourceforge.net/sbcl/sbcl-1.0.13-x86-windows-binary.msi">download v1.0.13</a> &#8211; 9.8 MB)</li>
<li><a href="http://common-lisp.net/project/slime/" target="_blank">SLIME</a> (<a href="http://common-lisp.net/cgi-bin/viewcvs.cgi/root.tar.gz?root=slime&amp;view=tar">download CVS snapshot</a> &#8211; 700K) &#8211; apparently the SLIME 2.0 release is ancient and not worth using</li>
</ul>
<p><strong>1. Setup Directories </strong>[<strong>NO DIFF</strong>: skip if you've completed the CLisp guide]</p>
<p>Windows XP loves extremely long pathnames like C:\Documents and Settings\Username\Application Data. This is okay if for GUI-driven apps, but in Emacs, you’re not clicking, you’re typing, and you want short path names. Also, much (most?) of the open source Common Lisp tools are developed on *nix, so there’s less impedance mismatch when using stuff off the net if you have a *nix-ish folder structure.</p>
<p>Start with a root folder. In the pathnames in the rest of this guide, I’ll refer to it as [HOME]. I used C:\home\ to match the *nix convention of having user files be in /home/username/. You also need a username directory &#8211; I called mine peter and I’ll refer to it as [USR]. So in my case, [HOME]/[USR] would be C:\home\peter\.</p>
<p><strong>Emacs NOTE #1:</strong> One important point about filenames in Emacs is that they CAN be entered with ‘/’, but if you prefer to use ‘\’, you have to escape it with another back slash, so in Emacs buffers and files, you would enter “C:/home/” or “C:\\home\\” but never “C:\home\”. The trailing slash is also important because it indicates that it’s a directory. Now that you have chosen your [ROOT] and [USR] values, these are the folders you should setup:</p>
<ul>
<li>[HOME]\[USR]\</li>
<li>[HOME]\[USR]\site\</li>
<li>[HOME]\[USR]\docs\</li>
<li>[HOME]\[USR]\lisp\</li>
<li>[HOME]\[USR]\info\</li>
<li>[HOME]\bin\</li>
</ul>
<p><strong>2. Setup Emacs </strong>[<strong>NO DIFF</strong>: skip if you've completed the CLisp guide]</p>
<p>Emacs does not need to be “installed” like most Windows apps &#8211; it just runs from its directory. Extract it to [HOME]\bin\. I changed the folder name from emacs-22.2 to just emacs, so my path was c:\home\bin\emacs\. You run emacs by running the file [HOME]\bin\emacs\bin\runemacs.exe.</p>
<p>Emacs settings are stored in a configuration file called “.emacs”. On Windows, the default working folder and .emacs location is C:\Documents and Settings\Username\Application Data, but that’s too painful to type and it’s a hidden folder so it’s not even easy to get through with the GUI. To have Emacs work in a different folder, create a file called site-start.el in the emacs\site-lisp folder. In that folder, put the following line (but change the path to match yours):</p>
<blockquote><p>(setenv “HOME” “[HOME]/[USR]/”)</p></blockquote>
<p>(<a href="http://groups.google.com/group/comp.lang.lisp/msg/44e7f62088460aa7" target="_blank">Thanks Nathaniel!</a> This was probably the biggest annoyance of mine that made me put off finishing setup for so long.)</p>
<p><strong>Emacs NOTE #2:</strong> Emacs has lots (and lots and lots) of keyboard shortcuts, many more than there are letters in the alphabet. Many of them require multiple keys or a sequence of keys called a “chord”. The two modifier keys used are Control and Alt (also called Meta). The common way to write chords is to use C- and M- for Control and Meta, so to run the command to close Emacs, you hold down Control and X, then let go, then hold down Control and C. This is written as C-x C-c. Sometimes a chord is followed by another letter or the name of a command. For instance, to undo, you hold Control and x, then let go and hit u. This is written as C-x u. Dashes mean press at the same time, space means let go. Easy! I made a <a href="../articles/public-beta-open-for-ultimate-n00b-slimeemacs-cheat-sheet/">cheat sheet for common commands in Emacs and SLIME</a>.</p>
<p>Now it’s time to create your .emacs file. Run emacs and hit C-x C-f. This is the find command, which is used to create or open a file. At the prompt “Find file: “, type “~/.emacs” (without quotes). Right now just put a ; (that’s the comment marker in Emacs Lisp files) and save it by hitting C-x C-s. There’s a world of stuff you can put in a .emacs file, but that’s too much to bite off now.</p>
<p><strong>3. Install SBCL</strong> [<strong>DIFF</strong>: This section is completely different]</p>
<p>Although the Windows port of SBCL is still experimental, there is a Windows installer (.msi) file for v1.0.13 (highest version as of now is v1.0.17).  Just run the installer, and install it to the directory:</p>
<p style="padding-left: 30px;">[HOME]\bin\sbcl-1013\</p>
<p>Then just finish the install wizard.  But you&#8217;re not finished yet.</p>
<p>Robert Zubek wrote a post about 2 months ago about how to <a href="http://robert.zubek.net/blog/2008/04/09/sbcl-emacs-windows-vista/" target="_blank">setup SBCL/Emacs/SLIME on Vista</a>, but it doesn&#8217;t work exactly right on Windows XP.  If you use the .emacs settings from his post, you get this error when you start SLIME (instead of using the .emacs settings in step 4):</p>
<p style="padding-left: 30px;">fatal error encountered in SBCL pid XXXX:</p>
<p style="padding-left: 30px;">can&#8217;t find core file at /user/local/lib/sbcl//sbcl.core</p>
<p style="padding-left: 30px;">Process inferior-lisp exited abnormally with code 1</p>
<p>If you use the settings in step 4, you&#8217;ll get a different error message:</p>
<p style="padding-left: 30px;">Searching for program: no such file or directory, sbcl</p>
<p>If you SBCL looks in the environment variable PATH to find the executable and core file.  The default directories are *nixy, so it won&#8217;t find your sbcl directory on accident.  But why should it look for the directory if you entered it into the install wizard?</p>
<p>Apparently <a href="http://www.helpwithwindows.com/WindowsXP/howto-04.html" target="_blank">Windows XP doesn&#8217;t update system environment variables until the system reboots</a>.  So right after you install SBCL, you have the user environment variables PATH and SBCL_Home but SBCL looks in the system variables.  I couldn&#8217;t find out a way to fix that without rebooting, but the good news is that a reboot solves the problem.</p>
<p>So <strong>reboot your computer now</strong>.</p>
<p><strong>4. Setup SLIME</strong> [<strong>DIFF</strong>: This section has some differences - links and .emacs setup]</p>
<p>Apparently the SLIME 2.0 is very old; several people recommend ignoring it and going straight to the CVS snapshot, so that&#8217;s what I linked to above.</p>
<p>Extract the SLIME folder to [HOME]\bin\emacs\site-lisp. (Here’s a tip about <a href="http://groups.google.com/group/comp.lang.lisp/msg/5fce0960ef4e27be" target="_blank">putting emacs code in site-lisp</a>).</p>
<p>Now in Emacs, open your .emacs file (C-x C-f, ~/.emacs) and enter the following (<a href="http://common-lisp.net/project/slime/doc/html/Installation.html" target="_blank">general SLIME instructions</a>, <a href="http://common-lisp.net/pipermail/slime-devel/2008-May/007331.html" target="_blank">SBCL specific setup</a>), changing your pathnames as usual.  The good news is that because SBCL looks in the environment variables, you don&#8217;t need any of the command line parameters in the inferior-lisp-program variable:</p>
<blockquote><p>(setq inferior-lisp-program “sbcl”)<br />
(add-to-list ‘load-path “[HOME]/bin/emacs/site-lisp/slime/”)<br />
(require ’slime)<br />
(slime-setup)</p></blockquote>
<p>Save the .emacs file (C-x C-s), then run the eval-buffer command (M-x eval-buffer). This will run the code that you just entered and tell Emacs how to run SLIME.</p>
<p>Now, you start slime with M-x slime and you’re ready to go!</p>
<p>NOTE: This is a basic SBCL setup &#8211; I&#8217;ve found some more advanced setup links that I&#8217;ll write guides for later:</p>
<ul>
<li><a href="http://robert.zubek.net/blog/2008/04/09/sbcl-emacs-windows-vista/#comment-5" target="_blank">Setup ASDF-Install/SBCL on Windows</a></li>
<li><a href="http://brainrack.wordpress.com/2008/05/29/running-sbcl-on-windows/" target="_blank">Running SBCL on Windows</a> &#8211; this is again for Vista, with the newest (v1.0.16 and v1.0.17) versions of SBCL.  It also includes configuring shell commands, etc.</li>
</ul>
<p>Additional comments at <a href="http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/9d8e78f7c53a7c4f?hl=en" target="_blank">comp.lang.lisp</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pchristensen.com/blog/articles/installing-sbcl-emacs-and-slime-on-windows-xp/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Recap of 5/16/2008 Chicago Lisp Meeting</title>
		<link>http://www.pchristensen.com/blog/articles/recap-of-5162008-chicago-lisp-meeting/</link>
		<comments>http://www.pchristensen.com/blog/articles/recap-of-5162008-chicago-lisp-meeting/#comments</comments>
		<pubDate>Tue, 27 May 2008 16:34:18 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://www.pchristensen.com/blog/?p=256</guid>
		<description><![CDATA[My math joke in the recap of the previous meeting turned out to be too conservative:  this month, we had 22 people, double the turnout from last month!  The meeting was held at the offices of CashNetUSA, and they were generous enough to provide pizza and drinks (for both drivers and transit riders [...]]]></description>
			<content:encoded><![CDATA[<p>My math joke in the <a href="http://www.pchristensen.com/blog/articles/recap-of-4182008-chicago-lisp-meeting/">recap of the previous meeting</a> turned out to be too conservative:  this month, we had 22 people, double the turnout from last month!  The meeting was held at the offices of <a href="http://www.cashnetusa.com/" target="_blank">CashNetUSA</a>, and they were generous enough to provide pizza and drinks (for both drivers and transit riders <img src='http://www.pchristensen.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .  There was a wireless transmitter but no connection to the internet, so Bruce B. routed us all through an ad-hoc network off his cellular wireless card.  Next month&#8217;s meeting will be held there as well, and they promise to have a proper internet connection setup then!</p>
<p><strong>&lt;thankstosponsors&gt;</strong></p>
<p><img class="alignleft alignnone size-full wp-image-257" style="float:right;margin-left:4px;border:0px;" title="cashnetusa_head" src="http://www.pchristensen.com/blog/wp-content/uploads/2008/05/cashnetusa_head.gif" alt="CashNetUSA" width="220" height="45" /></p>
<p>CashNetUSA is looking for Ruby developers, or more accurately, great developers who know Ruby.  They&#8217;re hiring at all levels of experience &#8211; check out their <a href="http://www.cashnetusa.com/jobs.html" target="_blank">job listings</a>.  Thanks, CashNetUSA!</p>
<p><strong>&lt;/thankstosponsors&gt;</strong></p>
<p><a href="http://www.amazon.com/exec/obidos/ASIN/193435600X/pchristensen-20"><img style="float:left;margin-right:4px;border:0px;" src="http://ecx.images-amazon.com/images/I/41PZoINyrRL._SL160_.jpg" alt="Programming Erlang: Software for a Concurrent World" width="134" height="160" /></a></p>
<p>John Q. donated a copy of <a href="http://www.amazon.com/o/asin/193435600X/pchristensen-20" target="_blank">Programming Erlang</a> to our first book raffle, which was won by Craig L.  If anyone has a book they&#8217;d like to donate, please <a href="http://www.pchristensen.com/blog/contact-me/" target="_blank">contact me</a> so I put it in announcements for future meetings.</p>
<p><strong>Intro to Lisp Workshop</strong></p>
<p>There was some more discussion about the details of the <a href="http://www.pchristensen.com/blog/chicago-lisp/">Intro to Lisp Workshop</a> on May 31.  The most noteworthy decisions were:</p>
<ul>
<li>standardize on SBCL, SLIME, Emacs</li>
<li>have a set of milestone files that people who can&#8217;t keep up with the presentations can download to get themselves caught up</li>
<li>recommended screen capture softweare: <a href="http://xvidcap.sourceforge.net/" target="_blank">xvdicap</a>, <a href="http://www.unixuser.org/~euske/vnc2swf/" target="_blank">vnc2swf</a></li>
</ul>
<p><strong>Future Meetings</strong></p>
<p>We also planned presentation topics for future meetings:</p>
<ul>
<li>June: Kurt S. will present on implementing interpreters, and Steve G.&#8217;s presentation on Lisp languages on the JVM got bumped to June in the interest of time at May&#8217;s meeting</li>
<li>July: Andrew W. will demo <a href="http://www.cl-user.net/asp/impl/Open%20Genera" target="_blank">Open Genera</a>, the operating system from Symbolics&#8217; Lisp machines</li>
<li>future: John Q. knows a guy who could presnet on programming language topics, I will (someday) present on Weblocks</li>
</ul>
<p><span id="more-256"></span></p>
<p><strong>Presentation: A Basic Object System Using Macros</strong></p>
<p>The rest of the meeting was <a href="http://www.wisdomandwonder.com/" target="_blank">Grant R.</a>&#8217;s presentation on how he wrote his own object system using closures in Scheme.  Check out his presentation slides (<a href="http://www.wisdomandwonder.com/wordpress/wp-content/uploads/2008/05/bos-pres.pdf" target="_blank">here</a> or <a href="http://www.pchristensen.com/blog/wp-content/uploads/2008/05/080516grettke-basicobjectsystem.pdf" target="_blank">here</a>) and the code from his demos (<a href="http://www.wisdomandwonder.com/wordpress/wp-content/uploads/2008/05/scheme-bos-clug-107.zip" target="_blank">here</a> or <a href="http://www.pchristensen.com/blog/wp-content/uploads/2008/05/scheme-bos-clug-107.zip" target="_blank">here</a>).  The slides are supplemental to the discussion and the demo, so if you&#8217;re trying to get the message from just the slides, shame on you for not coming to the meeting.  Grant gets extra style points for writing his slides in Scheme and displaying them using a slide program in DrScheme.  There were a couple times he wanted to change his slides and he did so in code in the DrScheme IDE. Cool!</p>
<p><img class="alignnone size-full wp-image-260" title="080516chicagolisp" src="http://www.pchristensen.com/blog/wp-content/uploads/2008/05/080516chicagolisp.jpg" alt="Chicago Lisp Meeting 5/16/2008" width="500" height="375" /></p>
<p>Grant is a big proponent of using &#8220;toy projects&#8221; to learn fundamental concepts.  In this case, he wanted to understand objects and closures better, so he iterated through a couple versions of a simple object system implements using closures, including using hygenic and unhygenic macros.  In the process, he got more experience with language features and concepts.  His final system included methods and variables, encapsulation, message passing, lexical scope, and name collision detection.  He approached it as a code generation problem &#8211; write the code you want, then abstract out the essence using macros and syntax extension.</p>
<p>The end of the presentation was cut off due to technological failure (projectors, gotta love them), but he had some great closing thoughts:</p>
<ul>
<li> toy projects are a great learning experience</li>
<li>Lisp is a great vehicle for exploring ideas, which you can then use in other languages</li>
<li>don&#8217;t become a language slave; embrace the best ideas from all languages</li>
<li>put in the time and effort to improve your study habits</li>
<li>Lips introduces powerful ideas that are hard to find in other languages</li>
</ul>
<p>Check out his slides and demo code.  They are nice, but like I said, the real value was in the discussion during the presentation.  Grant has worked with Scheme but not Common Lisp, and several people (myself included) were the opposite.  There were also people who knew both languages well and could explain some of the differences.  For instance, there were two Scheme language features (lexical scoping and hygenic macros) that I knew of but didn&#8217;t understand well, but Matt, Kurt, and Andrew explained it in a way that finally made sense to me.  I&#8217;m not the only one who learned from both the presentation and the discussion; there are some seriously smart people in this group and I can&#8217;t wait for the next meeting to participate in more stimulating discussions like this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pchristensen.com/blog/articles/recap-of-5162008-chicago-lisp-meeting/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Setting Up and Using Emacs InfoMode</title>
		<link>http://www.pchristensen.com/blog/articles/setting-up-and-using-emacs-infomode/</link>
		<comments>http://www.pchristensen.com/blog/articles/setting-up-and-using-emacs-infomode/#comments</comments>
		<pubDate>Sun, 25 May 2008 15:25:28 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.pchristensen.com/blog/?p=254</guid>
		<description><![CDATA[Emacs has an ancient (predating hypertext), simple, powerful documentation program called Info.  It&#8217;s very difficult to find info about it online (try searching for &#8220;Info&#8221;), so here&#8217;s my beginner&#8217;s guide.
Info is an output format for the Texinfo typesetting syntax.  Texinfo is used for writing documentation that can be output in multiple print and [...]]]></description>
			<content:encoded><![CDATA[<p>Emacs has an ancient (predating hypertext), simple, powerful documentation program called Info.  It&#8217;s very difficult to find info about it online (try searching for &#8220;Info&#8221;), so here&#8217;s my beginner&#8217;s guide.</p>
<p>Info is an output format for the Texinfo typesetting syntax.  <a href="http://www.gnu.org/software/texinfo/" target="_blank">Texinfo</a> is used for writing documentation that can be output in multiple print and digital formats and is the official documentation format of the GNU project.  Info files are strongly associated with Emacs &#8211; Emacs is the primary reader for Info files, but there is also a standalone reader.  Manuals are organized into a tree of nodes, with a variety of ways to navigate between those nodes.</p>
<p>Info files can technically be written by hand, but it is much more common for them to be compiled from Texinfo.  Many Linux/Unix distros come bundled with the TeX toolchain necessary to compile Texinfo, but Windows does not.  The TeX/LaTex/Texinfo on Windows post is coming in the near future.  For now, stick to precompiled .info files or go dive into TeX yourself.</p>
<p>Emacs ships with several Info manuals &#8211; they&#8217;re in the emacs/info folder.  You can also create your own Info directory, add new manuals to the directory, and create your own manuals.  This guide will walk you through the steps needed to get Emacs to find your info directory, add manuals in your directory to the main directory list, and use Info from within Emacs.</p>
<p>[NOTE: This guide assumes you're following the directory conventions I laid out in my previous post <a href="http://www.pchristensen.com/blog/articles/installing-clisp-emacs-and-slime-on-windows-xp/">Installing CLISP, Emacs, and SLIME on Windows XP</a>.  It also gives you the baseline level of familiarity with Emacs to follow along here.]</p>
<p><span id="more-254"></span></p>
<p><strong>1) Setup Emacs to recognize your info directory</strong></p>
<p>You should already have an info directory.  Mine is C:\home\peter\info, and from emacs the path is ~/info/.  To make this the first directory Emacs looks in when compiling the directory, <a href="http://www.gnu.org/software/hello/manual/texinfo/Other-Info-Directories.html" target="_blank">add this to your .emacs file</a> (feel free to indent better than WordPress allows):</p>
<p style="padding-left: 30px;">(require &#8216;info)<br />
(setq Info-directory-list<br />
(cons (expand-file-name &#8220;[HOME]/info&#8221;)<br />
Info-default-directory-list))</p>
<p><strong>2) Create a dir file in [HOME]/info/</strong></p>
<p><a href="http://www.amazon.com/exec/obidos/ASIN/0262011530/pchristensen-20"><img style="float:right;margin-left:4px;border:0px;" src="http://ecx.images-amazon.com/images/I/41CPGEDXMDL._SL160_.jpg" alt="Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science)" width="110" height="160" /></a></p>
<p>When Emacs is looking in directories for info files, it only looks for a file called &#8220;dir&#8221; in each directory.  This dir file is a special kind of Info file that points to the other Info files in the directory and lists and orders them.  In order to make your own dir file, you first need a .info file to link to.  I recommend the <a href="http://www.neilvandyke.org/sicp-texi/" target="_blank">Structure and Interpretation of Computer Programs in Texinfo</a> manual (download precompiled 400K <a href="http://www.neilvandyke.org/sicp-texi/sicp.info.gz">sicp.info.gz</a> file here).  There is a whole syntax for defining nodes, but this is the bare minimum you need to get your manual into the directory.</p>
<p>First, start with the characters &#8220;^_&#8221;. That doesn&#8217;t actually work when you type it in directly, so you need to copy it from Emacs&#8217; info/dir.  I looked at that file in a hex editor and it had the value 1F (<a href="http://www.asciitable.com/" target="_blank">US &#8211; unit separator</a>) &#8211; the ASCII values for ^_ are 5E 5F.  I had to open the emacs/info/dir file and kill/yank it into my dir file.  Kill/yank is Emacs&#8217; version of cut/paste.  Like all things Emacs, it&#8217;s similar, not exactly the same, and much more powerful.  Here are the steps (free Emacs tutorial included):</p>
<ol>
<li>Open the Emacs info dir file with: C-x C-f [HOME]/bin/emacs/info/dir</li>
<li>Select the ^_ characters
<ol>
<li>Put the cursor at the beginning and set the beginning of the region to cut (C-SPC)</li>
<li>Move down to the beginning of the next line and cut to the end of the region (C-W)</li>
<li>Yank it back into the file with C-y</li>
<li>Save the file with C-x C-s</li>
</ol>
</li>
<li>Create your dir file with find file (C-x C-f) at ~/info/dir</li>
<li>Yank (paste) the text into the file with C-y</li>
</ol>
<p>That should work, but there&#8217;s still more to add to the file.  Next is the Tree info &#8211; at least your file and node names.  This works for your personal dir file:</p>
<p><code>File: dir    Node: Top    This is the top of the INFO tree</code></p>
<p>You can put a header if you like (&#8220;My Info Manuals&#8221;), then on a new line, put:</p>
<p>* Menu:</p>
<p>After that, you can add links to your manuals.  The format is:</p>
<p style="padding-left: 30px;">* TITLE: (filename w/o .info). Summary</p>
<p>For the SICP manual, it would look like this:</p>
<p style="padding-left: 30px;">* SICP: (sicp). Structure and Interpretation of Computer Programs</p>
<p>You can put a footer after that to separate the manuals in your directory from those in others.  The final dir file ends up looking something like this:<br />
<code><br />
^_<br />
File: dir    Node: Top    This is the top of the INFO tree</code></p>
<p>Peter&#8217;s Info Directory<br />
**********************</p>
<p>* Menu:</p>
<p>* SICP: (sicp). Structure and Interpretation of Computer Programs</p>
<p>&#8212;- User&#8217;s &#8216;dir&#8217; ends here &#8212;-</p>
<p>[Now that you did all that, feel free to download <a href="http://www.pchristensen.com/blog/wp-content/uploads/2008/05/dir" target="_blank">my dir file</a> and change the labels as you see fit.  ]</p>
<p><strong>3) Using Info</strong></p>
<p>Info has a similar structure to HTML, where there can be links within and between nodes, but there&#8217;s also an explicit tree structure with its own structured navigation.  Here&#8217;s a pretty complete set of commands, with shorter descriptions and better grouping than the Info help shows.</p>
<p><span style="text-decoration: underline;">Basics</span><br />
C-h i &#8211; start Info<br />
q &#8211; quit info<br />
? &#8211; info commands<br />
SPC &#8211; returns from commands screen</p>
<p><span style="text-decoration: underline;">Node Navigation</span><br />
p, n &#8211; previous/next node in subtree<br />
[, ] &#8211; previous/next node in tree traversal<br />
l, r &#8211; back/forward in node nagivation history<br />
u &#8211; Move up<br />
space &#8211; pagedown or next node<br />
del &#8211; pageup or previous node<br />
b &#8211; go to beginning of node</p>
<p><span style="text-decoration: underline;">Links</span><br />
M-TAB/TAB &#8211; previous/next cross-reference or menu item<br />
m &#8211; type name of menu item and go to that node</p>
<p><span style="text-decoration: underline;">Jump</span><br />
d &#8211; return to Info directory<br />
t &#8211; return to file root<br />
L &#8211; go to menu of visited nodes<br />
T &#8211; go to table of contents of the current Info file</p>
<p><span style="text-decoration: underline;">Search</span><br />
s &#8211; regex search, move to node where next match is found<br />
S &#8211; regex search, case sensitive<br />
M-x Info-search-next &#8211; repeat previous regex search<br />
i &#8211; search for and jump to index topic<br />
, &#8211; repeat previous i search<br />
g &#8211; move to node specified by name &#8211; to filename by searching for (FILENAME)NODENAME<br />
1..9 &#8211; jump to 1st-9th item in node&#8217;s menu<br />
w &#8211; put name of current node into kill ring<br />
M-n &#8211; clone Info buffer to new window</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>That&#8217;s all for Info &#8211; it only takes 10 minutes to go through the Info on Info tutorial and it&#8217;s easy to use.  This is just one of the many things that takes a couple hours to muscle through the setup and online docs, then it makes things so much easier EVERY SINGLE TIME you use it afterwards.  My goal is to take these 2-3 hour research tasks and turn them into a 10 minutes guide.  Hopefully by lowering the barriers to competence, more people will seek out and invest in learning the great tools out there that Windows developers tend to miss out on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pchristensen.com/blog/articles/setting-up-and-using-emacs-infomode/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Installing CLISP, Emacs, and SLIME on Windows XP</title>
		<link>http://www.pchristensen.com/blog/articles/installing-clisp-emacs-and-slime-on-windows-xp/</link>
		<comments>http://www.pchristensen.com/blog/articles/installing-clisp-emacs-and-slime-on-windows-xp/#comments</comments>
		<pubDate>Fri, 16 May 2008 15:48:40 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.pchristensen.com/blog/?p=237</guid>
		<description><![CDATA[Until this week, I had been putting off setting up a CL/Emacs/SLIME environment from scratch ever since I had trouble getting ASDF to work with Lispbox.  Every time I tried, I ran into some will-sapping problem like needing to find a good Windows program for .tar.gz files, or finding the command line flags to [...]]]></description>
			<content:encoded><![CDATA[<p>Until this week, I had been putting off setting up a CL/Emacs/SLIME environment from scratch ever since I had <a href="http://www.pchristensen.com/blog/articles/sleeping-too-much-and-fighting-with-emacs-and-asdf/" target="_self">trouble getting ASDF to work</a> with <a href="http://www.gigamonkeys.com/book/lispbox" target="_blank">Lispbox</a>.  Every time I tried, I ran into some will-sapping problem like needing to find a good Windows program for .tar.gz files, or finding the command line flags to get CLISP to run right, or figuring out the best way to setup a folder structure that matches the Unix folders used by most Lispers.  Every time I fixed one problem, I ran into another.  For someone out there trying to do a setup like this, there are lots of good resources, but they are either incomplete or outdated.</p>
<p>For instance, the Common Lisp Cookbook has a very thorough page on <a href="http://cl-cookbook.sourceforge.net/windows.html" target="_blank">Setting Up an IDE with Emacs on Windows or Max OSX</a>, but as far as I can tell, it&#8217;s from 2004 or earlier because it doesn&#8217;t mention SBCL or SLIME, two of the most popular pieces of CL development software today.  Or when you run into a specific problem, it&#8217;s usually not too hard to find an answer, but it might not match the setup you&#8217;re using.  That&#8217;s why I had to quit using Lispbox, because no one had any clue how it was configured, especially not on Windows.  n00bs didn&#8217;t know the answers and the wizards had a traditional setup.</p>
<p>Here are some of the variables that contribute to the combinatorial explosion of configuration, in order or pain caused:</p>
<ul>
<li>Operating system: Linux (many flavors), Mac, Windows, Cygwin</li>
<li>CL implementation: most common are SBCL, CMUCL, Allegro, LispWorks, CLISP</li>
<li>CL implementation version (I ran into a problem here)</li>
<li>SLIME version (stable 2.0 release or CVS snapshot)</li>
<li>Emacs version (I didn&#8217;t run across any problems with this)</li>
<li>I almost forgot, now there&#8217;s <a href="http://bitfauna.com/projects/cusp/" target="_blank">Cusp</a>/Eclipse if you don&#8217;t want to use Emacs/SLIME, but right now Cusp is only tested on SBCL.</li>
</ul>
<p>Maybe someday someone will try out all of those combinations and report, but for today, I did exactly one:  Windows XP, CLISP 2.44, SLIME CVS, and Emacs 22.2  Why CLISP?  After reading lots of internet, I came to the conclusion that (aside from the commercial CLs), CLISP is the best implementation for Windows users.  The knocks against it are that it&#8217;s slow because it&#8217;s byte-code compiled, it doesn&#8217;t have threads, and on some points, it&#8217;s ideologically different from CL and other implementations.</p>
<p>Well, the performance isn&#8217;t a big concern for me (plus as I went to press, <a href="http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/188acc89e1d90cbe?hl=en" target="_blank">2.45 was released with experimental JIT compilation</a>), the threads also aren&#8217;t a big deal right now, and I think the differences will help me be aware of the considerations for writing portable code.  Also regarding the SBCL windows port, it&#8217;s still considered experimental (currently v1.013 for Windows) but people are saying <a href="http://groups.google.com/group/comp.lang.lisp/msg/0cc76370e8e6d5a8" target="_blank">it&#8217;s stable and everything works except the threads</a>.  There&#8217;s even an msi installer for the Windows version.  One of my next projects will be to dive into the SBCL documentation and mailing lists to get a better feel for it.</p>
<p>As far as the philosophy behind this (and future) setup guides, I want them to be a) thorough and b) instructive.  Instructive?  If you just want to take my word for everything, that&#8217;s fine, but I want you to know where I got my info from, so I&#8217;ve tried to include links to references for each step.  On to the setup guide!</p>
<p><span id="more-237"></span></p>
<p><strong>0. Files to Download</strong></p>
<p>If you want to get started on downloading the setup files, here are the links:</p>
<ul>
<li><a href="http://www.7-zip.org/" target="_blank">7-zip</a> (<a href="http://downloads.sourceforge.net/sevenzip/7z457.exe">download v4.57</a> &#8211; 840K) &#8211; for unpacking .tar and .tar.gz files commonly used in *nix.</li>
<li><a href="http://www.gnu.org/software/emacs/" target="_blank">Emacs</a> (<a href="http://ftp.gnu.org/pub/gnu/emacs/windows/emacs-22.2-bin-i386.zip">download v22.2</a> &#8211; 37MB)</li>
<li><a href="http://clisp.cons.org/" target="_blank">CLISP</a> (<a href="http://downloads.sourceforge.net/clisp/clisp-2.44-win32-mingw-big-install.exe">download v2.44</a> &#8211; 4MB)</li>
<li><a href="http://common-lisp.net/project/slime/" target="_blank">SLIME</a> (<a href="http://common-lisp.net/cgi-bin/viewcvs.cgi/root.tar.gz?root=slime&amp;view=tar">download CVS snapshot</a> &#8211; 700K) &#8211; CLISP recently removed a function used in the 2.0 version of SLIME, but the SLIME CVS snapshot has that fixed</li>
</ul>
<p><strong>1. Setup Directories</strong></p>
<p>Windows XP loves extremely long pathnames like C:\Documents and Settings\Username\Application Data.  This is okay if for GUI-driven apps, but in Emacs, you&#8217;re not clicking, you&#8217;re typing, and you want short path names.  Also, much (most?) of the open source Common Lisp tools are developed on *nix, so there&#8217;s less impedance mismatch when using stuff off the net if you have a *nix-ish folder structure.</p>
<p>Start with a root folder.  In the pathnames in the rest of this guide, I&#8217;ll refer to it as [HOME].  I used C:\home\ to match the *nix convention of having user files be in /home/username/. You also need a username directory &#8211; I called mine peter and I&#8217;ll refer to it as [USR].  So in my case, [HOME]/[USR] would be C:\home\peter\.</p>
<p><strong>Emacs NOTE #1:</strong> One important point about filenames in Emacs is that they CAN be entered with &#8216;/&#8217;, but if you prefer to use &#8216;\&#8217;, you have to escape it with another back slash, so in Emacs buffers and files, you would enter &#8220;C:/home/&#8221; or &#8220;C:\\home\\&#8221; but never &#8220;C:\home\&#8221;.  The trailing slash is also important because it indicates that it&#8217;s a directory.  Now that you have chosen your [ROOT] and [USR] values, these are the folders you should setup:</p>
<ul>
<li>[HOME]\[USR]\</li>
<li>[HOME]\[USR]\site\</li>
<li>[HOME]\[USR]\docs\</li>
<li>[HOME]\[USR]\lisp\</li>
<li>[HOME]\[USR]\info\</li>
<li>[HOME]\bin\</li>
</ul>
<p><strong>2. Setup Emacs</strong></p>
<p>Emacs does not need to be &#8220;installed&#8221; like most Windows apps &#8211; it just runs from its directory. Extract it to [HOME]\bin\.  I changed the folder name from emacs-22.2 to just emacs, so my path was c:\home\bin\emacs\.  You run emacs by running the file [HOME]\bin\emacs\bin\runemacs.exe.</p>
<p>Emacs settings are stored in a configuration file called &#8220;.emacs&#8221;.  On Windows, the default working folder and .emacs location is C:\Documents and Settings\Username\Application Data, but that&#8217;s too painful to type and it&#8217;s a hidden folder so it&#8217;s not even easy to get through with the GUI.  To have Emacs work in a different folder, create a file called site-start.el in the emacs\site-lisp folder.  In that folder, put the following line (but change the path to match yours):</p>
<pre>(setenv "HOME" "[HOME]/[USR]/")</pre>
<p>(<a href="http://groups.google.com/group/comp.lang.lisp/msg/44e7f62088460aa7" target="_blank">Thanks Nathaniel!</a> This was probably the biggest annoyance of mine that made me put off finishing setup for so long.)</p>
<p><strong>Emacs NOTE #2:</strong> Emacs has lots (and lots and lots) of keyboard shortcuts, many more than there are letters in the alphabet. Many of them require multiple keys or a sequence of keys called a &#8220;chord&#8221;.  The two modifier keys used are Control and Alt (also called Meta).  The common way to write chords is to use C- and M- for Control and Meta, so to run the command to close Emacs, you hold down Control and X, then let go, then hold down Control and C.  This is written as C-x C-c.  Sometimes a chord is followed by another letter or the name of a command.  For instance, to undo, you hold Control and x, then let go and hit u.  This is written as C-x u.  Dashes mean press at the same time, space means let go.  Easy!  I made a <a href="http://www.pchristensen.com/blog/articles/public-beta-open-for-ultimate-n00b-slimeemacs-cheat-sheet/">cheat sheet for common commands in Emacs and SLIME</a>.</p>
<p>Now it&#8217;s time to create your .emacs file.  Run emacs and hit C-x C-f.  This is the find command, which is used to create or open a file.  At the prompt &#8220;Find file: &#8220;, type &#8220;~/.emacs&#8221; (without quotes).  Right now just put a ; (that&#8217;s the comment marker in Emacs Lisp files) and save it by hitting C-x C-s.  There&#8217;s a world of stuff you can put in a .emacs file, but that&#8217;s too much to bite off now.</p>
<p><strong>3. Install CLISP</strong></p>
<p>This is easy if you download the install package (that&#8217;s the one I linked to).  Run the installer and choose [HOME]\bin\clisp\ as the install directory.  That&#8217;s it!</p>
<p><strong>4. Setup SLIME</strong></p>
<p>CLISP changed recently (around version 2.44 &#8211; not sure exactly) and broke compatibility with the SLIME 2.0 release.  This was fixed in development and the CVS snapshot works.  If you try to use the 2.0 release, you&#8217;ll get an error that looks like this:</p>
<blockquote><p>INTERN(&#8220;FRAME-UP-1&#8243;): #&lt;PACKAGE SYSTEM&gt; is locked</p></blockquote>
<p>So use the CVS snapshot (which I linked to) and you should be fine.</p>
<p>Extract the SLIME folder to [HOME]\bin\emacs\site-lisp. (Here&#8217;s a tip about <a href="http://groups.google.com/group/comp.lang.lisp/msg/5fce0960ef4e27be" target="_blank">putting emacs code in site-lisp</a>).</p>
<p>Now in Emacs, open your .emacs file (C-x C-f, ~/.emacs) and enter the following (<a href="http://common-lisp.net/project/slime/doc/html/Installation.html" target="_blank">general SLIME instructions</a>, <a href="http://groups.google.com/group/comp.lang.lisp/msg/261cf5c37b8f9257" target="_blank">CLISP specific parameters</a>), changing your pathnames as usual:</p>
<blockquote><p>(setq inferior-lisp-program &#8220;[HOME]/bin/clisp/full/lisp.exe<br />
-B [HOME]/bin/clisp/full<br />
-M [HOME]/bin/clisp/full/lispinit.mem<br />
-ansi -q&#8221;)<br />
(add-to-list &#8216;load-path &#8220;[HOME]/bin/emacs/site-lisp/slime/&#8221;)<br />
(require &#8217;slime)<br />
(slime-setup)</p></blockquote>
<p>Save the .emacs file (C-x C-s), then run the eval-buffer command (M-x eval-buffer).  This will run the code that you just entered and tell Emacs how to run SLIME.</p>
<p>Now, you start slime with M-x slime and you&#8217;re ready to go!</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>I hope this works for you &#8211; I ran through it on another computer and it worked the first time, so if you use exactly these parts you should be OK.  Please <a href="http://www.pchristensen.com/blog/contact-me/">let me know</a> if you run into problems so I can incorporate the fix into my doc.  Many thanks to everyone who I linked to, since they did the coding, testing, and writeups that I used to get here.  More resources to come &#8211; tell me what you&#8217;d like to see.  If it&#8217;s something I was planning on doing anyway, I&#8217;ll move it up my queue.</p>
<p>The next guide will probably be setting up your built-in documentation (Hyperspec, etc).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pchristensen.com/blog/articles/installing-clisp-emacs-and-slime-on-windows-xp/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>Recap of 4/18/2008 Chicago Lisp Meeting</title>
		<link>http://www.pchristensen.com/blog/articles/recap-of-4182008-chicago-lisp-meeting/</link>
		<comments>http://www.pchristensen.com/blog/articles/recap-of-4182008-chicago-lisp-meeting/#comments</comments>
		<pubDate>Thu, 01 May 2008 20:18:10 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://www.pchristensen.com/blog/?p=223</guid>
		<description><![CDATA[I&#8217;m proud to report that the Chicago Lisp group is experiencing monthly membership growth of over 50%!  If my math is correct, by this time next year we should have close to 2500 members.  That should complicate venue planning  .

Here are our attendees:
Peter Christensen
John Quigley
Craig Luddington
Matt Bone
Brendan Baldwin
Andrew Wolven
Bruce Burdick
Chad Slaughter
Kurt Stephens
Steve [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m proud to report that the Chicago Lisp group is experiencing monthly membership growth of over 50%!  If my math is correct, by this time next year we should have close to 2500 members.  That should complicate venue planning <img src='http://www.pchristensen.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><span id="more-223"></span></p>
<p>Here are our attendees:</p>
<p>Peter Christensen<br />
John Quigley<br />
Craig Luddington<br />
Matt Bone<br />
Brendan Baldwin<br />
Andrew Wolven<br />
Bruce Burdick<br />
Chad Slaughter<br />
Kurt Stephens<br />
Steve Githens<br />
Alex Hemard</p>
<p><strong>ITEMS OF BUSINESS</strong>:  <strong></strong></p>
<p><strong>Name</strong> &#8211; None of the name ideas got much support, so we&#8217;re sticking with Chicago Lisp until someone comes up with something awesomer.  <strong></strong></p>
<p><strong>Project</strong> &#8211; No one had any ideas for or time to work on a project as a group so that&#8217;s also waiting for an awesomer idea.</p>
<p><strong>Server</strong> &#8211; John and Craig both have servers where they can host things but not allow remote access to.  John has a basic homepage at <a href="http://www.chicaglisp.org" target="_blank">http://www.chicaglisp.org</a> and has a <a href="http://https//www.chicagolisp.org/lists/listinfo/chicago-lisp-discuss" target="_blank">mailing list</a> setup.  There might be a wiki in the future.  Meeting announcements and recaps will continue to be on Peter&#8217;s <a href="http://www.pchristensen.com/blog/chicago-lisp" target="_blank">Chicago Lisp page</a> and then cross posted to the two mailing lists and the chicagolisp.org site.</p>
<p><strong>Next Meeting</strong></p>
<p><strong>WHEN</strong>:  Friday, May 16th at 7pm.  <strong></strong></p>
<p><strong>WHERE</strong>: CashNetUSA offices.  200 W. Jackson Blvd, 14th floor, Chicago.  <a href="http://tinyurl.com/6x24co" target="_blank">Map</a>.</p>
<p><strong>WHAT</strong>: Lightning talks.  The following people have signed up, more welcome (<a href="http://www.pchristensen.com/blog/chicago-lisp">email Peter</a> if interested or add a comment at <a href="http://coordinatr.com/events/home/3bbndi8iji" target="_blank">Coordinatr</a>)</p>
<ul>
<li>Grant Rattke &#8211; A simple object system using macros</li>
<li>Steve Githens &#8211; Scripting a Java SOA system using Kawa and Clojure</li>
<li>Dry runs from the people presenting at the Intro to Lisp Workshop</li>
</ul>
<p><strong>Intro to Lisp Workshop</strong>: We did some pre-planning and delegation.  See <a href="http://www.pchristensen.com/blog/articles/announcing-intro-to-lisp-workshop/">details here</a>.  <strong></strong></p>
<p><strong>Presentation on Combined Object-Lambda Architectures (COLAs)</strong>:</p>
<p>The inagural presentation of our group was about the work done by the <a href="http://www.vpri.org/" target="_blank">Viewpoints Research Institure (VPRI)</a>.  The most recognizable name associated with this is Alan Kay, Mr. Invent the Future himself.  John Quigley made an <a href="http://www.pchristensen.com/20080418-jquigley-colas.pdf" target="_blank">excellent slide deck</a> (pdf) where he reviewed the paper <a href="http://piumarta.com/software/cola/colas-whitepaper.pdf" target="_blank">&#8220;Making COLAs with Pepsi and Coke&#8221; </a>(pdf) by Ian Piumarta and put into slightly more comprensible language.</p>
<p>This paper is for the <a href="http://www.vpri.org/html/work/ifnct.htm" target="_blank">Fundamental New Computer Technologies</a> project at VPRI.  The aim of the project is to create a complete computing system in 20,000 lines of code.  This system would be everything from the hardware to the UI and include both design and implementation.  Having such a compact system would be a useful exploration and learning tool, so every part of it can be inspected and manipulated.  They&#8217;re currently 18 months into a 5 year project but they already have made intriguing progress.</p>
<p>John&#8217;s presentation was about the architecture of the self bootstrapping system.  I can&#8217;t claim that I understood it all, or even most of it.  I was able to keep up mostly because I had come across VPRI&#8217;s work on Jeff Moser&#8217;s blog earlier in the week so I was familiar with the overview.  What I did sort of grasp boggled my mind and definintely but VPRI on my technical radar, if for no other reason than as a technical challenge to aspire to.</p>
<p>If you can understand everything in Piumarta&#8217;s paper (or even in John&#8217;s summary deck), you&#8217;re a whiz.  If not, don&#8217;t feel bad.  I would recommend reading the <a href="http://www.vpri.org/pdf/NSF_prop_RN-2006-002.pdf" target="_blank">NSF proposal</a> (pdf) and the <a href="http://www.vpri.org/pdf/steps_TR-2007-008.pdf" target="_blank">first year progress report</a> (pdf).  They&#8217;re in more accessible, less technically deep language and they have pretty pictures.</p>
<p>Thanks John for setting the bar high right out of the gate!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pchristensen.com/blog/articles/recap-of-4182008-chicago-lisp-meeting/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Chicago Lisp Meeting, Friday 4/18</title>
		<link>http://www.pchristensen.com/blog/articles/chicago-lisp-meeting-friday-418/</link>
		<comments>http://www.pchristensen.com/blog/articles/chicago-lisp-meeting-friday-418/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 17:52:29 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://www.pchristensen.com/blog/articles/chicago-lisp-meeting-friday-418/</guid>
		<description><![CDATA[Announcing the next Chicago Lisp meeting!
WHEN:  this Friday, April 18th at 7pm.
WHERE: 210 S. Clark St, 24th floor (map).  Sign in at the front desk, take the elevator to the 24th floor.  There is only one suite there and the door will be held open.
WHAT:

 John Quigley will be giving a presentation [...]]]></description>
			<content:encoded><![CDATA[<p>Announcing the next Chicago Lisp meeting!</p>
<p><strong>WHEN</strong>:  this Friday, April 18th at 7pm.</p>
<p><strong>WHERE</strong>: 210 S. Clark St, 24th floor (<a href="http://maps.google.com/maps?layer=c&amp;ie=UTF8&amp;t=h&amp;ll=41.879619,-87.630719&amp;spn=0.006518,0.014119&amp;z=17" target="_blank">map</a>).  Sign in at the front desk, take the elevator to the 24th floor.  There is only one suite there and the door will be held open.</p>
<p><strong>WHAT</strong>:</p>
<ul>
<li> <a href="http://www.jquigley.com/" target="_blank">John Quigley</a> will be giving a presentation on <strike>continuations</strike> Alan Kay&#8217;s Fundamentals of New Computing Initiative (see <a href="http://www.vpri.org/" target="_blank">Viewpoints Research Institute</a>, their <a href="http://www.vpri.org/pdf/NSF_prop_RN-2006-002.pdf" target="_blank">NSF proposal</a>, and their <a href="http://www.vpri.org/pdf/steps_TR-2007-008.pdf" target="_blank">one year progress report</a>) (notes will be posted afterwards).</li>
<li>Soliciting Lightning Talk topics for next meeting (5/16).  <a href="http://www.wisdomandwonder.com/" target="_blank">Grant Rettke</a> has already signed up for &#8220;A Simple Object System Using Macros&#8221;.  2-3 more would be nice.</li>
<li>Some (short) planning for future meetings, Intro to Lisp workshop, etc</li>
<li>Ideas for a project we could hack together</li>
</ul>
<p><strong>AFTER</strong>:  Food and drinks.  Possibly at <a href="http://www.elephantcastle.com/content/locations/chicago_adams_st" target="_blank">Elephant &amp; Castle Pub</a>.</p>
<p>We had 7 people last month, let&#8217;s try for more!</p>
<p>If you&#8217;d like to hear about future meetings, please subscribe to the <a href="http://common-lisp.net/mailman/listinfo/chicago-lisp" target="_blank">chicago-lisp mailing list</a> or <a href="http://www.pchristensen.com/blog/contact-me/" target="_blank">send me</a> your email address and I&#8217;ll add you to the invite list at <a href="http://coordinatr.com" target="_blank">Coordinatr.com</a>.</p>
<p><hints id="hah_hints"></hints></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pchristensen.com/blog/articles/chicago-lisp-meeting-friday-418/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recap of 3/21 Chicago Lisp Meeting</title>
		<link>http://www.pchristensen.com/blog/articles/recap-of-321-chicago-lisp-meeting/</link>
		<comments>http://www.pchristensen.com/blog/articles/recap-of-321-chicago-lisp-meeting/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 20:06:24 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://www.pchristensen.com/blog/articles/recap-of-321-chicago-lisp-meeting/</guid>
		<description><![CDATA[Happy belated Chicago Lisp news!
Two weeks ago (March 21st), we had our first meeting to bootstrap the new Chicago Lisp User Group.  We had 7 people show up for the initial meeting:
Craig Luddington
Eli Naeher
Victor Kryukov
John Quigley
Shaneal Manek
Dave Morrow
Peter Christensen
Items Covered:
Future meetings &#8211; We decided on monthly meetings, the third Friday of every month, 7pm.  The [...]]]></description>
			<content:encoded><![CDATA[<p>Happy belated Chicago Lisp news!</p>
<p>Two weeks ago (March 21st), we had our first meeting to bootstrap the new Chicago Lisp User Group.  We had 7 people show up for the initial meeting:</p>
<p>Craig Luddington<br />
Eli Naeher<br />
Victor Kryukov<br />
John Quigley<br />
Shaneal Manek<br />
Dave Morrow<br />
Peter Christensen</p>
<p><strong>Items Covered:</strong></p>
<p><u>Future meetings</u> &#8211; We decided on monthly meetings, the third Friday of every month, 7pm.  The next meeting will be Friday, April 18th where John Q. will give a presentation on continuations.  The May meeting will have several lightning presentations &#8211; submissions welcome (please post a message on the Coordinatr event)!  All but one of the attendees live or work in the city of Chicago, so we decided that all meetings will be held in Chicago.</p>
<p><u>Meeting locations</u> &#8211; The first meeting was held at Ambrosia Cafe (1963 N. Sheffield, Chicago, map: <a href="http://tinyurl.com/2koztz" target="_blank">http://tinyurl.com/2koztz</a>).  It was a nice place for a meeting but we&#8217;d like to find a place to meet with a projector, so presentations can be given and recorded.  Some proposed locations are the IIT Institute of Design (350 N. LaSalle St) and the Harold Washington Library (400 S. State St).  If anyone has an office or location they&#8217;d like to volunteer, please let me know.</p>
<p><u>Scope</u> &#8211; We decided to keep the group and meeting open to the greater Lisp family &#8211; Common Lisp, Scheme, Arc, etc.  That will be the focus of the group but all are welcome to attend.  Some people expressed desire to start or adopt a project that we could work on as a group.</p>
<p><u>Name</u> &#8211; Some people wanted a better name than &#8220;Chicago Lisp&#8221;, and who can blame them?  One nomination as &#8220;LispChics&#8221; (inspired by NYC&#8217;s Lispniks) but I thought it was false advertising (7 guys with laptops, Chics, ??).  The name is up in the air, nominations accepted.</p>
<p><u>Web Presence</u> &#8211; John Q. owns the <a href="http://chicagolisp.org/" target="_blank">chicagolisp.org</a> domain and Craig L. has a server he volunteered for use.  A project we develop could be hosted there, and I recommended a CLiki instance for group notes.  I&#8217;ve also setup a group on <a href="http://coordinatr.com/" target="_blank">coordinatr.com</a> that I&#8217;d like to try out for organizing meetings.  You should get an email soon.</p>
<p>The common-lisp.net chicago-lisp mailing list will still be used but only as a supplement.  The list is not great because of spam but there are a hundred or so subscribers still on the list that would have no other connection to the group.</p>
<p><u>Intro to Lisp Workshop</u> &#8211; John Q. informed of a planned, all day workshop designed to introduce programmers to using Lisp &#8211; from installing and setting up an image to programming basics to advanced concepts.  It is planned for a Saturday in May (date TBD, location probably Institute of Design) and volunteers would be appreciated.</p>
<p><u>Coordinatr</u> &#8211; I&#8217;ll be trying out a new site called Coordinatr.com to manage the meetings.  You can RSVP there, submit ideas for proposals, etc.  You should receive email inviting you to the first two meetings shortly after this email.  There is also a feed of new events created for this group here:  <a href="http://coordinatr.com/feeds/rss/vcwxbvdrepk2blkbtwctez" target="_blank">http://coordinatr.com/feeds<wbr></wbr>/rss/vcwxbvdrepk2blkbtwctez</a> .  You can get updates and reminders by email and/or SMS, but I think the RSS feed doesn&#8217;t get updated (the platform has only been out for a couple weeks).  Let me know how this works &#8211; I think it&#8217;ll be better than a zillion back and forth emails.</p>
<p>You can view the feed without registering at the site, but you need to register AND be invited to see the event website, RSVP, post messages, etc.  Good news is that you can invite new people to an existing event once you&#8217;ve registered.</p>
<p><strong>Calendar:</strong></p>
<p>Friday, April 18, 7pm: Chicago Lisp Meeting<br />
Location TBD<br />
Presentation on Continuations</p>
<p>Friday, May 16, 7pm: Chicago Lisp Meeting<br />
Location TBD<br />
Lightning presentations, accepting submissions</p>
<p>Some Saturday in May: Intro to Lisp Workshop<br />
Location TBD (probably Institute of Design)<br />
Getting started with Lisp, all-day event</p>
<p><strong>Homework Items:</strong></p>
<p>Name the Group!  Send submissions to Peter</p>
<p>Lightning Talk Proposals for May 16 meeting</p>
<p>Locations for future meetings &#8211; 3rd Friday of the month, 7pm, ~10 people, preferably with wireless access and a projector.  If you have a place, email Peter</p>
<p>Feedback on using Coordinator for managing events</p>
<p>Thanks,<br />
Peter Christensen<br />
DFGL (de facto group leader)<br />
<hints id="hah_hints"></hints></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pchristensen.com/blog/articles/recap-of-321-chicago-lisp-meeting/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.764 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-07-29 10:35:49 -->
