Franz' "Dynamic Learning Center" is online: "Designed for both teachers and students, this website features examples designed to introduce future developers to the power of Common Lisp."
Wow, thoughtful lisp exercises for students. Teaching tools written in lisp. On a site running on Lisp, and sponsored by Franz but remaining implementation neutral. This could be the start of a great resource.
They need submissions (I guess they better let people know what the copyright/licensing policies are).
New combat vehicles such as Stryker are part of the U.S. military's bid to transform itself into a faster, more mobile fighting force to deal with new threats around the world.
At the same time, the U.S. military is increasing funding for advanced unmanned systems to use on the ground, in the water and in the air, spurred on by an American public that is less willing to accept the death of U.S. troops in battle.
The U.S. Army plans extensive tests at its Fort Bliss, Texas, facility next month of the robotic Strykers, which can each carry two soldiers who can control up to 10 additional unmanned air and land vehicles from their three-screen command centers at the back of each vehicle.
Over the years Python's data types have collected a lot of useful functionality. The data types are powerful. That makes Python very powerful. And yet because Python has a very small set of data types, it doesn't feel like you have to spend a year learning the language before you know everything that's there. The minimal finger typing and powerful data types work together to make your program small, and make you feel more productive.
Yeah. I always feel that the interesting programming jobs are the ones in which you don't know exactly where you'll end up. Implementing another spreadsheet is boring.
Early on, when the Web was just becoming interesting for things like shopping online, a small company called eShop was developing various commerce servers. eShop had proprietary protocols and proprietary applications, and it realized that it should just be able to use a Web server and Web browser. The developers decided to do a prototype in Python. Because they used Python, the eShop developers were the first to release a beta version compared to many other startups doing exactly the same thing. They never actually released working code after their beta release, because the company was acquired by Microsoft. Microsoft spent two or three product revisions to eventually replace all the Python code with C++. But if eShop hadn't started in Python, it would never have released something interesting enough for Microsoft to acquire in the first place.
If this were a Philip K. Dick novel, one day Guido would wake up and comp.lang.python would contain a vituperative northern European, graybeards recalling details of ANSI meetings of 10 years ago, and people looking for advice on convincing their bosses to let them use Python. And the Python syntax, of course, would be slightly different.
danb is making real progress on adding native threading to SBCL, and Pierre Mai's busy porting it to OS X. Nice.
Franz' NFS server in lisp is at version 1.1.1: "version 1.1.1 - access control and command line switches for adding and removing the NFS service (see ChangeLog) and include binary distribution".
(Their code for writing NT services in lisp has been updated a bit, too.)
Sudden layoffs are never fun, but often thrilling.
In my somewhat sheltered career, I don't think I've heard anyone suggest that we "do it in lisp" except where it was a very real possibility that made some sense, and that's even in teams where everyone's favorite language was lisp. (After searching my memory and reaching that conclusion, of course I had to consider whether I might have been the one screeching for lisp. I think I kept that to a minimum, though.) I do, however, hear lots of good natured pining for lisp, along the lines of "C++ sucks, man, I wish we were doing this in lisp". Though instead of lisp, maybe they'll mention OCaml. Or T. Or Eiffel. All languages which could be filling a class marker role, and maybe they are, but I think the usual motivation for saying that is someone thinking "Anything but C++, if God is merciful."
I know that the following admission will tarnish my reputation in the eyes of some, but... more than once I have thought "Man, I wish I was doing this in Visual Basic, it would be so much easier." OK, maybe just once.
OpenMCL 0.13.3, with one zillion bug fixes, is out.
Yesterday was so beautiful and warm, I had to get out of my apartment and do something. So I went and did a little hiking around in Griffith Park, which is about a 5 minute drive from my place.
With 53 miles of trails, mountains, rattlesnakes, punks, graffiti, deer, and latino families picnicking, it seems both impossible and neccessary that Griffith Park is in the middle of the LA urban area.
It was pretty hazy (cue the words of every LA air quality apologist, "That's not smog, that's the marine layer."), but beautiful.
It must have been pretty fun to be in that band & choir that year.
Then there's Ween's unaired Pizza Hut jingles. Where'd the cheese go? I don't know.
LA Shakedown: "2 nights of Punk, Broken Blues, and Primitive Rawk!"
Over 50 bands for $35-60 (the online tickets sales deadline is Jan. 31).
Here are a few photos from CES.
Brendan Burns has some code to interface with the BSD subsystem of OS X from MCL.
hilights include: support for fopen, fclose, fwrite and chdir (see the man pages) and I've added "cd" and "ls". cd calls (set-mac-default-directory) so you can: ? (cd "/Volumes/Vogon/src/utils/dev") "/Volumes/Vogon/src/utils/dev/" ? (ls) anaphoric.lisp containers.lisp ...
jwz: "Please keep in mind that the primary function of stories like this is to distract us from the fact that a whole fucking lot of people are going to die."
Jeff Caldwell describes the excitement of first learning lisp.
Dan Barlow has new versions of CLiki, his Araneida web server, and db-sockets socket library.
I am exhausted from CES. I'm looking forward to sleeping in my own bed tomorrow night.
I am now in Las Vegas, helping set up the Evolution CES booth.
Digitool is trying something new and interesting. From announce-mcl:
Digitool is setting up a community-maintained directory of all MCL based tools, demos, freeware, shareware, and commercial applications (the MCL Software Directory). The directory is hosted on HotDisaptch and the actual contributions can continue to sit on Digitool's FTP server. The three main benefits of the directory are:
- it allows MCL users to easily locate and learn about MCL tools and applications.
- it allows developers of MCL based commercial or shareware applications to promote and sell them.
- it will give MCL considerable exposure within the community of 60,000+ developers on HotDispatch.
We would like to invite and encourage everyone who has either previously contributed to the MCL "contribs" area or now has a contribution to list it on the MCL Software Directory.
CMUCL has a great compiler. But it sometimes when actually developing with it I felt that it was missing a few features or was a little rough around the edges when it came to being part of a nice development environment. So I'm very interested in Eric Marsden's work in friendlier error reporting via emacs integration.
How serious is Ufasoft? "As target we are developing strong implementation of Common Lisp for Win32 and .NET environment."
Success! Well, to some extent. I snapped off a screenshot just before MCL crashed when trying to display a 3D model, and was able to at least patch things so I wasn't getting the error anymore (I don't know why MCL was crashing when it got an error in an event handler--I can't reproduce it with other errors).
That got me as far as looking at a featureless white window. Almost featureless, anyway; two lines of subtly shaded pixels told me I was looking at a 3D box straight on.
So then I tried to view the box using the QD3D interactive viewer, which has zoom and rotation controls and things, but that caused a crash. And this time there was no error to help guide me in my debugging. It may just be that Quesa hasn't implemented a viewer. Oh well, at least there was some progress.
Tomorrow night I leave for a week in Las Vegas, where I'll be making sure that the Evolution robots make a splash at CES by knowing how to draw a good lissajous.
The LLGPL is a preamble to the GNU Lesser General Public License (LGPL), which was developed by Franz Inc to clarify how the LGPL applies to Lisp programs and to amend certain LGPL requirements. Notably, the LLGPL waives the LGPL requirement that applications be distributed in a form that would allow the end user to "link to" newer interface-compatible versions of the "library"; this requirement would seemingly force developers to distribute their applications in some sub-optimal format (e.g., as a set of FASL files or something ...)
On a whim, I decided to try to port my QuickDraw 3D lisp interface code to MCL 5.0 Beta, under OS X.
QuickDraw 3D doesn't actually exist anymore, at least not as a public API provided as part of OS X. But years ago, when Apple announced that it was ceasing development on QD3D and focusing on OpenGL, several people began working on an open source implementation of the QD3D API, called Quesa. A few weeks ago I saw an announcement in Apple's Developer Connection News about a new version of Quesa. Despite a confusing, and at times broken, website, the project seems to be making progress. In particular, I noticed that there was at least some support for mesh geometries, which I used to use heavily.
After installing Quesa, changing a few library names in my code and performing some trivial Carbonization (DisposPtr is now DisposePtr), I was able to load a 3DMF (the QuickDraw 3D file format) model.
As soon as I try to display the model, however, an error message is printed to the listener and then, before I can read it, MCL crashes. Unfortunately, dribble seems to be useless in catching output from MCL's event handling process, so I'm a little stuck. Causing an abort in error doesn't prevent the crash, so I guess I'm going to have to advise error to write messages to a file.
Coincidentally, two days after I started working on this someone asked about the status of the code on info-mcl.
My daydream: To generalize the interface to run on a bunch of implementations, supporting the platforms that Quesa supports (Windows, Mac, Unix). UFFI is an obvious possibility, though I'll still need per-implementation code to create windows and things.
Paul Graham says: "Now, when someone asks me what I do, I look them straight in the eye and say `I'm designing a new dialect of Lisp.' I recommend this answer to anyone who doesn't like being asked what they do. The conversation will turn immediately to other topics."