<?xml version="1.0"?>
<rss version="2.0">
<channel>
	<title>Planet Lisp</title>
	<link>http://planet.lisp.org/</link>
	<description>Planet Lisp</description>
	<language>en</language>


<item>
	<title>G&#225;bor Melis: Micmac Initial Release</title>
	<guid isPermaLink="true">http://quotenil.com/Micmac-Initial-Release.html</guid>
	<link>http://quotenil.com/Micmac-Initial-Release.html</link>
	
	<description>&lt;div&gt;
  From a failed experiment today I salvaged &lt;a href="http://cliki.net/micmac"&gt;Micmac&lt;/a&gt;, a statistical
  library wannabe, that for now only has Metropolis-Hastings MCMC and
  Metropolis Coupled MCMC implemented. The code doesn't weigh much but
  I think it gets the API right. In other news &lt;a href="http://cliki.net/MGL"&gt;MGL&lt;/a&gt; v0.0.6 was released.
    &lt;/div&gt;</description>
	
	<pubDate>Fri, 05 Feb 2010 23:00:00 GMT</pubDate>
</item>

<item>
	<title>Ryan Davis: more heat-maps using vecto and ch-image</title>
	<guid isPermaLink="true">http://ryepup.unwashedmeme.com/blog/2010/02/05/more-heat-maps-using-vecto-and-ch-image/</guid>
	<link>http://ryepup.unwashedmeme.com/blog/2010/02/05/more-heat-maps-using-vecto-and-ch-image/</link>
	
	<description>&lt;p&gt;This is a follow-up to my post last year about &lt;a href="http://ryepup.unwashedmeme.com/blog/2009/12/30/simplistic-heat-maps-using-vecto/"&gt;simplistic heat-maps using Vecto&lt;/a&gt;. To recap, I&amp;#8217;m trying to make heat maps for google maps overlays.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s how it works in a nutshell:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;From javascript I pass to the server the lat/lng region currently shown on the google map, and what size heat map to generate, in pixels.&lt;/li&gt;
&lt;li&gt;lisp pulls weights from my database within the given lat/lng region&lt;/li&gt;
&lt;li&gt;lisp iterates over the db results, mapping lat/lng to x/y coordinates for the final heat map image&lt;/li&gt;
&lt;li&gt;lisp uses the list of mapped (x y weight) to draw the heat map in png&lt;/li&gt;
&lt;li&gt;javascript throws the png on top of the google map&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I tried a few things based upon the comments I got back from the helpful lisp community.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;used &lt;a href="http://www.xach.com/lisp/zpng/"&gt;zpng&lt;/a&gt; to get direct pixel access, and calculated each pixel&amp;#8217;s color using a weighted average of nearby points using distance.  This didn&amp;#8217;t produce good images, and was pretty slow.&lt;/li&gt;
&lt;li&gt;used &lt;a href="http://www.xach.com/lisp/zpng/"&gt;zpng&lt;/a&gt; to get direct pixel  access, and calculated each pixel&amp;#8217;s color using the gravity formula against nearby  points.  This didn&amp;#8217;t produce good images, and was &lt;em&gt;very&lt;/em&gt; slow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I did some more research and learned about the &lt;a href="http://gmt.soest.hawaii.edu/"&gt;Generic Mapping Tools&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Bicubic_interpolation"&gt;bicubic interpolation&lt;/a&gt;. The GMT is a set of C programs, similar to the &lt;a href="http://www.imagemagick.org/"&gt;Imagemagick&lt;/a&gt; suite.  GMT showed one way to draw heat maps in the &lt;a href="http://gmt.soest.hawaii.edu/gmt/doc/gmt/html/GMT_Docs/node122.html"&gt;Image Presentations&lt;/a&gt; tutorial.  It spoke of gridded data sets, and that gave me one more &lt;a href="http://www.xach.com/lisp/vecto/"&gt;vecto&lt;/a&gt;-based idea: split the desired heat-map into a grid and color each square in the grid based upon an average of the weights mapped in that square.  This is a neat effect, but not what I was going for:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ryepup.unwashedmeme.com/blog/wp-content/uploads/2010/02/heat-map-grid.png"&gt;&lt;img class="alignnone size-medium wp-image-170" title="heat-map-grid" src="http://ryepup.unwashedmeme.com/blog/wp-content/uploads/2010/02/heat-map-grid-300x167.png" alt="" width="300" height="167" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is reasonably fast, taking about 1 second on my dev server.  To quickly find what weights belong in which grid square, I make a spatial index of all the weights, using an &lt;a href="http://en.wikipedia.org/wiki/R-tree"&gt;r-tree&lt;/a&gt; from the &lt;a href="http://www.cliki.net/spatial-trees"&gt;spatial-trees &lt;/a&gt;library.&lt;/p&gt;
&lt;p&gt;The next method I tried was to use interpolation to get a smooth look.  I found &lt;a href="http://cyrusharmon.org/"&gt;Cyrus Harmon&lt;/a&gt;&amp;#8217;s &lt;a href="http://cyrusharmon.org/projects?project=ch-image"&gt;ch-image&lt;/a&gt; library supports image interpolation, and got to it.  As &lt;a href="http://nklein.com/"&gt;Patrick Stein&lt;/a&gt; noted elsewhere, &lt;a href="http://nklein.com/2009/10/adventures-in-package-dependencies/"&gt;ch-image isn&amp;#8217;t easy to install&lt;/a&gt;.  It&amp;#8217;s not asdf-installable, and the project page doesn&amp;#8217;t list all its dependencies.  For future reference, here&amp;#8217;s what I think I needed to install it:&lt;/p&gt;
&lt;pre&gt;(asdf-install:install "http://cyrusharmon.org/static/releases/ch-asdf_0.2.14.tar.gz")
(asdf-install:install "http://cyrusharmon.org/static/releases/ch-util_0.3.10.tar.gz")
(asdf-install:install "http://cyrusharmon.org/static/releases/smarkup_0.4.2.tar.gz")
(asdf-install:install "http://mirror.its.uidaho.edu/pub/savannah/cl-bibtex/cl-bibtex-1.0.1.tar.gz")
(asdf-install:install "http://cyrusharmon.org/static/releases/clem_0.4.1.tar.gz")
(asdf-install:install "http://cyrusharmon.org/static/releases/ch-image_0.4.1.tar.gz")
&lt;/pre&gt;
&lt;p&gt;Armed with ch-image, now the drawing process becomes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;draw a small image, coloring pixels based upon weights&lt;/li&gt;
&lt;li&gt;enlarge the small image with interpolation&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first step is very similar to the code I wrote to make the grid version above.   Instead of drawing a rectangle, I draw a pixel using ch-image&amp;#8217;s pixel access functions.  This was a little weird because ch-image&amp;#8217;s coordinate system has 0,0 at the top left of the image.  I&amp;#8217;m still not sure how to best choose the size of this smaller image, but ultimately it should depend on my data.  For now I just have it hard-coded be 20x smaller than the desired size:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ryepup.unwashedmeme.com/blog/wp-content/uploads/2010/02/heat-map-ch-image-small1.png"&gt;&lt;img class="alignnone size-full wp-image-172" title="heat-map-ch-image-small" src="http://ryepup.unwashedmeme.com/blog/wp-content/uploads/2010/02/heat-map-ch-image-small1.png" alt="" width="35" height="20" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Yep, that&amp;#8217;s pretty small.  Applying a transform to scale it up to the desired size using bilinear interpolation yields:&lt;/p&gt;
&lt;div class="mceTemp"&gt;
&lt;dl id="attachment_173" class="wp-caption alignnone"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a href="http://ryepup.unwashedmeme.com/blog/wp-content/uploads/2010/02/heat-map-ch-image-bilinear.png"&gt;&lt;img class="size-medium wp-image-173" title="heat-map-ch-image-bilinear" src="http://ryepup.unwashedmeme.com/blog/wp-content/uploads/2010/02/heat-map-ch-image-bilinear-300x171.png" alt="" width="300" height="171" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;/dl&gt;
&lt;/div&gt;
&lt;p&gt;It looks pretty good and takes about a half-second to draw.  If you click into the larger version, you can see some discontinuities in there, which is a well-known result of bilinear interpolation.  However, based upon other graphics I&amp;#8217;ve seen, what I really want is bicubic interpolation.  Luckily, ch-image has this built in:&lt;/p&gt;
&lt;div class="mceTemp"&gt;
&lt;dl id="attachment_174" class="wp-caption alignnone"&gt;
&lt;dt class="wp-caption-dt"&gt;&lt;a href="http://ryepup.unwashedmeme.com/blog/wp-content/uploads/2010/02/heat-map-ch-image-bicubic.png"&gt;&lt;img class="size-medium wp-image-174" title="heat-map-ch-image-bicubic" src="http://ryepup.unwashedmeme.com/blog/wp-content/uploads/2010/02/heat-map-ch-image-bicubic-300x171.png" alt="" width="300" height="171" /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;/dl&gt;
&lt;/div&gt;
&lt;p&gt;Oops, maybe not so luckily.  I can certainly see the kinds of look I&amp;#8217;m wanting in all the garbled stuff, but ch-image is freaking out somewhere there.&lt;/p&gt;
&lt;p&gt;Bilinear it is!  Here&amp;#8217;s a screenshot of the overlay in place on the map:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ryepup.unwashedmeme.com/blog/wp-content/uploads/2010/02/heat-map-gmap-bilinear.png"&gt;&lt;img class="alignnone size-medium wp-image-175" title="heat-map-gmap-bilinear" src="http://ryepup.unwashedmeme.com/blog/wp-content/uploads/2010/02/heat-map-gmap-bilinear-300x169.png" alt="" width="300" height="169" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s pretty fast, and looks pretty nice, and is fairly close to the look I wanted.  I probably still have some off-by-one errors somewhere, and need to check the git repos for the ch-* libs to see if there might be newer versions than the tarballs I installed.  I still count this as great progress for 5 hours of coding and research.  Huzzah for the much-maligned lisp libraries!&lt;/p&gt;</description>
	
	<pubDate>Fri, 05 Feb 2010 20:40:24 GMT</pubDate>
</item>

<item>
	<title>Erik Winkels: Google AI Challenge 2010</title>
	<guid isPermaLink="true">http://aerique.blogspot.com/2010/02/google-ai-challenge-2010.html</guid>
	<link>http://aerique.blogspot.com/2010/02/google-ai-challenge-2010.html</link>
	
	<description>For those who've missed it: &lt;a href="http://csclub.uwaterloo.ca/contest/"&gt;Google AI Challenge 2010&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There's no Common Lisp starter pack &lt;i&gt;(edit: since this is getting misinterpreted I meant a CL starter pack for the AI Challenge)&lt;/i&gt; but after a particular nasty adventure spelunking for days through an archaic database at work, fighting through the 20 years of cruft that has been build up inside of it and finally finding and fixing the problem I decided that I needed a break and wrote an initial version of a Common Lisp (SBCL) client.&lt;br /&gt;&lt;br /&gt;Perhaps someone with connections at the University of Waterloo and some work can finish it and make it an official starter pack?  I've got to go back to work ;-)&lt;br /&gt;&lt;br /&gt;Relevant links:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://csclub.uwaterloo.ca/contest/forums/download/file.php?id=16"&gt;Common Lisp starter pack&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://csclub.uwaterloo.ca/contest/forums/viewtopic.php?f=10&amp;t=28&amp;p=184"&gt;Forum post&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/14701151-7013752191316475147?l=aerique.blogspot.com" alt="" /&gt;&lt;/div&gt;</description>
	
	<pubDate>Fri, 05 Feb 2010 15:43:00 GMT</pubDate>
</item>

<item>
	<title>Lispjobs: Lisp Programmer (Raleigh, NC)</title>
	<guid isPermaLink="true">http://lispjobs.wordpress.com/2010/02/04/lisp-programmer-raleigh-nc/</guid>
	<link>http://lispjobs.wordpress.com/2010/02/04/lisp-programmer-raleigh-nc/</link>
	
	<description>&lt;br /&gt;&lt;p&gt;The candidate will be a well-versed &lt;a href="http://www.udig.com/View-listings.aspx?id=2954&amp;ref=indeed#JobViewed_2954"&gt;Lisp developer&lt;/a&gt; with expert system expertise. Candidates do not have to have Rules experience for this role.&lt;br /&gt;
The development group consists of a small focused team of professionals, responsible for the design, development, and maintenance of the Convergence Point service. ConVergence Point is offered to clients through a 24&amp;#215;7x365 Software as a Service (SaaS) model.&lt;/p&gt;
  &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lispjobs.wordpress.com/435/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lispjobs.wordpress.com/435/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lispjobs.wordpress.com/435/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lispjobs.wordpress.com/435/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lispjobs.wordpress.com/435/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lispjobs.wordpress.com/435/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lispjobs.wordpress.com/435/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lispjobs.wordpress.com/435/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lispjobs.wordpress.com/435/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lispjobs.wordpress.com/435/" /&gt;&lt;/a&gt; &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lispjobs.wordpress.com&amp;blog=504450&amp;post=435&amp;subd=lispjobs&amp;ref=&amp;feed=1" /&gt;</description>
	
	<pubDate>Thu, 04 Feb 2010 20:49:53 GMT</pubDate>
</item>

<item>
	<title>Lispjobs: ITA jobs</title>
	<guid isPermaLink="true">http://lispjobs.wordpress.com/2010/02/03/ita-jobs/</guid>
	<link>http://lispjobs.wordpress.com/2010/02/03/ita-jobs/</link>
	
	<description>&lt;br /&gt;&lt;p&gt;It&amp;#8217;s been a while since we mentioned ITA.&lt;/p&gt;
&lt;p&gt;You might look at the &lt;a href="http://itasoftware.com/careers/jsearch.html?textfield=lisp"&gt;full time and internship jobs at ITA that mention Lisp&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Update: currently, only one of positions listed, an internship, is primarily a Lisp job.&lt;/p&gt;
  &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lispjobs.wordpress.com/432/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lispjobs.wordpress.com/432/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lispjobs.wordpress.com/432/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lispjobs.wordpress.com/432/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lispjobs.wordpress.com/432/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lispjobs.wordpress.com/432/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lispjobs.wordpress.com/432/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lispjobs.wordpress.com/432/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lispjobs.wordpress.com/432/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lispjobs.wordpress.com/432/" /&gt;&lt;/a&gt; &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lispjobs.wordpress.com&amp;blog=504450&amp;post=432&amp;subd=lispjobs&amp;ref=&amp;feed=1" /&gt;</description>
	
	<pubDate>Wed, 03 Feb 2010 21:57:28 GMT</pubDate>
</item>

<item>
	<title>Lispjobs: Freelance Lispworks programmer, Holland</title>
	<guid isPermaLink="true">http://lispjobs.wordpress.com/2010/02/02/freelance-lispworks-programmer-holland/</guid>
	<link>http://lispjobs.wordpress.com/2010/02/02/freelance-lispworks-programmer-holland/</link>
	
	<description>&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.it-contracts.nl/vacature_144533"&gt;MBA Michael Bailey Associates zoekt &amp;#8220;Developer&amp;#8221;&lt;/a&gt;&lt;/p&gt;
  &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lispjobs.wordpress.com/429/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lispjobs.wordpress.com/429/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lispjobs.wordpress.com/429/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lispjobs.wordpress.com/429/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lispjobs.wordpress.com/429/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lispjobs.wordpress.com/429/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lispjobs.wordpress.com/429/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lispjobs.wordpress.com/429/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lispjobs.wordpress.com/429/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lispjobs.wordpress.com/429/" /&gt;&lt;/a&gt; &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lispjobs.wordpress.com&amp;blog=504450&amp;post=429&amp;subd=lispjobs&amp;ref=&amp;feed=1" /&gt;</description>
	
	<pubDate>Wed, 03 Feb 2010 03:52:08 GMT</pubDate>
</item>

<item>
	<title>Peter Van Eynde: CLC v7</title>
	<guid isPermaLink="true">http://pvaneynd.livejournal.com/133491.html</guid>
	<link>http://pvaneynd.livejournal.com/133491.html</link>
	
	<description>With a lot of help from Faré and James Y Knight we have now the incredible disappearing common-lisp-controller v7. We went from 617 to 267 lines which in fact are only 193 lines excluding comments and empty lines...&lt;br /&gt;&lt;br /&gt;Using the new features of cl-asdf version 1.500 and higher the implementation of CLC is now merely setting a few variables and putting a few files into place. As an added bonus I added &lt;a href="http://common-lisp.net/project/clbuild/"&gt;clbuild&lt;/a&gt; integration, so now people can download and update libraries with ease.&lt;br /&gt;&lt;br /&gt;Still todo: &lt;ul&gt;&lt;li&gt;there is an bug (&lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=567912"&gt;#567912&lt;/a&gt;) that the first call to &lt;tt&gt;(clc:clc-require :&amp;lt;foo&amp;gt;)&lt;/tt&gt; will fail with clisp due to a loop where there is no looping...&lt;/li&gt;&lt;li&gt;We still need to find a way to precompile libraries&lt;/li&gt;&lt;li&gt;Because asdf is now taking care of placing the fasl file in the correct place, we cannot remove fasls for a specific implementation or library, so we nuke them all. Not optimal.&lt;/li&gt;&lt;/ul&gt;.&lt;br /&gt;&lt;br /&gt;Still a nice improvement, I hope to find some time at fosdem to work on the other issues...</description>
	
	<pubDate>Mon, 01 Feb 2010 20:38:31 GMT</pubDate>
</item>

<item>
	<title>Erik Winkels: A Black Tie and a Clysma</title>
	<guid isPermaLink="true">http://aerique.blogspot.com/2010/02/black-tie-and-clysma.html</guid>
	<link>http://aerique.blogspot.com/2010/02/black-tie-and-clysma.html</link>
	
	<description>I've uploaded one-and-a-half project to GitHub that may or may not be useful to other people:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://github.com/aerique/black-tie#readme"&gt;Black Tie&lt;/a&gt; packages the noise functions that were previously in &lt;a href="http://github.com/aerique/okra#readme"&gt;Okra&lt;/a&gt; as a seperate library.  It is not very extensive yet and has only been optimized for SBCL.  At the moment it includes functions for generating Perlin noise, simplex noise and Voronoi diagrams.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://github.com/aerique/clysma#readme"&gt;Clysma&lt;/a&gt; is a toy project that at the moment mostly serves as an example of using &lt;a href="http://common-lisp.net/project/cl-gtk2/"&gt;CL-GTK2&lt;/a&gt;.  I don't really know where I want to go with it but for now it allows you to stroll through a running CL session and do some sightseeing.&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/14701151-5749026789161663653?l=aerique.blogspot.com" alt="" /&gt;&lt;/div&gt;</description>
	
	<pubDate>Mon, 01 Feb 2010 09:41:00 GMT</pubDate>
</item>

<item>
	<title>Andreas Fuchs: cl-beanstalk: A queue service client</title>
	<guid isPermaLink="true">http://boinkor.net/archives/2010/01/cl-beanstalk-a-queue-service-c.html</guid>
	<link>http://boinkor.net/archives/2010/01/cl-beanstalk-a-queue-service-c.html</link>
	
	<description>&lt;p&gt;Over the weekend, I wrote a little client library to a queue server that I&amp;#8217;ve grown very fond of over the last year, &lt;a href="http://kr.github.com/beanstalkd/"&gt;beanstalk&lt;/a&gt;. It&amp;#8217;s a very simple queue server, but it comes with a nice feature (delayed jobs) that I&amp;#8217;ve had a use for recently.&lt;/p&gt;

&lt;p&gt;The queue server is nicely engineered (written in C, works with queues a few million jobs deep), and very fast; it has guards in the protocol against worker failure, and it was a pleasure to implement: The whole thing is just 320 lines of code, including comments.&lt;/p&gt;

&lt;p&gt;You can get the source (and a tiny example) at the &lt;a href="http://github.com/antifuchs/cl-beanstalk"&gt;cl-beanstalk&lt;/a&gt; github repository.&lt;/p&gt;

&lt;p&gt;Hope this is useful for anyone else - I am planning on using this in autobench myself, to distribute work across several build hosts.&lt;/p&gt;</description>
	
	<pubDate>Sun, 31 Jan 2010 16:49:52 GMT</pubDate>
</item>

<item>
	<title>Andy Hefner: McPixel, a frivolous lisp hack.</title>
	<guid isPermaLink="true">http://ahefner.livejournal.com/17723.html</guid>
	<link>http://ahefner.livejournal.com/17723.html</link>
	
	<description>Yesterday, I had the idea that it would be easy and entertaining to hack together a toy application for drawing and animating pixel art. Some hours later, &lt;a href="http://github.com/ahefner/McPixel"&gt;McPixel&lt;/a&gt; was born. It provides an editable grid of pixels, a color palette, and allows you to string sequences of images together into animations. It's a toy, but someone might find it amusing. Obligatory screenshot:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://vintage-digital.com/hefner/misc/McPixel-2.png"&gt;&lt;img alt="McPixel" src="http://vintage-digital.com/hefner/misc/McPixel-2-th.png" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Features:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;80's retro McCLIM user interface.&lt;/li&gt;&lt;li&gt;No documentation or online help.&lt;/li&gt;&lt;li&gt;Maximally frustrating color sliders, using IHS colorspace.&lt;/li&gt;&lt;li&gt;Intuitive modeless drawing UI, achieved by including only a pencil tool.&lt;/li&gt;&lt;li&gt;Saves/loads files only in its own format, based on unportable s-expressions.&lt;/li&gt;&lt;li&gt;Requires X11 and SBCL with threads, to keep out the riffraff.&lt;/li&gt;&lt;li&gt;User-editable brush shape.&lt;/li&gt;&lt;li&gt;Remap Color and Silhouette commands, for tracing previous frames.&lt;/li&gt;&lt;li&gt;Realtime animated preview plays while you work.&lt;/li&gt;&lt;/ul&gt;I'm not sure I'll ever put this to productive use, if a productive use for such a thing even exists, but there you have it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Update&lt;/strong&gt;:&amp;nbsp;I've added the ability to export an animated GIF file, using Xach Beane's &lt;a href="http://www.xach.com/lisp/skippy/"&gt;Skippy&lt;/a&gt; library. Here's the &amp;quot;turtle.anim&amp;quot; example file, exported as a GIF:&lt;br /&gt; &lt;img src="http://vintage-digital.com/hefner/misc/turtle.gif" alt="McTurtle" /&gt;</description>
	
	<pubDate>Sun, 31 Jan 2010 07:26:03 GMT</pubDate>
</item>


</channel>
</rss>
