aboutsummaryrefslogtreecommitdiff
path: root/haunt/pages/about.sxml
blob: c1d4ccf3e2781ca0ab6b248d624941ef602aa935 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
;;; -*- scheme -*-

;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
;;;
;;; This program is free software; you can redistribute it and/or
;;; modify it under the terms of the GNU General Public License as
;;; published by the Free Software Foundation; either version 3 of the
;;; License, or (at your option) any later version.
;;;
;;; This program is distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;;; General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with this program. If not, see
;;; <http://www.gnu.org/licenses/>.

(use-modules (ice-9 match)
             (jakob theme)
             (jakob utils sxml))

(define %software-projects
  '(("Mines" "Dormant"
     "https://git.sr.ht/~jakob/mines"
     ("Android implementation of the classic video game \"Minesweeper\"."))
    ("Rebuild" "Dormant"
     "https://git.sr.ht/~jakob/rebuild"
     ("An attempt at reimplementing Ken Silverman's Build engine, with the goal of being modular enough to host a modern Blood source port."))
    ("wildmidi" "Dormant"
     "https://git.sr.ht/~jakob/wildmidi"
     ("A simple [Rust] wrapper around the WildMIDI software synthesizer library."))
    ("Slime the World" "Finished"
     "https://git.sr.ht/~jakob/slime-the-world"
     ("My entry for the 2018 Autumn Lisp Game Jam; a game about covering everything in slime."))
    ("Nekopack" "Finished"
     "https://git.sr.ht/~jakob/nekopack"
     ("Tool for extracting game data from Nekopara's XP3 archives."))
    ("skullfuck" "Finished"
     "https://git.sr.ht/~jakob/skullfuck"
     ("Optimizing compiler for Brainfuck, contained in a single C source file."))
    ("Brisket" "Abandoned"
     "https://git.sr.ht/~jakob/brisket"
     ("Primitive newsreader script for interacting with NNTP servers."))
    ("Hypodermic" "Abandoned"
     "https://git.sr.ht/~jakob/hypodermic"
     ("Proof-of-concept shared object injector that will eventually be integrated with PINCE."))
    ("Duke on FluidSynth" "Abandoned"
     "https://git.sr.ht/~jakob/duke-on-fluidsynth"
     ("Experimental FluidSynth MIDI driver for EDuke32."))))

(define %emacs-projects
  '(("dired-rmjunk" "Active"
     "https://melpa.org/#/dired-rmjunk"
     ("A port of Jakub Klinkovský's rmshit.py to Dired."))
    ("ox-haunt" "Active"
     "https://melpa.org/#/dired-rmjunk"
     ("Haunt-flavored HTML backend for the Org export engine."))))

(define %software-contributions
  `(("GNU Guix" "Active"
     "https://guix.gnu.org"
     ("Functional package manager."))
    ("Radare2" "Finished"
     "https://www.radare.org/r/"
     ("UNIX-like reverse engineering framework and command-line tools."))
    ("Haiku" "Finished"
     "https://www.haiku-os.org/"
     ("The Haiku operating system."))))

(define %packaging-projects
  '(("zerodaysfordays" "Dormant"
     "https://git.sr.ht/~jakob/zerodaysfordays"
     ("My personal Gentoo ebuild overlay."))))

(define (project name status url description)
  (let ((status-class (match status
                        ("Active"    "good")
                        ("Finished"  "info")
                        ("Dormant"   "okay")
                        ("Abandoned" "bad")
                        (_           "info"))))
    `(tr (td ,(hyperlink url name))
         (td (button (@ (class ,(format #f "label-~a" status-class)))
                     ,status))
         (td (p ,@description)))))

(define (project-section name projects)
  `(section
    (h4 ,name)
    (table
     (tbody
      ,@(map (lambda (args) (apply project args)) projects)))))

(theme
 #:title "About"
 #:content
 `((h2 "Hey.")
   (ul (@ (class "horizontal-list"))
       (li "Email: " (strong "zerodaysfordays at ‌​‌‌‌​‌‌‍‌​‌‌​​​​‍‌​‌‌​​​‌‍‌‌​‌‌​​​‍‌​‌​‌​‌‌‍‌‌​‌‌‌‌‌‍‌​‌‌‌​​‌‍‌​‌​‌​‌​‍‌​‌‌‌‌​​‍‌​‌‌​‌​​‍‌​‌‌​‌‌​‍‌​‌‌​​​‌‍‌​‌‌‌​​​‍‌‌​‌‌‌‌‌‍‌​‌​‌‌​​‍‌​‌​‌‌‌‌‍‌​‌‌‌‌‌​‍‌​‌‌​​‌​‍‌‌​‌‌‌‌‌‍‌​‌‌​​‌​‍‌​‌‌‌​‌​sdf.lonestar.org"))
       (li "XMPP: " (strong "jakob at ‌​‌‌‌​‌‌‍‌​‌‌​​​​‍‌​‌‌​​​‌‍‌‌​‌‌​​​‍‌​‌​‌​‌‌‍‌‌​‌‌‌‌‌‍‌​‌‌‌​​‌‍‌​‌​‌​‌​‍‌​‌‌‌‌​​‍‌​‌‌​‌​​‍‌​‌‌​‌‌​‍‌​‌‌​​​‌‍‌​‌‌‌​​​‍‌‌​‌‌‌‌‌‍‌​‌​‌‌​​‍‌​‌​‌‌‌‌‍‌​‌‌‌‌‌​‍‌​‌‌​​‌​‍‌‌​‌‌‌‌‌‍‌​‌‌​​‌​‍‌​‌‌‌​‌​xmpp.is"))
       (li "IRC: " (strong "tsarfox on freenode.net.")))
   (ul (@ (class "horizontal-list"))
       (li "GPG: " ,(hyperlink "/static/gpg.txt" "5A7B 8C4C 70D5 FC3F 5E35 4625 3FE7 8039 D0E5 C118")))
   (ul (@ (class "horizontal-list"))
       (li ,(hyperlink "https://git.sr.ht/~jakob" "git"))
       (li ,(hyperlink "https://mastodon.sdf.org/@jakob" "fedi"))
       (li ,(hyperlink "https://en.wikipedia.org/wiki/User:ZeroDaysForDays" "wiki"))
       (li ,(hyperlink "http://tilde.town/~jakob" "tilde"))
       (li ,(hyperlink "http://zerodaysfordays.sdf.org/" "sdf"))
       (li ,(hyperlink "https://lobste.rs/u/jakob" "lobste.rs")))
   (main (@ (class "overline"))
         (p "My name's Jakob. I'm a self-taught free software hacker currently
studying computer science and mathematics at the University of Massachusetts
Amherst. I'm into functional programming, computer security, permaculture,
cooking, punk rock, and lifting weights.")
         (p "I'm still in the process of putting things together, so this page is a bit empty.")
         (p "As of right now, "
            (b "I am still searching for a summer internship for 2020")
            ". So if you get the impression that I would be a good fit for your
company, my inbox is open."))
   (h3 "Site Map")
   (nav (@ (id "site-map"))
        (section (h4 ,(hyperlink "/blogroll" "Blogroll"))
                 (p "A noncomprehensive list of the blogs I follow."))
        (section (h4 ,(hyperlink "/bookmark" "Bookmarks"))
                 (p "Collection of some things that I especially enjoyed reading."))
        (section (h4 ,(hyperlink "/outbox" "Webmention Outbox"))
                 (p "List of all the Webmention replies I've sent. Probably uninteresting to most.")))
   (h3 "Projects")
   ,(project-section "Software" %software-projects)
   ,(project-section "Emacs" %emacs-projects)
   ,(project-section "Packaging" %packaging-projects)
   ,(project-section "Other Contributions" %software-contributions)))

© 2015 - 2026 Jakob L. Kreuze