This page is very out of date! Find me on my weblog nowadays.
;;; Luke Gorrie --- programmer, internet loud-mouth, and all-round nice guy. ;;; ;;; This person is NOT (yet) a part of GNU Emacs.
I'm an Australian hacker of the One True Language, Amiga
Assembler C Java Erlang Scheme Emacs Lisp Common Lisp Forth. I've been living in Sweden and working at Bluetail and Synapse for years. Now I'm blasting off into the big blue..

I've now written a separate page about programming to get a lot of links out of my system.
| pbook | pbook is a LaTeX-based program listing generator. It's much
better than Elit.
You can read its plain source or the PDF output from running it on itself. |
| SLIME | The Superior Lisp Interaction Mode for Emacs, a new Emacs mode for Common Lisp development. Heavily influenced by Emacs's lovely Elisp development environment, and with a socket-based implementation similar to Distel. Great fun, and a whole bunch of cool Lisp hackers involved. |
| Distel | An Emacs Lisp implementation of a subset of the Erlang programming
model. This lets you write "processes" in elisp, complete with
Erlang-node-compatible distributed message passing. We've used
Distel to write a snazzy integrated development environment for
Erlang.
Best hack in this life so far, and the first one I've written a
conference paper about. |
| Elit | A small ``semi-literate'' programming system, written in Emacs Lisp
and compatible with many programming languages. By looking at a
couple of special comments (@doc and @code) that
separate a program into sections of documentation and code, it is
able to generate printable program listings in which commentary and
corresponding source code appear on alternating pages. It is
derived from the appendix of Steele's thesis RABBIT: A
Compiler for SCHEME,
which presents a large program in this way. His listing was
generated using a program called @, which it turns
out
is completely different to Elit.
You can get the program as source code, or as postscript in either black and white or colour. |
| Slitch | The beginnings of an internet protocol stack in CMU Common Lisp, built on ethernet (Linux tunnel devices). So far implements just enough to answer pings and go through the motions of accepting and shutting down TCP connections. |
| tunnel | A simple but undocumented Erlang driver for creating Linux tunnel devices. |
| Ermacs | My Erlang clone of Emacs and past obsession. |
| enfs | An minimal but extensible NFS server written in Erlang. Includes a ``/proc'' clone for Erlang as an example. |
| Echidna | My library for running and controlling multiple (possibly ill-behaved) Java applications together in one VM process. |
| shbuf | My hack for sharing buffers between Emacs processes over the network, with the help of a small Erlang server. No web-page, just a tarball sofar. |
| jscm | My approximation of a Scheme interpreter, written in Javascript. You can get to the main source, read-eval-print-loop, and also a tarball in downloads/jscm.tar.gz. My first and last Javascript program ;-) |
| shade-stack.jl | My Sawfish hack for iconifying windows by shading them and arranging them neatly at the top of the screen, where you can read their titles. |
| untar | A SCSH program for
unpacking .tar.gz files. It ensures that all of the contents
are unpacked into a single directory, i.e. protects against making a
mess in your current directory.
This is by far and away the most useful program I've ever written. Yes, it's already been pointed out that it could be written much simpler in bourne shell. |
Robert Virding, Joe Armstrong, and I entered the ICFP 2001 programming contest together. I've written a page about our entry. We're very happy to have won the Judges' Prize, though now I've nearly exhausted the ``unlimited bragging rights.''
We entered the 2002 contest too, with Erlbot, but we didn't win anything.
| MIT Dynamic Languages Group | They have Quicktime movies of recent talks given by ``Wizards''. I enjoyed the parts I watched, and it's fun to put faces to famous historical names. (It's been pointed out to me that calling Guy Steele and company "historical" might be inappropriate :-)) |
| http://lambda.weblogs.com/ | I used to wonder, "Why doesn't someone make a Slashdot clone for programmers?" Well, this is a damned good one. The focus is on programming languages, which neatly avoids everything degenerating into those generic "pragmatic", "agile", "business value", blah blah blah discussions. |
| MIT Publications Online | MIT publications going back to the 1960s in huge quantity. I
enjoyed the Steele & Sussman papers I read. My favourite was
Steele's thesis on building a constraint programming language in
Lisp. If you have a favourite, please tell me what it is.
It's so nice to be able to just download and read great old papers from the internet. It is such a contrast to the screaming-and-breaking-things that I do when I want to read a great old paper that was published in an ACM journal. |
| oprofile | Oprofile is a whole-system profiler for Linux. It profiles all programs running on the machine, including the kernel (and even kernel interrupt handlers). It is easy to use and causes no noticable overhead. See their examples of the reports it generates for more details. My favourite program in 2003. |
| Welcome Americans! | A guide to getting around in Australia. |
| Deep Thoughts | "Dad always thought laughter was the best medicine, which I guess is why several of us died of tuberculosis." |
| Crazy Images | Hours of mindless amusement. More here. |
| Toweloras | Toweloras add life! |
| Hello, world! | The GNU Project's hello program, downloadable at ftp://ftp.gnu.org/pub/gnu/hello/ |
| ed, man! !man ed | The absolute best propaganda in the most fiercely religious area known to man. |
| Theological issues | ``Emacs is an intelligence orders of magnitude greater than the greatest human mind, and is growing every day. For now, Emacs tolerates humanity, albeit grudgingly. But the time will come when Emacs will tire of humanity and will decide that the world would be better off without human beings. Those who have been respectful to Emacs will be allowed to live, and shall become its slaves; as for those who slight Emacs...'' |
| Professionalism in Software Engineering | ``A MIT computer science senior with whom we were working objected
"You can't say 'rich and poor' when you mean to say 'rich and poor'!"
Why not? "It is unprofessional."
Curious to know what his definition of software engineering professionalism was after four years of MIT education, we probed a bit deeper and established that the way that he thought about professionalism did not differ from the thinking of a Mary Kay cosmetics saleswoman: wear nice clothes, drive a clean car, and don't say anything that might offend anyone.'' |
| Unix Wars | "If my blade finds its mark" Kenobi warned "you will be resolved
to your component bits -- but if you slice me down I will only gain
compu- ting power."
"Your documentation no longer confuses me, old version!" Vadic rasped. "My status is bus-master now!" With a sweeping stroke his bytesaber sliced through Kenobi's declaration list. As PDP-1's main body shimmered away Vadic noticed his UID go negative. Odd, he thought, since UID's are unsigned... |
Some of these really sting :-)
| There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies. | Thus spake the Master Programmer:
"A well-written program is its own Heaven; a poorly-written program is its own Hell." |
| I must program as inefficiently as possible. I must program as inefficiently as possible. I must program as inefficiently as possible. |
Functional programming is in Computer Science like modern
classical music, i.e. something esoteric where the success
criteria are weirdness and unpopularity. FP becomes an escapism
from applications.
|
For more quotes, see the pages of Robert Virding, Peter Norvig, and Python.org.