First Common Lisp work
======================
First Elisp
-----------
I have started to explore coding in Lisp.
The first step was writing some Elisp code. I build some stuff, and
used those to do some actual stuff, take those "in production", so
to say.
Those working things are in all about 1,000 lines of Elisp code.
So, that is only just a small start. I have been enjoying this.
Next step: Common Lisp
----------------------
I started reading books on Common Lisp, and explore Common Lisp
related websites.
I installed SBCL with quicklisp and started to build some stuff.
I started with the same projects as my first Elisp projects.
* Wiki to texinfo converter
* Static site generator
These are now two compiled programs, that I run from the command
line.
Wiki to texinfo converter
-------------------------
I use awkiawki as a personal wiki. This is a wiki written in Awk
that sits on a pool of Markdown files. When a page is requested,
awkiakwi converts the Markdown on the fly to HTML. The wiki to
texinfo converter converts a number of these wiki-pages into some
texinfo files, and installs the result in a personal info-directory.
This is not rocket science of course, but it was a great way to
learn a lot :)
Static site generator
---------------------
The source of my website is a directory with Markdown files. This
started as a Vimwiki diary, so the files are named after the date,
in the format "YYYY-MM-DD.md". It uses Vimwiki-tags, every file has
a line with tags, surrounded and delimited with a colon. So the
format is ":tag1:tag2:tag3:".
The static site generator uses the 3bmd package to convert the
Markdown to HTML, creates a list of all used tags and a page a per
tag with the related HTML-files.
I have a Links-page on my website. In my home network I have an
instance of Linkding running, that I use for my bookmarks. The
static site generator talks with the REST API of Linkding, collects
the bookmarks with a certain tag and compiles a list for the
Links-webpage.
I am not completely happy with the Links page, because it simply
dumps the list, without any organization or categorization. So,
there is room for improvement.
Large executables
-----------------
The compiled version of these two scripts are rather large.
This is in general the case with SBCL. With the FreeBSD SBCL
package, the option "compression" does not work. My guess is has to
do with the compile time configuration. My plan is to set up a jail
and compile SBCL in there, to see if this can be resolved.
Just starting
-------------
These are just my first Common Lisp projects. Any experienced Lisper
would probably laugh about the code. But the programs work. The next
step is to tidy the code, look for possibilities to refactor, and so
on.
So I started, and enjoyed, writing code in Common Lisp. The quest
will continue !
Last edited: $Date: 2022/10/09 11:21:48 $
* EOF *