John Murphy :: RSS :: Home » Topics » Quine

Quine

What is a quine ?

A quine is a computer program that which takes no input and produces a copy of its own source code as its only output. This page is a description of how the webpage was built and is used as a proof-of-concept to demonstrate how the different parts are connected. This allows me to upload and publish while continuing to piece together the infrastructure.

What is this webpage ?

The purpose of this webpage is to have a repository for all of the important data in my life, with the expectation that it's going to be extensible and easily updatable as new information comes up and as I am comfortable with it.

What scripts are used on the backend ?

This website is driven off of custom code that I wrote after being inspired by Jeff Kaufman. I read his scripts and then wrote my own to achieve a similar, but slightly different, goal. The web design, at least at the beginning, is almost a direct copy of his.

What database is used on the backend ?

Originally I had planned to use GNU Recutils for the database backend, but it turned out that while the idea of Recutils is excellent, some of the functionality is under-baked and there is a lot of tooling required for using it in Python.

I actually spent significant time writing a Python backend, along with some hacks on the main Recutils code base. This was the absolute definition of yak shaving, however, an kept me from actually getting the website done. Since I do not have unlimited time, I decided to use SQLite for database storage and state management.

How do you keep track of the webpage's history ?

Originally I was going to do this strictly off of the Git history, but that also led to significant yak shaving. Managing state and state transitions is now done completely through the database.

How do I write this page ?

Any human generated text on this website is generated in Emacs, in Olivetti mode. I will write a post on how this is set up at a later time.

Why Emacs and not Vim ?

Vim and Emacs are both text editors, with the main distinction between the two being that Vim is a specialized text editor focused on code editing, while Emacs is a general-purpose text editor that's essentially its own programmable LISP machine.

Things like focused mode, inserting graphics and formulas, etc. are first-class citizens in Emacs while they are very difficult, if not impossible, to use in a terminal-based Vim installation.

As this blog is mainly written text, I've found it much easier to separate concerns and use Emacs for writing while keeping Vim for programming.

Homepage

What is on the homepage ?

A summary of recent updates to non-homepage documents.

A summary of additions to public social media accounts.

New Posts / Finished Posts

Building

How often is the build triggered ?

What are the steps of the build ?

What data is pulled in during the build ?

What are the different sections of the website that are built ?

How is the homepage created ?

Deploying

sshfs