(ns pages (:require [borkdude.html :refer [html]] #_ [pages.missionary :refer [missionary]] [pages.second-sex :refer [second-sex]] [components :refer [template page]])) (def home-uri "/") (def media-queue-uri "/media-queue") (def media-log-uri "/media-log") (def books-2026-uri "/books-2026") (def books-2025-uri "/books-2025") (def films-2025-uri "/films-2025") (def second-sex-uri "/second-sex-quotes") (def past-work-uri "/past-work") #_ (def missionary-uri "/code/missionary") (defn home [] (template (html [:<> [:p "Hello."] [:p "My name is Jake Zerrer. This is where I keep things online. Look around."] [:ul (map (fn [[uri name]] (html [:li [:a {:href (str uri)} name]])) [[media-log-uri "My media log"] [media-queue-uri "My media queue"] [books-2026-uri "Favorite reads of 2026"] [books-2025-uri "Favorite reads of 2025"] [films-2025-uri "Films I enjoyed in 2025"] [second-sex-uri "The Second Sex: Selected Excerpts"] [past-work-uri "Past work"]])]]))) (defn films-2025 [] (page (html [:<> [:h1 "Films I enjoyed in 2025"] [:ul [:li "Train Dreams (2025)"] [:li "The Secret Agent (2025)"] [:li "Fitzcarraldo (1982)"] [:li "Koyaanisqatsi (1982)"] [:li "Black Narcissus (1947)"] [:li "Anora (2024)"] [:li "Sentimental Value (2025)"]]]))) (defn books-2025 [] (page (html [:<> [:h1 "Favorite reads of 2025"] [:ul [:li "A Tale for the Time Being (Ruth Ozeki)"] [:li "The Second Sex (Simone de Beauvior)"] [:li "The Places in Between (Rory Stewart)"] [:li "Either/Or: A Fragment of Life (Søren Kierkegaard)"] [:li "The Philosophy of History (G. W. F. Hegel)"] [:li "This Life: Secular Faith and Spiritual Freedom (Martin Hägglund)"] [:li "The Power Broker (Robert Caro)"] [:li "Mating (Normal Rush)"]]]))) (defn books-2026 [] (page (html [:<> [:h1 "Favorite reads of 2026"] [:ul [:li "The Price of Peace (Zachary D. Carter)"]]]))) (defn media-queue [] (page (html [:<> [:h1 "My media queue"] [:p "This page contains a list of media that I'd like to read, watch, listen to, otherwise consume at some point. Think of it kind of like my public bookmarks."] [:ul [:li "Mood Machine (Lizz Pelly)"] [:li "Introduction to Algorithms (Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein)"] [:li [:s [:a {:href "https://www.youtube.com/watch?v=jdn617M3-P4"} "Exotic Functional Data Structures: Hitchhiker Trees by David Greenberg (YouTube)"]]] [:li [:a {:href "https://www.scottaaronson.com/papers/philos.pdf"} "Why Philosophers Should Care About Computational Complexity"]] [:li [:a {:href "https://futureofcoding.github.io/futureofcoding.org/essays/dctp#d-is-for-denotative"} "The Misunderstood Roots of FRP Can Save Programming"]] [:li [:a {:href "https://cs.yale.edu/homes/aspnes/classes/223/notes.html"} "Notes on Data Structures and Programming Techniques"]] [:li [:a {:href "https://jackschaedler.github.io/circles-sines-signals/"} "Circles Sines and Signals - Introduction"]] [:li [:a {:href "http://archagon.net/blog/2018/03/24/data-laced-with-history/"} "Data Laced with History"]] [:li [:a {:href "https://elementsofprogramming.com/eop.pdf"} "Elements of Programming"]] [:li [:a {:href "https://www.youtube.com/watch?v=tRc0O9VgzB0&t=1526s"} "Jepsen 9: A Fsyncing Feeling • Kyle Kingsbury • GOTO 2018 (YouTube)"]] [:li [:a {:href "https://publikationen.uni-tuebingen.de/xmlui/bitstream/handle/10900/102021/thesis-v1.1.pdf?sequence=1&isAllowed=y"} "Design and Implementation of Effect Handlers for Object-Oriented Programming Languages"]] [:li [:a {:href "https://probml.github.io/pml-book/"} "Probabilistic Machine Learning: An Introduction"]] [:li [:a {:href "https://arxiv.org/abs/1803.05316"} "Seven Sketches in Compositionality: An Invitation to Applied Category Theory"]] [:li [:a {:href "https://travisdowns.github.io/blog/2020/07/06/concurrency-costs.html"} "A Concurrency Cost Hierarchy"]] [:li [:a {:href "https://arxiv.org/pdf/1807.05923"} "What is algebraic about algebraic effects and handlers?"]] [:li [:a {:href "https://math.andrej.com/2019/10/28/runners-in-action/"} "Runners in action"]] [:li [:a {:href "https://math.andrej.com/wp-content/uploads/2012/03/eff.pdf"} "Programming with Algebraic Effects and Handlers"]] [:li [:a {:href "https://www.cs.purdue.edu/homes/rompf/papers/wang-nips18.pdf"} "Backpropagation with Callbacks: Foundations for Efficient and Expressive Differentiable Programming"]] [:li [:a {:href "https://highscalability.com/design-of-a-modern-cache/"} "Design of a Modern Cache"]] [:li [:a {:href "https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/"} "Notes on structured concurrency, or: Go statement considered harmful"]] [:li [:a {:href "https://nosferalatu.com/DerivativesLogarithmsTransforms.html"} "Derivatives, Logarithms, and Transforms"]] [:li [:a {:href "https://braid.org/antimatter"} "Antimatter: an algorithm that prunes CRDT/OT history"]] [:li [:a {:href "https://ret2pop.nullring.xyz/blog/cognition.html"} "Cognition"]] [:li [:a {:href "https://ciechanow.ski/exposing-floating-point/"} "Exposing Floating Point"]] [:li [:a {:href "https://sans-io.readthedocs.io/how-to-sans-io.html"} "Writing I/O-Free (Sans-I/O) Protocol Implementations"]] [:li [:a {:href "https://gist.githubusercontent.com/tcoppex/443d1dd45f873d96260195d6431b0989/raw/2c2a0af372dec1a0c1dc19f30e7771799dc4779d/c_nostd.txt"} "Writing C software without the standard library"]] [:li [:a {:href "https://www.cs.tsukuba.ac.jp/~kam/papers/tfp2020-author.pdf"} "One-shot Algebraic Effects as Coroutines"]] [:li [:a {:href "https://www.250bpm.com/p/structured-concurrency"} "Structured Concurrency"]] [:li [:a {:href "https://glyph.twistedmatrix.com/2014/02/unyielding.html"} "Unyielding"]]]]))) (defn media-log [] (page (html [:<> [:h1 "My media log"] [:section [:h2 "Exotic Functional Data Structures: Hitchhiker Trees by David Greenberg"] [:a {:href "https://www.youtube.com/watch?v=jdn617M3-P4"} "YouTube link"] [:p "Focused on the implementation of the Hitchhiker Tree data structure. I was hoping to learn a bit more about how Greenberg had been using Hitchhiker Trees."]]]))) (defn past-work [] (page (html [:<> [:h1 "Past work"] [:p "I have spent most of my professional life working as a software engineer:"] [:ul [:li "In 2024, I ran product engineering at Normal Computing"] [:li "In the summer of 2023, I traveled and prototyped a devex tool called refuge"] [:li "From 2018 to 2023, I worked as a software engineer at Flexport"] [:li "From 2014 to 2017, I worked as a software engineer at a small startup"]] [:p "I had a previous career as a theatrical sound designer in New York City."]]))) (defn e-404 [] (page (html [:<> [:h1 "404 Oh, be some other path!"] [:p "What's in a path? That which we call a page" [:br] "by any other path would fail to load"]]))) (defn pages [] {home-uri home media-queue-uri media-queue media-log-uri media-log books-2026-uri books-2026 books-2025-uri books-2025 films-2025-uri films-2025 past-work-uri past-work #_#_ missionary-uri missionary second-sex-uri second-sex}) (comment (require '[repl :refer [restart build]]) (restart) (build))