Mon 9 Oct 2023

After trying to use Obsidian, a remarkable E-ink tablet, Logseq, emacs org-mode, and plaintext files, I’m using a paper notebook research log for the upcoming academic year and hopefully beyond. I’ve tried this before without much success, but this time I plan to use it more thoughtfully. I’m also trying something new in typing up my weekly notes in a web log. So last week…

Eilean

I’ve had a couple of requests to get Eilean into a useable state, so I’ve tested (and fixed a bunch of bugs in) it’s deployment on a fresh VM from the NixOS template provided, and added a comprehensive getting started document. Work to be done includes using ACME DNS-01 challenges to provision TLS certificates and automatically incrementing the DNS SOA serial number. Having a modular and programmable DNS server like AEON could prove useful for this.

Hyberbib

I deployed Patrick’s dune port of hyberbib at eeg.cl.cam.ac.uk/bib. Naturally, I used NixOS to do so.

Building hyperbib with Nix uncovered a few issues with hyperbib’s opam file that Patrick fixed. I had to pin dependencies to specific hashes but otherwise opam-nix worked as expected.

While deploying hyperbib on a new VM almost everything that could go wrong did:

  • The installer build ran out of memory and hung the installation.
  • I didn’t have DHCP or the IPv4 gateway address.
  • The VM ran out of disk space so I copied the hyperbib Nix closure over to the VM. In future, building locally and installing on the remote might be the way to go.
  • The front end wasn’t build in the same dune target as the executable so I modified it to be, and copied it to a runtime state directory.
  • I had to add curl & sqlite as runtime dependencies
  • Working out the NGINX proxy and hyperbib ‘service path’ behaviour took some trial and error to get right, so we can server static content on the root. As we’re deploying at a subpath I changed the page’s title to append /bib/.

After successfully deploying it:

  • I added environment variables for hyperbib’s configuration variables so the hyperbib command worked as expected.
  • Added raven authentication with an APACHE HTTPD module mod_ucam_webauth. I’m not sure of the status of this project though.
    • Building and navigating the documentation to configure the module proved challenging.
    • I needed to use the tag instead of as we’re proxying to hyperbib instead of serving a static directory.
    • I had to download the Raven RSA public key from archive.org as it’s no longer available at the URL provided.

With this raven authentication it would be really cool if we could automatically provision user accounts (which could also be useful for a certain federated chat protocol). Anil also wants a CLI interface. I’m parking this for now, though.

Unbound Computing

Patrick and I spoke about his Undone Computing paper on how Computer Science has failed Ecology.

This scentence from the CFP is partiularly relevant:

Epistemological questions and challenges arising from the interdisciplinary nature of computer science, or dealing with the articulations between theory and practice;

We whiteboarded a high level plan for the paper starting with the premise that Computer Science has failed Ecologists applying the scientific method; giving some examples of problems ecologists encounter e.g. data versioning; then a more epistemological discussion of how Computer Science aids the scientific method and whether the abstractions provided are the right ones; concluding with how Ecology should lead their own research, not Computer Science (e.g. Google Earth Engine’s limitations).

Speaking about this gave me an idea for an ‘Undone Computing’ paper on digital autonomy with similar ideas to Eilean.

Energy

I spoke to Patrick about the EEG server energy usage and I was interested in looking at how we can (1) reduce the idle energy usage of the machines, and (2) a scheme for reusing opam build artifacts in the OCaml CI that Patrick described. A naive solution for (1) might be to have a low powered machine that can turn the high powered machine on with, e.g., a Wake-on-LAN (WoL) packet. This could be a router sending a WoL packet on recieving a packet to the server’s IP address… or a local authorative DNS sever sending a WoL on a DNS resolution?

HotNets

I’ve converted the HotNets Spatial Name System (SNS) paper to use the final format template.

I need to rework the introduction to talk about a specific query to ground the discussion – basically putting section 4 first. I also need some better pictures. I wonder if I can use AI generated pictures? I’ve been generating some for a poem recently and stable diffusion seems to have improved a lot single I last tried generating images for this.

I need to put a DOI number in the paper, but I’ve no idea how they’re assigned.

Other

  • Organising supervisions.
  • TA’d L50: lot’s of problems with SSH keys, VPNs, & X-servers.
  • Running MCR events.
  • Got a flake-enabled nix-on-droid working.
  • Finally upsteamed dell-command-configure with some neat ELF patching.

Next Week

  • Finish the HotNets camera ready deadline!
  • I’ve had an idea for the undone computing conference related to Eilean on digital autonomy … but the HotNets is first! Read the DIFC paper for the systems EEG reading group [1].
  • Read https://anil.recoil.org/papers/2015-aarhus-databox.pdf related to Eilean [2].
[1]
A. C. Myers and B. Liskov, “A decentralized model for information flow control,” in Proceedings of the sixteenth ACM symposium on Operating systems principles, Oct. 1997, pp. 129–142, doi: 10.1145/268998.266669 [Online]. Available: https://dl.acm.org/doi/10.1145/268998.266669. [Accessed: Jan. 31, 2025]
[2]
A. Chaudhry et al., “Personal Data: Thinking Inside the Box,” Aarhus Series on Human Centered Computing, vol. 1, no. 1, 1, pp. 4–4, Oct. 2015, doi: 10.7146/aahcc.v1i1.21312. [Online]. Available: https://tidsskrift.dk/ashcc/article/view/21312. [Accessed: Jan. 31, 2025]