summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbdunahu <bdunahu@operationnull.com>2026-04-22 14:08:24 -0400
committerbdunahu <bdunahu@operationnull.com>2026-04-22 14:08:24 -0400
commit8d4d039696c205b36aa2be547f5ec25eaadaa37a (patch)
treec1cca077352183fa0d1cbadef928f1b03c872f89 /src
parent77c0ae3edd3daef486e695a9bfa17c45d581b1bb (diff)
new recommended page, minor edits across all pages
Diffstat (limited to 'src')
-rw-r--r--src/operationnull/pages.scm106
-rw-r--r--src/operationnull/site.scm6
-rw-r--r--src/operationnull/static.scm2
-rw-r--r--src/operationnull/theme.scm14
4 files changed, 82 insertions, 46 deletions
diff --git a/src/operationnull/pages.scm b/src/operationnull/pages.scm
index 7783b09..b598f41 100644
--- a/src/operationnull/pages.scm
+++ b/src/operationnull/pages.scm
@@ -1,12 +1,14 @@
+;; SPDX-License-Identifier: CC-BY-4.0
+;; Copyright 2026 bdunahu <bdunahu@operationnull.com>
(define-module (operationnull pages)
#:export (index-content
contact-content
e404
gold-content
- music-content))
+ recommend-content))
(define index-content
- '(article (h2 "Hello!")
+ '(article (h1 "Hello!")
(div (@ (class "c"))
(p "My name is Benjamin (often 'bdunahu'), and this is my personal site!")
(p "I am currently attending my final semester at the "
@@ -14,75 +16,99 @@
"University of Massachusetts Amherst")
", where I am studying computer science. I am part of the "
(a (@ (href "https://github.com/umacabal/umaring"))
- "umass ring")
+ "umass webring")
". Try it and pretend the majority of the internet doesn't exist!"))
- (h2 "Some stuff I do:")
+ (h1 "Some stuff I do:")
(div (@ (class "c"))
(p "Some programming, of course; I like experimenting with and building tools for existing software.")
- (p "I recently did some independent work at the UMass Plasma lab related to a specialized python asyncio profiler. Asyncio allows developers to run code non-sequentially on a single python thread. It's entirely in control of the developer when concurrent tasks are allowed to yield to other tasks, so bad code (synchronous blocking calls, like a file read) are capable of slowing the throughput of the event loop or task scheduler. My profiler conducted timing experiments similar to the "
+ (p "I recently did some independent work at the UMass Plasma lab related to a specialized python asyncio profiler. In the case of asyncio, developers are in charge of having their tasks share resources. If you make a mistake (i.e., by having a task not yield to other tasks), traditional profilers may not find it, because they are concerned with ranking code by total execution time, not considering the delicate timing between all tasks competing to run on the same thread. My profiler 'Nemesis', would randomly select synchronous logic to speedup during execution similar to the "
(a (@ (href "https://github.com/plasma-umass/coz"))
"Coz profiler")
- " to insert slowdowns into asynchronous tasks during execution, which when done intentionally simulates the effect of speeding up a targeted section of synchronous code. This worked okay, but was limited in usefulness since it required a constant workload across the experiments to have actionable results. It was still a great learning experience!")
+ " and measure the average latency changes of all other tasks to report on real optimization impacts. This worked okay, but was limited in usefulness since it required a constant workload across the 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 recently 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, and Emacs is my preferred tool. Sometimes technical papers for research and classwork, but am also enjoy creative writing. I do "
+ (p "I write, sometimes technical papers for research and classwork, but also enjoy creative writing. I do "
(a (@ (href "/gold.html"))
"poetry")
" occasionally. Though I prefer plot and character design (likely cultivated from many hours playing dungeons and dragons), and am currently focused on a series of short stories featuring a timeline in which the goddess Freya is spiteful in the aftermath of the "
(a (@ (href "https://en.wikipedia.org/wiki/%C3%86sir%E2%80%93Vanir_War"))
"Aesir-Vanir war")
- ". It's been suggested she's the same seer who was mistreated (if that's how you should call burned to death three times) by the Aesir because of envy. Since she is essentially traded as a hostage to the Aesir in the aftermath of the war, why shouldn't she be using her seer magic venomously behind their backs? It's currently set in Midgard, Jotunheim, and the passages inbetween, following her shamelessly unhelpful servants.")
- (p "I also read a lot of Sword and Sorcery. My favorite series is the Morlock Ambrosis series by James Enge, followed by Sam Syke's Bring Down Heaven. I give an honorable mention to "
- (a (@ (href "https://en.wikipedia.org/wiki/Operation_Chaos_%28novel%29"))
- "Operation Chaos")
- " by Poul Anderson; which played a role in the naming of this site (though of course I prefer the site operation-al). 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 "
+ ". It's been suggested she's the same seer who was mistreated (if that's how you should call burned to death three times) by the Aesir due to envy. Since she is essentially traded as a hostage to the Aesir in the aftermath of the war, why shouldn't she be using her seer magic venomously behind their backs? It's currently set in Midgard, Jotunheim, and the passages in-between, following her shamelessly unhelpful servants.")
+ (p "I also read a lot of Sword and Sorcery. My favorite series is the Morlock Ambrosius series by James Enge; but you can read more about things I find cool "
+ (a (@ (href "/recommend.html"))
+ "here")
+ ". 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"))
- "own worst enemy, if not the secondary antagonist")
- "."))))
+ "if not the secondary antagonist")
+ ")."))))
-(define music-content
- '(article (h2 "Music")
+(define recommend-content
+ '(article (h1 "Cool Stuff in Categories")
+ (p "Limited to 10 or less per category. Ordered alphabetically, to make the process easier. Descriptions of items are not provided.")
+ (h2 "Languages")
(div (@ (class "c"))
- (p "While it's hard to recommend music others would like, I don't use Spotify or streaming services. I am deciding to share a small pool on my own here.")
- (p "I like music which tells a story. Usually this is not the kind of music you can listen to while simultaneously doing something else. I actually used to try doing this, and have stopped listening to as much music as a result."))
- (h2 "In (alphabetical) order")
+ (ul (li "Aeolian Tones")
+ (li "C++")
+ (li "Cave Scrawlings")
+ (li "Common Lisp")
+ (li "Primordial")
+ (li "Python")
+ (li "Scheme")
+ (li "Thieves' Cant")))
+ (h2 "Books & Series")
(div (@ (class "c"))
- (ul (li "Agalloch - She Painted Fire Across The Skyline")
- "Acoustic metal. I like all 20 minutes of this, but part 2 is quite charged. If it references something, I don't know it."
- (li "Ainulindale - The Parting")
- "Most of my favorites here are metal, but this one isn't. The band is a reference to the Silmarilion, the the lyrics are usually dialogue from the same."
+ (ul (li "Bram Stoker - Dracula")
+ (li "Christopher Tolkien - The Saga of King Heidrek the Wise")
+ (li "James Enge - Morlock Ambrosius Series")
+ (li "John Bellairs - The Face in the Frost")
+ (li "M.D. Lachlan - The Wolfsangel Cycle")
+ (li "Michael Moorcock - Elric Saga")
+ (li "Poul Anderson - Operation Chaos")
+ (li "Robert E. Howard - The God in the Bowl")
+ (li "Roger Zelazny - Jack of Shadows")
+ (li "Sam Sykes - Bring Down Heaven")
+ ;; (li "Stephen King - The Shining")
+ ))
+ (h2 "Music")
+ (div (@ (class "c"))
+ (ul ;; (li "Agalloch - She Painted Fire Across The Skyline (Part 2)")
(li "Blind Guardian - Harvest Of Sorrow")
- "Another Silmarilion reference, regarding the events of Túrin and Nienor. This band is quite well known; with some music in relation to Michael Moorcock's Elric of Melnibone, which is also one of the coolest S&S characters to exist."
(li "Catamenia - Coldbound")
- "Black metal; the band's name has an unintentional meaning. This song gives me Tolkien vibes again, but I think this is also unintentional. I love the wolf theme."
(li "Dool - Oweynagat")
- "I don't know the specific genre of metal. I like the use of vocal layering, similarly to Blind Guardian, and the fact the singer is intersex makes their music have a very captivating sound."
+ ;; (li "Empyrium - The Franconian Woods In Winter's Silence")
+ (li "Enshine - Dual Existance")
+ (li "Eternal Tears of Sorrow - Prophetian")
(li "Evanescence - Imaginary")
- "Rock or metal; from a popular band."
- (li "In Flames - The Puzzle")
- "Maybe death metal. I just like the pace of this one."
+ ;; (li "In Flames - Pinball Map")
+ ;; (li "Moonspell - Wolfshade")
(li "Palmreader - Hold/Release")
- "Rock or metal; I found this band through Conjurer and their cover of Vermilion, that one is also very good, but a bit more sinister."
- (li "Sonata Arctica - Full Moon")
- "Power metal. This song mostly got me into the metal genre along with Powerwolf, but I don't like the latter as much anymore. I do love the wolf theme, along with Catamenia."
(li "Suldusk - Solus Ipse")
- "This song fits in a weird genre; pagan metal or folk. The deliberate mix of clean and growling vocals is beautiful, as sparing as they are."
- (li "The Ritual Aura - Keening III: Dreamer's End")
- "Death metal. Might give myself whiplash, and guitar may be as edgy as the lyrics, but it tends to be very poetic. May be a reference to Elder Scrolls Morrowind, which I haven't played."
(li "TOOL - Rosetta Stoned")
- "Rock; about psychedeilc visions of alien contact and supposed purpose. Storytelling is worth the 10+ minute length."))))
+ (li "Vylet Pony - The Wallflower Equation")))
+ (h2 "Software")
+ (div (@ (class "c"))
+ (ul (li "bitchx")
+ (li "emacs")
+ (li "gimp")
+ (li "guix")
+ (li "gnus (mail client)")
+ (li "mpv (media player)")
+ (li "nsxiv (image viewer)")
+ (li "tor")
+ (li "yt-dlp")
+ (li "zathura (pdf viewer)")))))
(define contact-content
- '(article (h2 "Messengers")
+ '(article (h1 "Messengers")
(div (@ (class "c"))
(b "IRC: ") "@ bdunahu @ libera.chat"
(br)
(b "matrix: ") "@bdunahu:tchncs.de"
(br)
(b "signal: ") "bdunahu.29")
- (h2 "Email")
+ (h1 "Email")
(div (@ (class "c"))
"bdunahu @ this domain"
(ul (@ (style "font-size: 80%;"))
@@ -93,12 +119,12 @@
(code "5550 5CA6 9DE5 D342 7F31 F9AE 5F86 6C65 2A34 C996"))))))
(define e404
- '(article (h2 "403/404 Error")
+ '(article (h1 "403/404 Error")
(div (@ (class "c"))
(p "The requested page does not exist, or you do not have access."))))
(define gold-content
- '(article (h2 "Shape God")
+ '(article (h1 "Shape God")
(div (@ (class "date"))
"Written on Feb 12, 2024, updated June 30th, 2025 by bdunahu")
(br)
diff --git a/src/operationnull/site.scm b/src/operationnull/site.scm
index 80f6447..9b0e062 100644
--- a/src/operationnull/site.scm
+++ b/src/operationnull/site.scm
@@ -1,3 +1,5 @@
+;; SPDX-License-Identifier: CC-BY-4.0
+;; Copyright 2026 bdunahu <bdunahu@operationnull.com>
(define-module (operationnull site)
#:use-module (haunt builder assets)
#:use-module (haunt builder atom)
@@ -16,7 +18,7 @@
`(("Recent Posts" "/posts/index.html" ,posts/reverse-chronological)))
(define main-site
- (site #:title "operationnull"
+ (site #:title "operationnull.com"
#:domain "operationnull.com"
#:posts-directory "content/posts"
#:build-directory "target"
@@ -27,7 +29,7 @@
(static-page contact-content "/contact.html" "contact")
(static-page e404 "/404.html" "404 Error")
(static-page gold-content "/gold.html" "Shape God")
- (static-page music-content "/music.html" "music I like")
+ (static-page recommend-content "/recommend.html" "cool stuff in categories")
(static-directory "content/assets" "assets")
(blog #:theme main-theme
#:prefix "/posts/"
diff --git a/src/operationnull/static.scm b/src/operationnull/static.scm
index 25f35e2..d376332 100644
--- a/src/operationnull/static.scm
+++ b/src/operationnull/static.scm
@@ -1,3 +1,5 @@
+;; SPDX-License-Identifier: CC-BY-4.0
+;; Copyright 2026 bdunahu <bdunahu@operationnull.com>
(define-module (operationnull static)
#:use-module (haunt artifact)
#:use-module (haunt reader commonmark)
diff --git a/src/operationnull/theme.scm b/src/operationnull/theme.scm
index 1b47d81..7eded32 100644
--- a/src/operationnull/theme.scm
+++ b/src/operationnull/theme.scm
@@ -1,3 +1,5 @@
+;; SPDX-License-Identifier: CC-BY-4.0
+;; Copyright 2026 bdunahu <bdunahu@operationnull.com>
(define-module (operationnull theme)
#:use-module (haunt artifact)
#:use-module (haunt builder blog)
@@ -25,6 +27,8 @@
"blog"))
(li (a (@ (href "https://git.operationnull.com/"))
"git"))
+ (li (a (@ (href "https://codeberg.org/bdunahu"))
+ "codeberg"))
(li (a (@ (href "gemini://porphyrion.operationnull.com/"))
"porphyrion"))))))
(div (@ (class "intro-right"))
@@ -34,12 +38,10 @@
(define %footer
`(footer (@ (class "footer"))
- (div (@ (class "footer-head"))
- (nav (div (@ (class "umaring-id")))))
,(date->string (current-date) "Copyright © 2024-~Y bdunahu")
"."
(br)
- "Art by "
+ "Header art © "
(a (@ (href "https://rottngutt.rf.gd/about.php"))
"rottngutt")
", other content available under the " ,%cc-by-sa-link " license "
@@ -76,9 +78,13 @@
(lambda (site title body)
`((doctype "html")
(head
- (meta (@ (charset "utf-8")))
+ (meta (@ (http-equiv "Content-Type") (content "text/html; charset=UTF-8")))
+ (meta (@ (http-equiv "Content-Language") (content "en")))
(meta (@ (name "viewport")
(content "width=device-width, initial-scale=1")))
+ (meta (@ (name "description")
+ (content "bdunahu's personal website")))
+ (meta (@ (name "author") (content "bdunahu")))
;; (link (@ (rel "icon")
;; (type "image/x-icon")
;; (href "/assets/favicon.ico")))