Jun. 6th, 2013 | 03:43 pm
Here are the details from Alex Plotnick:
From: Alex Plotnick
Subject: Boston Lisp Meeting 2013-06-12T18:00
I'm pleased to announce that Jonathan Smith will present his work on '$-Calculisp' at the next Boston Lisp meeting. The meeting will take place on Wednesday, 12 June at 6:00 PM, in the Star Conference room at MIT's Stata Center (MIT 32-D463; <http://whereis.mit.edu/?go=32>).
$-Calculus (pronounced cost calculus), is a descriptive fourth generation language designed for modeling parallel algorithms, artificial intelligence applications, and bounded super-Turing computation. $-Calculisp is a domain specific language modeled on $-Calculus and implemented in Common Lisp. $-Calculisp is implemented using a variety of techniques based on Common Lisp's unique macro and object system facilities. Rather than being an interpreter, it is a macro compiler, expanding $-Calculisp code into efficiently compiled Common Lisp code. It is intended to be a robust extension to the Common Lisp language, as such, it allows for integration of regular common lisp functions alongside $-Calculisp code.
Jonathan Smith is a software engineer at NovaSparks, where he currently works on their HPCC lisp to VHDL compiler infrastructure. Previously, he worked at Westinghouse Electric Company, where he supported their ShuffleWorks product line. Shuffleworks is an expert system, (written in Lisp) for coordinating nuclear fuel movement within power plants.
Jun. 2nd, 2013 | 09:22 am
From today's perusal of comp.lang.lisp, Madhu blows the lid off the Quicklisp conspiracy:
Subject: Re: proper use of require
Date: Sun, 02 Jun 2013 14:10:21 +0530
* Tamas K Papp :
Wrote on Sun, 02 Jun 2013 07:41:59 +0200:
| REQUIRE & related functionality is deprecated, so I don't understand
| why you prefer it. On many CL implementations (SBCL included) it just
| hooks into ASDF anyway, so you might as well use ASDF:LOAD-SYSTEM, but
| using Quicklisp should be fine too.
A lot of functions are "Deprecated", in the spec, but in retrospect it is the "deprecation" that is shortsighted. REQUIRE is in the CommonLisp spec, but ASDF and QUICKLISP instruments are from Satan to take control of your code through the middleware layers. The dependency conspiracy is carefully thought out, but by the time you figure it out, you will be buried and forgotten; while Papp & Co. will be around using advertising and marketing machinery, [mis]leading a new generation of users that are ready and willing to suffer for the first time. ---Madhu
Now you know.
May. 22nd, 2013 | 08:26 am
Boston Lisp meetings are a lot of fun. Here's Alex Plotnick's announcement for the next meeting:
I'm pleased to announce that François-René Rideau will speak at the next Boston Lisp meeting on his recent work on ASDF 3. The meeting will take place on Thursday, 23 May at 6:30 PM, in the Star Conference room at MIT's Stata Center (MIT 32-D463; <http://whereis.mit.edu/?go=32>).
I'm sorry about the short notice on this one; communications problems of all kinds have been gumming up the works. Please feel free to spread the word about the meeting via whatever mechanisms are available to you.
Talk details (courtesy of Faré) follow. I hope to see you all there!
Title: "ASDF 3, or lessons in building portable Common Lisp programs"
"ASDF (Another System Definition Facility) has been the de facto standard Common Lisp build system for over ten years. I recently rewrote it completely, several times, all the time (mostly) preserving backwards compatibility. The latest incarnation, ASDF 3, in addition to fixing deep design bugs older than ASDF itself, also includes extensive portability library, UIOP, not to be confused with an existing parallelizing extension, POIU. I will show how to use ASDF, explain the recent improvements, and discuss the challenges of writing portable Common Lisp programs and what that means for the past and future of Lisp."
About the speaker:
"François-René Rideau is a Lisp plumber. On good days, he designs great piping for persistent data, to be used in airline reservation system of ITA (now part of Google). On bad days, he dons his rubber gloves and scrubs the pipes. He also has a blog, Cybernethics, where he writes on liberty, music, programming, and dynamic systems in general."
I can't make it, but if you're in the Boston area, you should go!
May. 14th, 2013 | 08:57 am
Hello? "Hello, this is Jack," said a heavily accented voice, "This is the second call about the slow performance and possible virus problems of your Windows PC."
I don't have one of those, is what I thought, but what I said was, Ok, yeah, I have had a lot of problems lately. "Well sir I am calling to assist you with those problems, is the PC on right now?" Yeah, sure. "Ok, sir, can you please go to your PC."
Ok, I'm at my PC. "Now in the LOWER, LEFT corner of the screen, do you see a Windows button?" Windows button? What's that? "It looks like a flag." What color flag? "It is a flag in the corner." Which corner? What color is it?
Jack is starting to sigh. "In the LOWER, LEFT corner." I don't see a button anywhere. "It is in the corner sir." OH! I see the button!
Jack gets happier. "Now do you see Computer or My Computer in the menu that pops up?" I don't see any menu. "You have to click the Windows button." Where is that? More sighs. "In the lower left corner." OH! Ok, I clicked it! "Do you see Computer or My Computer in the menu?" I can't see YOUR computer! I'm at my house! "No, do you see COMPUTER, or do you see MY COMPUTER?" I can't see your computer, that doesn't make any sense!
Jack sighs some more. "What do you see for menus?" OH! I see Computer there! "Ok, can you right-click on Computer, and..." I closed the menu. Sigh, sigh. "Can you open the menu again and right-click on..." Where am I supposed to write it?
I can't stop laughing any more, so I interrupt Jack and ask him how dumb he thinks I am. "VERY DUMB!" He is pretty mad. Jack, who are you calling from, who do you represent? "I am calling from Afghanistan!" And what company are you calling from? "I am Mozilla Firefox!" And what are you trying to do? "I am trying to HACK YOUR COMPUTER!" I just laugh and wish him good luck, and he says "Go to hell, you bastard!" and hangs up.
May. 13th, 2013 | 01:33 pm
Subject: ECLM 2013 - two days left to register
Date: Mon, 13 May 2013 19:17:26 +0200
From: Edi Weitz
Ladies and Gentlemen,
This is our last call - there are two days left to register for this year's ECLM in case you haven't done so already:
We have more than 50 registrations so far, but we wouldn't mind seeing another dozen or two...
Arthur & Edi.
I greatly enjoyed my last visit to ECLM and I can't recommend it highly enough if you want to meet people with interesting Common Lisp projects and ideas.
May. 8th, 2013 | 03:13 pm
Apr. 28th, 2013 | 12:17 pm
A bunch of people have forked it on github to add more and more functionality, and I think jscl will just keep getting cooler. Good job, David Vázquez and contributors!
Apr. 24th, 2013 | 10:39 pm
Today I was running some analysis on about 9,000 files, basically mapping a function over each to warm up a cache. Something like this:
* (map nil 'analyze-file *9000-files*) time passes
I had no idea how well it was progressing, and whether I'd need to take a snack break or let it run overnight. So I interrupted it and wrote a quick and dirty REPL utility function:
(defun :dot-every (count fun) (let ((i 0)) (lambda (&rest args) (when (< count (incf i)) (setf i 0) (write-char #\. *trace-output*) (force-output *trace-output*)) (apply fun args))))
It prints out one dot per COUNT invocations of the function it returns, giving some indication of progress. Sensible values for COUNT depend on the volume of function calls.
For this problem, I called it with a COUNT of 100:
* (map nil (:dot-every 100 'analyze-file) *9000-files*) ............etc
The cached analyses printed out a ton of dots quickly, and the uncached analyses started printing dots at a slow but steady pace, and I could tell that it would be done in a few minutes instead of a few hours.
So now I'm going to use this to wrap up any function I have to call a ton of times and I want to get a sense of how it's progressing.
Feb. 16th, 2013 | 11:41 am
Feb. 2nd, 2013 | 09:38 pm
Rob Warnock has posted neat stuff for many years, both in comp.lang.lisp and comp.lang.scheme. After creating the Erik Naggum archive, Rob was next on my list of authors to archive. It took me a few years, but here it is: the Rob Warnock Lisp Usenet archive. It has 3,265 articles from comp.lang.lisp and comp.lang.scheme from 1995 to 2009, indexed and searchable. I hope it helps you find as many useful articles as I have over the years.
Here are a few articles I've saved and shared over the years:
- The crucial role of the readtable
- Emacs is NOT required to hack Lisp
- The historical context of Baker's META
- Designing an OS for the PDP-8 (and part 2)
(In case you're curious, I used a library called usenet-legend to create the archive and make it searchable. I also have some unreleased code that provides a thin layer of web interface on top of usenet-legend.)