Muli Ben-Yehuda's journal

September 9, 2004

lisp, how I love thee

Filed under: Uncategorized — Muli Ben-Yehuda @ 1:22 PM

It all started a couple of days ago. It was afternoon, I was working at the office and planning on a quick dinner somewhere before heading back to the office (don’t ask). One of my pleasures when eating alone is reading a good paper or book. I searched the web for interesting papers and happened upon this wiki, with its excellent Operating Systems and Lisp sections. Browsing the Lisp section, I came upon a link to Richard P. Gabriel‘s momentous essay on the Evolution of Lisp. I printed it out and started reading. I read it during dinner. I came back to the office and read it. I went home and continued reading it. While reading, I chased people and places and projects it mentioned on the web. I stayed at home yesterday, and alternately worked and kept reading it. It opened up many trails, and I wandered down them. A whole world I only had a dim inkling of before, the world of lisp, opened before my eyes.

Sometime around noon, I was filled with a strong urge to write some lisp of my own. I started with a small interpreter, but then decided to write something useful instead. As it happens, I’ve been using a hacked up Emacs TODO mode for a few months as a short-term memory replacement. It works very well, but has a few annoying shortcoming: it didn’t keep the “folding” state when exiting and reentering the buffer (the folding state is which items are hidden and which are shown, a-la outline mode), and it didn’t keep my position in the buffer when closing and reopening it. I set out to write some lisp to fix them, and within a few hours, did. It was a pleasure, and now I want more!

You can find the hacked todoo.el on my code page.


  1. That is weird because I’ve been working on a TODO list mode for Emacs for the last couple of months as well which I name ‘doit-mode’. Syncronicity.

    Comment by yrk — September 9, 2004 @ 7:32 PM | Reply

    • what does it do? is it online? does it support persistent folding state *grin*?

      Comment by mulix — September 9, 2004 @ 7:52 PM | Reply

      • In order to remember to do stuff I usually write a title like

        ";;; Deadlines:"

        followed by a list of action items like

        "*) Down payment on H-bomb."

        Once I drag my ass around to the task I the change the

        "*) Down..."


        "-) Down..."

        After doing this for a while I decided to write a major mode to automate what I do manually and a minor mode to highlight significant dates.


        is the major mode. It font-lock highlights uncompleted tasks and similarly “dims” completed tasks by graying them out. It gives me bindings to mark a task as completed or uncompleted and sorts the tasks to groups of completed vs. uncompleted.


        is another hack that highlights any date in my tasks buffer that is say, a week away so my attention gets drawn to it.
        I don’t post the code because it is supremely uninteresting. It is just another one of those small hacks that grow out of actually using Emacs to make a living/remembering to buy a new toaster. My home and work machines are littered with such hacks.
        Instead of folding I have a binding that takes all the completed tasks and yanks them to the bottom of the buffer under the “;;; Completed:” heading.

        Comment by yrk — September 10, 2004 @ 5:56 AM

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at

%d bloggers like this: