summaryrefslogtreecommitdiff
path: root/src/operationnull
diff options
context:
space:
mode:
Diffstat (limited to 'src/operationnull')
-rw-r--r--src/operationnull/pages.scm66
-rw-r--r--src/operationnull/theme.scm64
2 files changed, 64 insertions, 66 deletions
diff --git a/src/operationnull/pages.scm b/src/operationnull/pages.scm
index d2e4462..7783b09 100644
--- a/src/operationnull/pages.scm
+++ b/src/operationnull/pages.scm
@@ -5,42 +5,42 @@
gold-content
music-content))
-
(define index-content
'(article (h2 "Hello!")
(div (@ (class "c"))
- (p "My name is Benjamin, and you have reached my personal site!")
- (p "Some of my current interests include sword and sorcery, abstract syntax trees and compilers, Norse mythology, scheme programming, and "
- (a (@ (href "/music.html"))
- "metal music")
- ". "
- (a (@ (href "/gold.html"))
- "I sometimes practice poetry")
- "/fiction writing.")
- (br)
- (h3 "Some stuff I am currently doing:")
- (ul (@ (type "bullet"))
- (li "learning (guile) scheme, and using it to design a C compiler.")
- (li "working on a short sword and sorcery story about a frankensteinish werewolf, and possibly, blood.")
- (li "learning how to profile asynchronous code using sampling for the purpose of contributing it to "
- (a (@ (href "https://github.com/plasma-umass/scalene"))
- "SCALENE")
- ".")))
- (h2 "Other sites and protocols:")
- (div (@ (class "c"))
- (p "The web is currently being overrun with AI generated content. Even before then, search engines prioritized commercial pages over personalized sites or blogs. I have come across three solutions:")
- (ol
- (li "webrings! The footer of this site contains links to the sites of my peers.")
- (li (a (@ (href "https://wiby.me"))
- "wiby.me")
- " works as a search engine and indexes only personal blogs. The all-knowing "
- (a (@ (href "https://searxng.org/"))
- "searxng")
- " can also be configured to index this engine while simultaneously accessing google or duckduckgo.")
- (li "try the "
- (a (@ (href "https://geminiprotocol.net/"))
- "gemini protocol")
- ", which is filled with interesting 'gemlogs'. I have started my own, named 'Porphyrion'.")))))
+ (p "My name is Benjamin (often 'bdunahu'), and this is my personal site!")
+ (p "I am currently attending my final semester at the "
+ (a (@ (href "https://www.cics.umass.edu/"))
+ "University of Massachusetts Amherst")
+ ", where I am studying computer science. I am part of the "
+ (a (@ (href "https://github.com/umacabal/umaring"))
+ "umass ring")
+ ". Try it and pretend the majority of the internet doesn't exist!"))
+ (h2 "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 "
+ (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!")
+ (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 "
+ (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 "
+ (a (@ (href "https://www.oldmoonpublishing.com/evil-honey"))
+ "own worst enemy, if not the secondary antagonist")
+ "."))))
(define music-content
'(article (h2 "Music")
diff --git a/src/operationnull/theme.scm b/src/operationnull/theme.scm
index a398372..1b47d81 100644
--- a/src/operationnull/theme.scm
+++ b/src/operationnull/theme.scm
@@ -13,42 +13,40 @@
"CC-BY-SA 4.0"))
(define %intro
- (let ((desc
- '(p "cs graduate student @ "
- (a (@ (href "https://www.cics.umass.edu/"))
- "UMass Amherst")))
- (nav
- '(nav
- (div (ul (li (a (@ (href "gemini://porphyrion.operationnull.com/"))
- "porphyrion"))
- (li (a (@ (href "https://git.operationnull.com/"))
- "git"))
- (li (a (@ (href "/posts/"))
- "blog"))
- (li (a (@ (href "/contact.html"))
- "contact"))
- (li (a (@ (href "/"))
- "home")))))))
- `(intro
- (div (img (@ (alt "raven") (class "no-border")
- (src "/assets/raven.png"))))
- (div (@ (style "text-align: left;"))
- (h1 (span (@ (class "white")) bdunahu))
- ,desc
- ,nav))))
+ `(intro
+ (a (@ (class "intro-ava") (href "/")))
+ (div (@ (class "divider")))
+ (div (@ (class "intro-main"))
+ (div (@ (class "intro-left"))
+ (nav
+ (div (ul (li (a (@ (href "/contact.html"))
+ "contact"))
+ (li (a (@ (href "/posts/"))
+ "blog"))
+ (li (a (@ (href "https://git.operationnull.com/"))
+ "git"))
+ (li (a (@ (href "gemini://porphyrion.operationnull.com/"))
+ "porphyrion"))))))
+ (div (@ (class "intro-right"))
+ (nav (@ (id "umaring-id")))
+ (script (@ (id "umaring_js")
+ (src "/assets/ring.js")))))))
(define %footer
`(footer (@ (class "footer"))
- (script (@ (id "umaring_js")
- (src "https://umaring.mkr.cx/ring.js?id=bdunahu")))
- (div (@ (id "umaring")))
+ (div (@ (class "footer-head"))
+ (nav (div (@ (class "umaring-id")))))
,(date->string (current-date) "Copyright © 2024-~Y bdunahu")
+ "."
(br)
- "Site content available under the " ,%cc-by-sa-link " license "
+ "Art by "
+ (a (@ (href "https://rottngutt.rf.gd/about.php"))
+ "rottngutt")
+ ", other content available under the " ,%cc-by-sa-link " license "
(a (@ (href "https://git.operationnull.com/operationnull.git/"))
"here")
- "."
- (br)
+ "."
+ (br)
"Last updated on "
,(date->string (current-date) "~b ~d, ~Y")
". Generated with "
@@ -57,7 +55,7 @@
" and "
(a (@ (href "https://gnu.org/software/guile"))
"Guile Scheme")
- "."))
+ "."))
(define (first-paragraph post)
(let loop ((sxml (post-sxml post)))
@@ -81,9 +79,9 @@
(meta (@ (charset "utf-8")))
(meta (@ (name "viewport")
(content "width=device-width, initial-scale=1")))
- (link (@ (rel "icon")
- (type "image/x-icon")
- (href "/assets/favicon.ico")))
+ ;; (link (@ (rel "icon")
+ ;; (type "image/x-icon")
+ ;; (href "/assets/favicon.ico")))
(title ,(string-append title " — " (site-title site)))
,(stylesheet "site"))
,%intro