The Lambda Lab Garden

---------------------

This server started as an experiment back in April 2019. While I've

written previously about the madness [1] which led me to put it

online, I've said almost nothing about the overarching goals I had in

mind.

Essentially the goal was this: to have my own publicly-accessible spot

of internet turf where I could experiment with self-hosting and

Scheme. To be clear, the personal experimentation rather than the

self-hosting was and continues to be the priority. Exactly zero of

the server-side programming I engage in here is necessary to achieve

the aims of self-hosting. It adds nothing new for site visitors.

But, while I certainly appreciate my 5 or so visitors, this site

is really just a Zen garden for me. I tend to it because I enjoy

the process in its own right.

This means that stability, uptime etc are very low priorities.

If there is a sensible established way to implement some service

and a silly-but-fun way, the fun way wins every time!

For this reason, most of the network services on the Lambda Lab I

wrote myself, for better or worse, as very ugly Scheme implementations

based off available specs. These include:

1. the Gopher server,

2. the Gemini server, and

3. the SMTP MTA.

These have all worked reasonably well over the years; unsurprisingly,

I suppose, given that these are all very basic protocols that are

difficult even for me to mess up. You might be wondering about the

SMTP server there: it's a bit bare-bones, and still doesn't support

DKIM or even TLS. That said, it doesn't produce spam, and is the only

way (besides IRC and comments on my gopher/gemini pages) that I

communicate with people about Lambda Lab matters.

A tentative addition to the above list would be:

4. the Core War King of the Hill server.

I had big plans for this, but sadly nobody's yet successfully

submitted a contender to this hill. Maybe because my MARS

implementation only supports the "load file" subset of redcode?

Yes, that must be it. (Plans to support full redcode assembly are

underway, after which I'm sure there'll be _dozens_ of submissions!)

- Concessions -

Of course not everything here is written by me; the above is only a

negligible fraction of the software running on this VPS, which is

currently a full Debian GNU/Linux systemd monstrosity (although with

128Mb of RAM, it's fairly lean). But even in terms of just server

software I've made several concessions:

1. HTTP (nginx):

I'm not really interested in publishing web content here;

I just needed a landing page because MELPA requires this for emacs

packages there.

2. Git (git/gitweb)

I'm happy with Git, the idea of replacing it doesn't spark joy.

3. SSH (OpenSSH)

Ditto.

- Local software -

Also part of the same project are several key pieces of client

software that I use to interact with the server. Emacs is my OS,

so these are all written in elisp:

Client software:

1. Gopher+Gemini client (elpher)

2. IRC client (lurk)

3. Music player (emus)

I like these, they work well. I'm constantly tweaking them,

particularly the IRC client and music player, but they mostly

work as intended.

Anyway, that's my garden. It's not the most beautiful thing to look

at, but it's fun to play in and the veggies taste good.

---

[1]: gopher://thelambdalab.xyz/0phlog/2019-05-31-Gopher-Madness.txt


Source