From ce09af5762a5a1d39a0f7d74d3090eae8bfaed34 Mon Sep 17 00:00:00 2001
From: Tom Smeding
Date: Wed, 2 Sep 2026 21:48:06 +0100
Subject: publications: Add PhD thesis
---
index.html | 4 ----
publications.json | 12 ++++++++++++
webserver.js | 25 +++++++++++++++++++++++++
3 files changed, 37 insertions(+), 4 deletions(-)
diff --git a/index.html b/index.html
index 6408184..f8d0cda 100644
--- a/index.html
+++ b/index.html
@@ -141,10 +141,6 @@ div.main-content {
Academic publications
-
- My PhD thesis is submitted but not yet approved.
- A draft version can be found here.
-
(Info missing, server misconfigured, sorry)
diff --git a/publications.json b/publications.json
index 39de522..230febb 100644
--- a/publications.json
+++ b/publications.json
@@ -8,6 +8,18 @@
"*various": "(various)"
},
"pubs": [
+ {
+ "year": 2026,
+ "month": 10,
+ "authors": ["tom"],
+ "title": "Reverse-mode Automatic Differentiation for Functional Array Languages",
+ "thesis": true,
+ "note": "PhD thesis at Utrecht University. Advisors: Gabriele Keller, Matthijs Vákár.",
+ "links": [
+ {"type": "pdf", "url": "/f/thesis-2026-09-02-digital-cover.pdf"},
+ {"type": "doi", "id": "10.33540/765"}
+ ]
+ },
{
"year": 2025,
"month": 8,
diff --git a/webserver.js b/webserver.js
index b0d5578..d655d8d 100755
--- a/webserver.js
+++ b/webserver.js
@@ -103,6 +103,31 @@ function padLeft(s, len, fill) {
return prefix + s;
}
+/* format:
+ * - authors: {str => str} (mapping from keys to full names)
+ * - pubs:
+ * - year: int
+ * - month: int (optional)
+ * - authors: [str]
+ * - title: str
+ * - one of: (actually accepts zero or more)
+ * * conference: str (type tag is str up to first space, if any)
+ * * journal: str
+ * * preprint: (true/str)
+ * * thesis: (true)
+ * - note: str (optional)
+ * - links: [Link] where Link is:
+ * * one of:
+ * - type: "arxiv" with:
+ * - id: str
+ * - type: "doi" with:
+ * - id: str
+ * - type: "code" with:
+ * - url: str
+ * - type: "pdf" with:
+ * - url: str
+ * * note: str (optional)
+ */
function buildPublicationsHTML(info) {
let res = "";
for (const obj of info.pubs) {
--
cgit v1.3.1