summaryrefslogtreecommitdiff
path: root/src/operationnull/index.scm
diff options
context:
space:
mode:
authorbdunahu <bdunahu@operationnull.com>2026-08-21 20:54:39 -0400
committerbdunahu <bdunahu@operationnull.com>2026-08-21 21:04:14 -0400
commit30731133aff475f100cea7fac18017505a400c38 (patch)
treecdc2ae3deccd2eba960889288f0743ef12dabb94 /src/operationnull/index.scm
parent959447a73ef7bd79b12dcf259ee8c3c1941f10df (diff)
Move contact, blog to index. Rewrite index, structural changes.HEADmaster
Diffstat (limited to 'src/operationnull/index.scm')
-rw-r--r--src/operationnull/index.scm104
1 files changed, 104 insertions, 0 deletions
diff --git a/src/operationnull/index.scm b/src/operationnull/index.scm
new file mode 100644
index 0000000..3c9e673
--- /dev/null
+++ b/src/operationnull/index.scm
@@ -0,0 +1,104 @@
+;; SPDX-License-Identifier: CC-BY-SA-4.0
+;; Copyright 2026 bdunahu <bdunahu@operationnull.com>
+(define-module (operationnull index)
+ #:use-module (srfi srfi-19)
+ #:use-module (haunt builder blog)
+ #:use-module (haunt html)
+ #:use-module (haunt page)
+ #:use-module (haunt post)
+ #:use-module (haunt utils)
+ #:use-module (operationnull utils)
+ #:use-module (operationnull theme)
+ #:export (index-page))
+
+(define %about
+ `(div (h1 "Hello!")
+ (div (@ (class "c"))
+ (p "My name is Benjamin (often 'bdunahu'), and this is my
+personal site!")
+ (p "I obtained my masters at the "
+ (a (@ (href "https://www.cics.umass.edu/"))
+ "University of Massachusetts Amherst")
+ ", where I studied computer science. I now do security scanning on
+Linux-based operating systems. I am part of the "
+ (a (@ (href "https://github.com/umacabal/umaring"))
+ "umass webring")
+ ". Try it and pretend the majority of the internet doesn't
+exist!"))))
+
+(define %contact
+ `(div (h2 "Contact")
+ (div (@ (class "c"))
+ (p "I don't mind real humans contacting me:")
+ (ul (@ (class "ul-nb"))
+ (li (b "Email: ") "bdunahu @ this domain")
+ (li (b "IRC: ") "@ bdunahu @ libera.chat")
+ (li (b "matrix: ") "@bdunahu:tchncs.de")
+ (li (b "signal: ") "bdunahu.29"))
+ (p "If you want to send an encryped email:")
+ (ul (@ (class "ul-nb"))
+ (li (code "\
+curl -sL https://operationnull.com/assets/bdunahu.pub | gpg --import"))
+ (li "fingerprint "
+ (code "\
+5550 5CA6 9DE5 D342 7F31 F9AE 5F86 6C65 2A34 C996"))))))
+
+(define (make-blog-preview site posts)
+ `(div (h2 "Recent Posts "
+ (a (@ (href "/atom.xml"))
+ (img (@ (class "feed-icon")
+ (src "/assets/feed.png")))))
+ (div (@ (class "c"))
+ (ul (@ (class "ul-nb"))
+ ,(map (lambda (post)
+ (let ((uri (post-uri site post)))
+ `(li (a (@ (href ,uri))
+ ,(post-ref post 'title))
+ " - "
+ ,(date->string (post-date post)
+ "~B ~d, ~Y"))))
+ (take-up-to 5 (posts/reverse-chronological posts))))
+ (a (@ (href "/posts/"))
+ "see all..."))))
+
+(define %extras
+ `(div (h2 "Some stuff I do:")
+ (div (@ (class "c"))
+ (p "I recently did some independent work at the UMass Plasma
+lab related to a specialized python asyncio profiler, similar to the "
+ (a (@ (href "https://github.com/plasma-umass/coz"))
+ "Coz profiler")
+ ", but for the event loop. It worked okay, but required a constant
+workload across the profiling experiments to have actionable results.
+It was still a great learning
+experience!")
+ (p "I previously worked on my own C compiler after working on a
+from-scratch compiler in coursework. I used this second compiler to
+learn the basics of guile scheme. This website is written in scheme;
+and my computing environments are similarly configured using "
+ (a (@ (href "https://guix.gnu.org/"))
+ "GuixSD")
+ ". I started contributing patches and packages. I have a little
+experience with Arch (Parabola) and Debian in maintaining this server.
+Someday, I may host my web, mail, IRC bouncer, etc. with scheme and
+Guix too, but that requires downtime and a lot of work on top of the
+work already put in.")
+ (p "I write, sometimes technical papers for research and classwork, but
+also enjoy creative writing. I try to practice the fiction genre and
+freewrite daily.")
+ (p "I also read a lot of Sword and Sorcery. My favorite series
+is the Morlock Ambrosius series by James Enge. While the protagonists
+in these stories are capable enough of saving the world, what makes it
+interesting is the lack of heroism and the reality that they are their
+own worst enemy, ("
+ (a (@ (href "https://www.oldmoonpublishing.com/evil-honey"))
+ "if not the secondary antagonist")
+ ")."))))
+
+(define (index-content site posts)
+ `(article ,%about ,%contact ,(make-blog-preview site posts) ,%extras))
+
+(define (index-page site posts)
+ (make-page "index.html"
+ (base-template site "home" (index-content site posts))
+ sxml->html))