Mon 16 Oct 2023

HotNets

  • Converted the SNS paper to the ACM final format. Spent way to long figuring out how to make the paper open access. While trying to figure this out I spoke to Jon, Chris, Ardwin, Justas, Sadiq, Helen, and Mort. Mort explained the difference between the copyright, licensing publishing rights, and open access. In the end, we had to use our institutional email addresses to have the ACM’s open access policy kick in.
  • Addressed Magnus’ comments on the paper, and fixed some citations.
  • Pulled the discussion into the introduction.

Hibernia

Had an idea regarding the energy saving ‘wake-up’ device: the network infrastructure has to be running anyway, so why not push this functionality into the router, which are mostly running Linux now anyway. We could implement this as a OCaml AEON amalgamation on top of OpenWRT (or NixOS)… but could we go all the way and implement this as a MirageOS unikernel (for maximum power savings). Could the MirageOS TCP/IP stack be used as a router for this unikernel? The unikernel router from Magnus would seem to suggest so!

shark Reading Group

On DIFC and HiStar.

Teaching

  • TA’d L50. One of my students was telling me about Fedora’s new immutable operating systems that uses OSTree (like git for binaries).
  • Marked and supervised all day for Distributed & Current Systems for Pembroke. I learnt how async/sync FSM semi-coupled/de-coupled products worked in the first supervision, and in the second I did more teaching than learning.

Self-hosting

I mentioned that I didn’t set up a PeerTube instance as my server doesn’t have enough storage, and Anil mentioned that he as some SSD’s lying around that we could repurpose with a USB/SATA interface host hosting on the Pi in my office.

Opam & Nix

I’ve implemented Spencer’s suggestion of solving for a single instance of Nixpkgs for the Opam Nix backend for use in the OCaml CI in a prototype.

I do so by creating a nixpkgs package version for each Nixpkgs revision, that conflicts with other versions of itself. When we don’t care about this (when we’re not linking the provided libraries together), such as providing a rust compiler and python interpreter with versions from different instance of Nixpkgs, I think this could be made optional with a custom variable & filter.

The next step would be to generate this from the Nixpkgs repository itself. Currently I’m just using a few manually cherry picked examples in a prototype: opam-lang-repo-nix.