Subscribe: Zach's Journal
Added By: Feedage Forager Feedage Grade B rated
Language: English
answers  code  common lisp  common  emacs  github  lisp  list  new  people  project  questions  slime  system  time  work 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Zach's Journal

Zach Beane's Blog

Zach Beane's Blog -

Last Build Date: Mon, 02 Nov 2015 14:43:14 GMT


New pixel speech bubble thing

Mon, 02 Nov 2015 14:43:14 GMT

I made a new pixel speech bubble site. It's like the old one on Wigflip, but I think it's better.

My blog has moved

Tue, 07 Apr 2015 14:46:03 GMT

I've been writing over at I'm not going to update LiveJournal any more.

Common Lisp bits

Wed, 17 Sep 2014 20:56:22 GMT

Heinrich Apfelmus has updated to the source code from Computer Models of Musical Creativity and put it on github. Looks like it's meant to work with RMCL.

"CEPL is an extension for common lisp that makes working with OpenGL simple and familiar," according to Baggers. There is a blog and a number of videos about CEPL. The readme cautions: PRE-ALPHA.

"BG" gives a take on the history of Macintosh Common Lisp. Rainer Joswig responded to a number of points in the ensuing /r/lisp discussion.

3bgl-shader is "a Common Lisp DSL for generating GLSL shaders," by Bart Botta. Needs people to try it out and provide feedback.

Pseudo is a Lisp-powered roguelike multiplayer browser game, with AGPLv3-licensed source code available. Created by Matthew Carter.

The Infected is a roguelke survival horror game in Common Lisp, by Jan Tatham.

Mariano Montone writes about embedding Python syntax (and functionality) in Common Lisp sources.

Where to get help with Common Lisp

Mon, 25 Aug 2014 02:39:06 GMT

There are several options for getting help with Common Lisp.First, some general sources of help.Any coherent question posted to Stack Overflow with a Common-Lisp tag gets answered very quickly by a number of informed people. Rainer Joswig in particular has answered hundreds of questions with quality information. There are many other people who provide quick answers, too. Answers are scored, and, in general, helpful answers score highly and unhelpful answers are moderated away.Questions posted to reddit's /r/lisp and /r/learnlisp subreddits often get a number of answers quickly as well. In my experience, there are more eyes and answers on /r/lisp. I think it's fine to ask novice questions there. Answers are scored, and unhelpful answers are usually downvoted.Freenode #lisp IRC is good for realtime interaction. Questions, even novice-level questions, are welcome there, but it helps if your novice question comes from reading a good book and getting stuck. On-topicness is cherished; if you're bored and want to talk with IRC friends about your day, try somewhere else. It is moderated for topic (you might get scolded for talking about stuff other than Common Lisp) and for spammers/trolls (who get kicked and banned). It is not moderated for quality of helpfulness; it can be the case that five people attempt to provide their vision of helpfulness at once, and the most enthusiastic (or just the fastest typer) will dominate the content. It can be difficult at times to tell who, if anyone, is being genuinely helpful. But the quick feedback loop of IRC can be invaluable despite its drawbacks.The mailing list has some high-level discussion among Common Lisp "pro" users. I can't find the original announcement for this list, but the general idea is that it is for people who use Common Lisp in a professional capacity, not people who are figuring out how conses or macros work.I've never really gotten into it, but seems to be active.comp.lang.lisp still has some helpful people who read and respond to questions. It is wholly unmoderated. There are several people (WJ, gavino, and others) who have been posting troll threads for years. The signal/noise ratio at times can be terrible. Those who remain have learned to manage a killfile or are gluttons for punishment. Don't read or post through Google Groups, which screws up formatting and has very little in the way of article filtering. I use for access, which costs a tiny amount. There are free servers out there as well. I read and filter articles with GNUS for Emacs.Second, some implementation-specific help.Every implementation has a mailing list. Some have multiple lists, depending on the topic of discussion. Here are some of the lists I know about:armedbear-devel, for discussing ABCL development and reporting bugsallegro-cl, for Allegro CL. Beware that "the accuracy of postings made to the list is not guaranteed." (I think that goes for every mailing list, ever.)clisp-list, for discussing everything related to CLISPopenmcl-devel, for general discussion of Clozure CLCMUCL has several mailing listsecls-list, for ecl users and developerssbcl-help, for SBCL help; there's also sbcl-devel for SBCL development discussionMy favorite (even though I don't use LispWorks very much) is lisp-hug, the list for LispWorks users. Even advanced or esoteric questions about LispWorks-specific features usually get quick, useful answers from other users, and the LispWorks implementors actively contribute as well.Finally, there's a Quicklisp mailing list for Quicklisp issues. All questions about Quicklisp are welcome.When appealing to any of these sources for help, asking good questions is critical to getting good results. In many cases, that requires three key bits of information:What did you try? Actual source code can be hugely helpful here. can be a good place to[...]

Starting a Lisp project in 2014

Sat, 23 Aug 2014 03:40:24 GMT

If you're starting a project today and you want to make it easy to interact with the outside world, there are many, many, many services available. If you're feeling overwhelmed with all the options, here's what I'd recommend to get started:

  • Manage sources with git and host the code, issue tracking, and website on github

  • Get a blog on Tumblr or Blogger if you want to write extended info about what you're doing, in addition to regular documentation

  • Set up a mailing list on Google Groups to provide support to your users

  • Tweet about it on twitter for another easy way to reach out to people who might be interested in short updates about your stuff

After a while you may find one or more of these options lacking. That's a good time to start shopping around and exploring other options. But when you're just getting started and you want to get up and running quickly, give them a shot.

Common Lisp bits

Fri, 22 Aug 2014 14:52:19 GMT

The International Lisp Conference 2014 is history. I didn't make it, but Julian Squires did and provided a nice write-up. So did Nick Levine.Reddit user FightAnArmedBearP started a discussion titled "Should my startup attempt to use ABCL in a production environment?" The ensuing feedback from Mikel Evins, Cyrus Harmon, Mark Evenson, and others is of extremely high quality, with excellent information about using ABCL and other solutions for working with Lisp on the JVM. Highly recommended reading even if you think you'll never be in the same by Ryan Pavlik looks to me like a genius way to do FFI wrappers without needing to use stub C programs and a compiler at build time. It uses c2ffi, a standalone C++ program, to generate specification data files you can distribute with your project, after which neither c2ffi nor a C compiler is involved in using the FFI wrapper. It's a work in progress, one of the Lisp In Summer Projects projects, but I'm excited about the potential.Speaking of Lisp In Summer Projects, Janne Nykopp's Notewhacker sounds fun: it's a game for learning sheet music notation, with MIDI instrument support.elPrep is a LispWorks-olnly, BSD-style-licensed "high-performance tool for preparing .sam/.bam files for variant calling in sequencing pipelines." I don't know what that means, but it's a full Common Lisp application for the purpose, and it looks neat. From Charlotte Herzeel and Pascal Costanza.Ezra Rush has written networked, OpenGL battleship and pong games. They use Patrick Stein's userial game protocol example.Slugmage is a work-in-progress game from Alyssa Carter. "I hope to turn Slugmage into the game it was meant to be!" Uses SDL.Testament of the White Cypress is "a fantasy role-playing adventure game for your Windows, Mac, or Linux PC. Using the mouse and keyboard, a single player controls a lone monk named Geoffrey as he travels through a post-apocalyptic wilderness." From David O'Toole, using his Xelf game engine. It has split licensing: the code is GPLv3 but the music and art assets are not freely redistributable.Nicolas Hafner takes a shot at explaining CLOS to the is a "command-line static site generator that supports arbitrary content and multiple languages." By Alex Charlton. (Not to be confused with Philip "Don't Call Me Phil" Greenspun's SITE CONTROLLER.)qlot by Eitaro Fukamachi is a project-local library installer that uses Quicklisp. "This aims to be like Bundler of Ruby or Carton of Perl." Seems interesting, though it comes with a big "ALPHA quality" warning.[...]

International Lisp Conference 2014

Sun, 13 Jul 2014 23:10:41 GMT

I'm going to the International Lisp Conference in 2014 and so should you. It's great to meet Lispers in person and swap stories. Montreal is also a great city.

The deadline for early registration is tomorrow, Monday, July 14th. If you join the ALU for $25, early registration is only $300. (If you don't join the ALU, early registration is $400.) After tomorrow the registration fee goes up signifcantly!

Go register today! See you in Montreal next month!

Common Lisp bits

Tue, 08 Jul 2014 13:18:14 GMT

A collection of Lisp Usenet gems, including articles from Kent Pitman, Erik Naggum, Chris Riesbeck, Pascal Costanza, and Will Hartung.

Things I Want in Common Lisp by Robert Smith.

Video demo of cl-notebook by lnaimathi. By the same author: [T]he primary endeavor of every programmer is twofold: To understand, and to be understood, which demonstrates generating code from a visual diagram.

Looking to start a band? Stumped on a name? See this twitter thread for inspiration.

simple-search is a "smaller alternative to Montezuma" that "allows you to index documents you have stored in-memory and query them in various ways." Looks good. From Andrew Lyon.

It is not hard to read Lisp code, by Jisang Yoo.

mathkit is "
a purely math-related utility kit, providing functions which can be useful for games, 3D, and GL in general" by Ryan Pavlik.

CL news

Tue, 10 Jun 2014 12:40:52 GMT

Crane is a new Common Lisp ORM by Fernando Borretti. "Crane doesn't drink the ORM Kool Aid: You won't spend a single minute struggling with an interface that claims to be 'simple' yet forces you into a limited vision of how databases should work."

Mark Fedurin surveys ASDF system version strings in the wild. The cartoon at the end is great.

From Rainer Joswig: Why Lisp is Different (2007) and 30 years of Common Lisp (2014).

a-cl-logger is a Common Lisp logging library with node-logstash integration, support for swank presentations, context-sensitive logging, and more.

Common Lisp bits

Fri, 23 May 2014 15:01:45 GMT

The Internet Archive has a giant tarball of old Lucid stuff, a 3.6GB download. Here's a file index, 1MB. The dump includes:
It's unclear who published this dump on and what they expect people to do with it. As Rainer Joswig points out, "this dump does not mean there is a usable license" for anything it contains.

Gábor Melis's mgl-pax is an exploratory programming environment and documentation generator. Gábor presented PAX at ELS.

Challenging Clojure in Common Lisp, by Chris Kohlhepp. Uses Kenny Tilton's Cells!

You can now create OS X apps in mocl. There's a 15-minute screencast demo of a Planet Lisp app.

SBCL now has an MPFR contrib that provides "arbitrary precision arithmetic on floating-point numbers". It will be available in the next release after 1.1.18.

SBCL now has an ARM port. It is incomplete but under active development.

Mariano Montone is working on CLDM, a distributed dependency manager.

Videos for the 7th European Lisp Symposium are now available. There are two sets: Monday's videos and Tuesday's videos.

Jeff Massung recently published a ton of useful LispWorks-specific libraries. Apache licensed.

Some Lisp things

Fri, 02 May 2014 15:18:54 GMT

Christian Schafmeister is working on Clasp, "a superset of ... Common Lisp using LLVM to provide just-in-time compilation support." He's put up a video of a C++ refactoring tool created with Clasp.

Performance and Types in Lisp takes a look at how SBCL handles types, particularly with type inference and use of declarations. It prompted some followup discussion on /r/lisp.

Butler is a Common Lisp kernel for IPython Notebook, but "don't expect anything to happen yet until more messages and sockets are set up." Pull requests welcome.

cl-lockable provides a simple locking mixin class with convenient macros and functions to work with it.

Lisp bits

Fri, 25 Apr 2014 12:36:59 GMT

Apis is "a worker bee for building application hives" by supporting shared-nothing concurrency and distributed processing. By Mikel Evins.

BASIC-BINARY-IPC uses local or network (IPv4) streams for inter-process communication. It supports fast multiplexing primitives on multiple platforms, e.g. epoll (Linux), kqueues (OS X and FreeBSD), and overlapped I/O (Windows 8). (The author seems too modest, because that's well beyond "basic.")

CL-STRIPE-CLIENT is exactly what it sounds like: a CL client for the Stripe online payment system.

Last week I asked for suggestions to rename ASDF 3.1's "package-system" feature. Jean-Philippe Paradis came up with package-inferred-system, and the change was committed in ece9fa3205875fdf88122554abf73e6af6d402b9 on April 19th.

cmacro adds Lisp macros to C source with a preprocessor written in SBCL. It sparked some lively discussion on

neslisp-c64 is a port of neslisp to the Commodore 64. (I can only assume that hosting it on SourceForge is in that same spirit of retro nostalgia.)

The week in CL

Fri, 18 Apr 2014 13:24:06 GMT

Babel2 — "Babel2 connects the implementations of our core technologies such as Fluid Construction Grammar (FCG) and Incremental Recruitment Language (IRL) with mechanisms for multi-agent interactions, robotic embodiment, cognitive processing and learning. An extensive monitoring system gives access to every detail of Babel2’s intermediate representations and dynamics and a high modularity ensures that the system can be used in a very wide variety of scenarios." I haven't tried it, but it sounds interesting.

cl-http2-protocol — "This is HTTP/2.0 draft-06 interopability test code written in Common Lisp. … The code offers a pure Common Lisp transport agnostic implementation of the HTTP 2.0 protocol at draft-06." This is not related to Mallery's CL-HTTP, but is based on a Ruby library, ported and updated by Akamai engineer Martin Flack.

emacs-cl — "Emacs Common Lisp is an implementation of Common Lisp, written in Emacs Lisp." A fun hack by Lars Brinkhoff.

{} descriptions — "… a meta level descriptions library for Common Lisp," inspired by Smalltalk Magritte and Lisp On Lines."

Multi-year SBCL uptime. 1000+ days, pretty cool.

Work-in-progress ASDF 3.1 has a feature that creates objects called package-systems. The name stems from its melding of the CL package system with ASDF system definition objects. As a name "package-system" seems to me to be ripe for confusion, since it's not the package system of CL, or a package system in the fetch-me-useful-software sense. Can you suggest a better name? Chime in. Before release is the proper time for a rename.

150 minutes of ASDF 3.1

Thu, 30 Jan 2014 20:55:14 GMT

The live ASDF walkthrough from Sunday is now viewable on YouTube.

ASDF walkthrough Google hangout this weekend

Sat, 25 Jan 2014 14:14:25 GMT

From Fare:

Reminder for those who knew, late announcement for the others: the ASDF walkthrough will happen on Google Hangouts tomorrow Sunday 2014-01-26 from 1400 to 1600 EST (1900 to 2100 UTC).

If you want to attend and didn't register yet, send me a personal email specifying which hangout address I should invite tomorrow.

Emacs and Slime survey results

Thu, 16 Jan 2014 01:11:13 GMT

If you're curious about the results of the survey I posted over the weekend, you can see a summary and view the raw data on Google Docs.


Unofficial Emacs and Slime survey

Sat, 11 Jan 2014 15:33:59 GMT

There have been a lot of updates to Slime since it moved to github. I'm curious about how some of these changes may affect people, so I created a short Emacs and Slime survey. It's just four questions, and I'd appreciate it if you'd take a minute or so to fill it out.

Take the Emacs and Slime survey here.

SLIME is now officially on github

Sat, 04 Jan 2014 13:23:41 GMT

Helmut Eller explains:

From: Helmut Eller
Subject: Moving to GitHub and cl-lib
Date: 2014-01-04 09:01:12 GMT

As you may have heard, we're moving the SLIME repository to GitHub. The new location is:

The bug tracker will also be moved from Lunchpad to GitHub.

João Távora has already done some work in the new repository. In particular SLIME now requires the cl-lib library. As you probably know, the Emacs maintaners have declared the cl library obsolete, and encourage everybody to use the new names. What used to be "find" from the cl library is now called "cl-find" and in the cl-lib library.

If you're using Emacs 23 then you need to install cl-lib manually, i.e. grab the .el file from and drop it somewhere into Emacs' load-path. Is that too much hassle? Should we include scripts to automate this or perhaps include cl-lib-3.0.el in our repo?

cl-lib may or may not work with XEmacs. This poses the questions: are there many XEmacs users left? Would you be very unhappy if we drop XEmacs support? Or are you a "I'd be happier with XEmacs but GNU Emacs is also OK" kind of person?


I'll be very pleased not to have to use CVS to fetch SLIME any more.

ILC 2014 is scheduled

Tue, 12 Nov 2013 02:32:19 GMT

See you in August in Montreal!

Common Lisp for a bike website

Wed, 06 Nov 2013 18:42:17 GMT

Here's a neat use of CL: a bike configurator expert system. A few details are available. Here's a bit I liked:

Bike Friday builds so many bicycles that to photograph everything would not be possible. Even with the limited component selection displayed in the cartoons there are over 15,000 cartoons generated just for the ~130 starting designs so far in the system.

The cartoon generator works by using CXML to load a master SVG file, remove all but the appropriate layers for a given model, and then colorizing different parts of the bike using a mix of SVG patterns and RGB hex codes depending on the bike and color selection. It then uses ImageMagick to convert the generated SVG file to JPG.

You can read more on reddit.

New Common Lisp projects feed on github is back

Wed, 06 Nov 2013 12:55:23 GMT

A while ago I created an Atom feed for new Common Lisp projects on github. Unfortunately, the github page from which it scraped its data was removed a few months ago. Fortunately, Matt Niemeier just sent me a patch to the github scraper to make it work with the github API. Thanks, Matt!

So if you want to see a daily feed of new Common Lisp stuff on github, point your favorite feed reader here:


Clozure CL and Mavericks/Xcode 5

Thu, 24 Oct 2013 17:50:52 GMT

Here's some helpful info from rme:
From: "R. Matthew Emerson"
Subject: [Openmcl-devel] ccl and recent Apple updates
To: openmcl-devel Development
Date: Thu, 24 Oct 2013 13:49:11 -0400

Some people have reported problems building ccl after updating to Xcode 5, or after updating to OS X Mavericks.

The version of Subversion that is included with Xcode 5 uses a new working copy format. Past versions of Subversion would upgrade working copies automatically and silently, but this time, the Subversion developers decided to require manual intervention.

Go to your ccl directory and run "svn update" by hand, and note that it prints out a message prompting you to run "svn upgrade". Run "svn upgrade" as it prompts.

On OS X Mavericks, it appears that installing Xcode does not install include files in /usr/include. It used to be the case that you could solve this problem by downloading the Command Line Tools from Xcode's preference panel. On Mavericks, this no longer appears to be an option. Instead, you must run "xcode-select --install" from a terminal. This will show a dialog, make you agree to some license or other, and then offer to download the files that ccl needs in order to build. It may even be the case that you don't need to download Xcode just to install the command-line tools, which would save you a 2 GB download if you only want to rebuild ccl.

ECL needs a maintainer

Mon, 07 Oct 2013 23:43:27 GMT

Juanjo sent en email yesterday about about the status of ECL:

* First of all, ECL no longer relates to my own work. On the contrary, other open source projects that I carry on ( are more directly related to my research and are demanded by my group. This is detracting development time from the project, but there is little I can do, as that numerical software is what feeds our bellies right now.

* Not only does my work consume most of my open-software development time, but the job overall does significantly constraint the time I can spare for the project. As group leader in a research environment with scarce resources, I spend more time writing grant applications and bureaucracy than I do in front of Emacs. Quite frustrating as it is, I only see it worsening in the near future.

* The consequence is that the time I can devote to ECL has serious ups and downs. In an environment of rapidly developing tools and libraries, this is quite unfortunate, as the project may lag behind and become obsolete. This is indeed what has happened with several of the ports out there.

* On top of this, there are a lot of frustrating things that I did not want to care about but which are bugging me right now and also stealing time. The first one is the license issue. I put out a suggestion to migrate to MPIR because I knew that MPIR had an effort to stay with LGPL2. Regrettably, I did not know that this effort was abandoned so that if ECL wishes to upgrade to any more recent version of GMP/MPIR it has to migrate to LGPL3.

* Another nagging issue is testing. You have suffered this in the past and it still is a problem: my testing environment is broken and I do not have time to fix it. Despite Anton's wonderful library, the fact is that it is a heck of a problem to maintain several virtual machines and computers in an uncooperative computing environment with frequent blackouts.

* Finally, on the one hand, there are many new upcoming implementations out there, some with promising results and features that I do not have the time to incorporate -- but which would be simple with resources -- and certain forks are consolidating. On the other hand, despite ten years of development, I have failed to aggregate any number of contributing developers around this project. This may be blamed on the community or on myself, and it does not match the supportive and helpful user base that ECL has always had, but the fact is that it is a problem and a time has come to accept it [but please, I do not need your pity on the IRC channels, ok?]

Though I did not have time to develop, I had time to think, even if on the bus trips and planes, and I came to the following conclusions:

* I am resigning and opening the position of ECL maintainer for anyone to take. I will grant him or her with full administrative rights and full responsibility over the project's future. No need to fork the project: if you really feel you can make it better, step ahead and take it. I will remain as a support developer and help you as much as I can.

* If no one takes over maintenance, I will continue working as I can, when I can. This may be unsatisfactory for many of you -- if this is the case, I am sorry, but that's all there is.

Read the whole thing.

A survey of Common Lisp JSON libraries

Sun, 01 Sep 2013 21:27:20 GMT

Sabra Crolleton has put together a thorough, detailed survey of Common Lisp JSON libraries. If you are trying to evaluate which one to use, this survey may help you understand the features, strengths, and weaknesses of cl-json, st-json, yason, jsown, and com.gigamonkeys.json.