Log in

No account? Create an account

Practical Lisp 2008

A little more than three years ago there was a thread in comp.lang.lisp about what people were working on in Common Lisp. I found the replies, some summarized here, quite inspirational; they were from people doing practical stuff (even Real Work) with Common Lisp, beyond things like going through Project Euler or doing exercises from SICP. (Not that those aren't fine things to do, but.)

Let's update this. What are you using Common Lisp for in 2008? What are you using to do it? I'll start:

I mostly use Common Lisp to make graphics toys at Wigflip.com. To that end I'm always looking for new ways to produce or consume graphics-related things. For example, I'm adding support for processing OpenType fonts to ZPB-TTF and making a hybrid of Skippy and Vecto to produce simple vector-oriented animations. I'd also like to add APNG support to ZPNG.

I primarily use SBCL on Linux, x86 and x86-64, with Emacs and SLIME. For deploying all my website stuff I use Edi-ware extensively: Hunchentoot, HTML-TEMPLATE, and CL-WHO. I use CLSQL for a few things too. For graphics work, I use mostly my own libraries.

How about you? Leave a comment and let me know.



Page 1 of 4
<<[1] [2] [3] [4] >>


I am using Lisp for numerical computations

I am an economist, I am using CL (SBCL, with SLIME and Emacs) for obtaining numerical solutions to economic models. CL is extremely fast, easy to work with, and an ideal language for computational work where each problem is a bit different and you have to experiment until you find the appropriate algorithm. You can utilize existing C code very easily (eg see my package cl-sparsematrix (http://www.cliki.net/cl-sparsematrix) which links to UMFpack). Tamas


I'm jfm3 (http://jfm3-repl.blogspot.com).

I'm using SBCL on Linux x86 to perform automated inventory of the 436 computers in the ORBIT (http://www.orbit-lab.org) grid. CLSQL made it very easy to get the database transactions to open and close in just the right places so that up to 400 of those computers could report their hardware at the same time. It was trivial to write a package that read all the data I needed from Linux sysfs, and parse it using CL-PPCRE.

I plan on using SBCL in at least one of my next projects here.
Some little webapps, hopefully, at some point, a rather large webapp, a thing which bothers people who read a blog by Jabber when it's updated, and some random data processing stuff.

Also finishing up a CL binding for Facebook Thrift (currently sort of stalled due to lack of time.)


I am working for ITA Software as a hacker, mostly programming in Common Lisp. I also maintain two commercial projects using CL: http://quickhoney.com/ is an image database used by two graphics designers to publish their work on the Web, the other is http://createrainforest.org/ which is a web site to gather donations for an Orang Utan preservation project in Indonesia.

Both systems will be majorly updated during this year. RSS feeds are high on the list, Quickhoney wants a shop and createrainforest.org will move into Google Earth. They currently run on cmucl 19c, but they will either be upgraded to cmucl 19e or SBCL for better Unicode support. They are both based on the http://bknr.net/ framework and deployed on FreeBSD. I am pretty much absorbed by ITA work, but I have a hacker working on BKNR and the associated projects full-time.

Libray wise, we are moving away from Portable Aserve to Hunchentoot. We use CXML, CL-GD, CL-PPCRE, CL-INTERPOL, CL-PDF, CL-MIME, CL-SMTP, CL-JSON, DRAKMA and ALEXANDRIA.

We are also working on the Framework to make it officially support CCL, SBCL and cmucl (as soon as 19E is released). One of our goals is fully automated testing of BKNR and its dependencies on all supported platforms. We are currently testing on FreeBSD/amd64, FreeBSD/i386 and Linux/i386.


web things

I'm (we are three involved) doing a web startup called stix.to (http://stix.to), we create a new layer on top of the internet. It means you can put videos, pictures and texts on top of any page you are visiting, and other people will see what you have added when they get to the same page. A plugin for you browser gets you the full feature set, you can also see pages without any plugin, see our ad on superbowl (http://stix.to/keyhole/*/www.azsuperbowl.com/events.aspx).

We use an old branch of parenscript, and an internal lisp/parenscript integration framework for the things that interact with the plugin. The persistence layer is elephant, to which we made a new postgresql storage backend. The web server we use is the ucw_ajax branch of UnCommonWeb. We use cl-json connected to ucw to make a json-rpc interface for communicating between the browser plugin and server. And of course we use all sorts of other open-source lisp libraries for various things.

On my spare time, I'm doing the usual stuff: Trying to design my own perfect persistence solution, and trying to find a way to make the perfect cpan for Lisp.
/Henrik Hjelte


Currently, I'm mainly using CL for a private hobby web-app. When I started some 1,5 years ago, I was wondering at all the marvellous libraries that had popped up for CL (I'd done AI related lisp programming in the 90s), so I wanted to try stuff like CLSQL, CL-PPCRE, CXML and UCW. In addition, my day job had me absorbed in text manipulation and I thought I would need to do a little bit more straight programming in order not to forget that some day or other I had achieved a CS degree. I think the experiences I made will be a benefit for my next job, although it's gonna involve Python, but anyway.

Ah, and recently I had the chance to use CL at work, pulling data from some KR schema.


High Performance Computing

I'm using Common Lisp to make compilers for High Performance Computing systems.
Right now, this makes Lisp the highest performance language for numerical computations as we routinely beat C/C++ programs by 2 orders of magnitude. :)
All the system management/monitoring applications are also written in Lisp with my own webapp framework.



Re: High Performance Computing

Which language do you compile from? Your comment above suggests that it is Lisp, but it would have to be a subset of Common Lisp, right? Beating C/C++ with two orders of magnitude sounds like a tall order, unless the C/C++ applications were written by physicists :-)

It would also be nice to see some detail about the compiler like how its organized, optimizations, design of the intermediate code, its speed.


Just a few years past, I had the chance to use CL for structural revision control of XML in a commercial setting, among other interesting things.

This year, although I'm not getting to use it "directly" so far, I have been using CL as a preprocessor to generate Java source as well as JVM bytecode in a commercial system for certain kinds of optimized database queries (the system also uses a Scheme-ish DSL implemented on Java).

On the hobbyist side, I've been doing some experimentation with little optimizing compilers in CL, one or more of which I hope to release as open source when it gets a little more mature.


I’m a librarian and pretty new to lisp (but loving every second of it!). Right now I’m working on a web application (very, very much in the prototype stage) that would allow people to catalog any type of ‘things’ they wanted by initially describing the properties of the particular thing and then creating records based on those properties. Essentially it’s a very simple interface to allow anyone (even people who can’t program) to play with simple objects, with the practical side that it would enable an individual to literally catalog anything that they can describe: socks, empty beer bottles, coffee beans, whatever. See, mere mortals can use lisp!


Stuff I'm doing with it

A couple things: A small administrative web-app for a volunteer organization (filling out printed reports with cl-pdf, edi-ware mostly for the web-app side). A library for interfacing with computational chemistry programs (mostly weird ppcre stuff). Some numerical chemistry code, with constant battles to do matrix algebra efficiently (I need a good library). Code to manipulate quantum mechanical creation/destruction operators (symbolic stuff).



For 2008 I'm hoping to get further along with my hobby 3D polygon modeler project. I'm using SBCL+cl-opengl so far.


Webapplications. Add the moment I am building an intranet-application for my main-customer: a contentmanagement-system to manage geographical data and various content. I use sbcl, hunchentoot, clsql and postgresql.

It is always a little problematic to argue with the java-people :), but my production-cycle is around 4times faster with common lisp ... :)

okflo (http://diesenbacher.net/)


code generation

I'm using SBCL (with cl-yacc) to parse a text file defining a communication protocol, and generate C# code from it. This is used in a large commercial .NET application. I'm also using Lisp for support tools to keep the DB and code base consistent and up to date.


Knowledge Based Engineering

I am using Lisp (mostly Allegro CL) to develop a KBE system which I sell and support. This is my full-time occupation.

It is called GDL (General-purpose Declarative Language) and the company is Genworks International (www.genworks.com)


I use Lisp to support my Flash work.

I make games in Flash and use Lisp for anything I need that Flash can't handle. I use Lisp to generate levels for some games, to catch debug and profiling data from running swfs, to save data from Flash to the server, and to generate dynamic web pages. It's very convenient to run my site with Hunchentoot so that I can add any kind of server-side support to a swf.

Page 1 of 4
<<[1] [2] [3] [4] >>