aboutsummaryrefslogtreecommitdiff
path: root/haunt/projects.scm
blob: 9173aea920fc3ea572b61edd5370a952da8f9bf4 (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
;;; 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 (custom 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 %software-contributions
  `(("Haiku" "Finished"
     "https://www.haiku-os.org/"
     ("The Haiku operating system."
      (ul (li ,(link "1337: mediaplayer: Implement AppendM3uToPlaylist"
                     "https://review.haiku-os.org/c/haiku/+/1337"))
          (li ,(link "1351: Add mime_db entry for application/vnd.apple.mpegurl (M3U)"
                     "https://review.haiku-os.org/c/haiku/+/1351")))))))

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

(define (project name status url description)
  (let ((status-class (cond ((string= status "Active") "info")
                            ((string= status "Finished") "good")
                            ((string= status "Dormant") "okay")
                            ((string= status "Abandoned") "bad")
                            (else "info"))))
    `(tr (td ,(link name url))
         (td (span (@ (class ,(string-append "label " status-class))) ,status))
         (td ,@description))))

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

`((h2 "Projects")
  (p "I'm still in the process of putting things together, so this page is a bit empty.")
  ,@(project-section "Software" %software-projects)
  ,@(project-section "Packaging" %packaging-projects)
  ,@(project-section "Other Contributions" %software-contributions))

© 2015 - 2026 Jakob L. Kreuze