23 Commits

Author SHA1 Message Date
nat
0f90cbda45 Merge branch 'natalieee.net' of git.natalieee.net:nat/htmlgen into natalieee.net 2025-04-16 05:39:44 -07:00
nat
c327df8aa3 various minor updates 2025-04-16 05:33:39 -07:00
nat
ad3a086644 various minor updates 2025-04-16 05:31:27 -07:00
903d7270e7 fix spelling of E-mail because it is funny to be particular about this 2025-02-18 12:13:55 -08:00
dd9d389df2 update discord 2025-01-29 09:48:42 -08:00
6b60bdd861 update ada's name 2025-01-11 20:53:20 -08:00
7355435b6c add 88x31 source code to home page 2025-01-11 20:31:57 -08:00
9bea8d64f9 fix bad css in view-thought.lisp 2024-11-29 01:22:25 -08:00
82783c2ec4 automatically add followed fedi 88x31s on build 2024-11-25 01:21:18 -08:00
6104ed9888 update natalie-info 2024-11-13 16:28:09 -08:00
5f5b2ee159 add mastodon verification thingy 2024-11-05 17:12:29 -08:00
983aa21dc2 update home.html 2024-11-03 02:50:06 -08:00
79a588fa06 append roboring to footer 2024-10-30 05:00:15 -07:00
849d36529b add tag filtering system 2024-10-26 03:56:09 -07:00
eff36df75f change formatting of viewthought.html 2024-10-23 22:42:32 -07:00
e6792588cf improve view-thought 2024-10-21 05:51:08 -07:00
2efdb8fd1d fix issue arrising from post titles containing ":" 2024-10-21 04:54:26 -07:00
1fad78c0af add alternative thought viewing frontend 2024-10-20 22:03:45 -07:00
2b21f0bf67 note new subdomain 2024-10-20 00:34:58 -07:00
65b177f9d4 remove a name 2024-10-19 22:00:56 -07:00
e68a6374c4 add (two-track-pharmacode (hex "nat")) to footer 2024-10-15 22:37:04 -07:00
0453815422 fix spelling error 2024-10-08 23:52:39 -07:00
nat
aca0606797 Merge pull request 'update gramatical personhood of its pronouns to match its internal monologue' (#1) from natalieee.net-3pp into natalieee.net 2024-10-08 21:42:31 -07:00
14 changed files with 138 additions and 64 deletions

View File

@ -1,7 +1,8 @@
(defun html ()
(page "home" `((section ()
,(exec-command "add-following-88x31s")
(p ()
"this thing is known as natalie[ee]"
"this thing is known as natalie[ee] (roentgen connolly)"
(br)
"$[find files/homepage-statements/* | shuf -n1 | xargs -I % cat %]"
(br)
@ -10,32 +11,41 @@
"website homepage visit-counter: $[echo visit >> files/home_visit_counter; cat files/home_visit_counter | wc -l]"
(br)
(br)
"if you are here, it is rather curious as to why. it encourages you to use the post arbitrary data section of this page to tell it how you found this site."))
"it is curious as to how things find its site. it encourages the reader to use the post arbitrary data section of this page to tell it how you found this site."))
(section ()
(h2 () "particularly notable pages")
(a (:href "/html/site-info.html") "information about this website")
(a (:href "/html/natalie-info.html") "information about this natalie")
(a (:href "/html/blog/index.html") "there is a [currently broken] blog. it does not frequently use it.")
(a (:href "/html/random-thoughts.html") "arbitrary natalie thoughts. they are interesting, sometimes")
(a (:href "/html/cool-sites.html") "other webloci"))
(span () (a (:href "/html/view-thought.html") "arbitrary natalie thoughts. they are interesting, sometimes"),(exec-command "make-footnote 'basically a blog at this point'"))
(a (:href "/html/cool-sites.html") "other webloci")
(a (:href "/stats") "random natalie data")
,(exec-command "put-footnotes"))
(section ()
(h2 () "directories")
(span () ,(exec-command "find -maxdepth 1 -type d | sed 1d | sed 's/\\.\\///g' | xargs -I% echo \"<a href=%>%</a>\" | grep -v pycache | grep -v .git")))
(section ()
(h2 () "changelog")
(pre () ,(exec-command "cat changelog")))
(details ()
(summary () "changelog collapsed for brevity")
(pre () ,(exec-command "cat changelog"))))
(section ()
(h2 () "site file tree")
(p () "(as of last build)")
(details ()
(summary () "file tree hidden for brevity")
(summary () "file tree collapsed for brevity")
,(exec-command "tree . | sed 's/^\\./site/; s/─/-/g; s/├/|/g; s/└/\\\\/g; s/│/|/g' | sed '1i<pre>' | sed '$a</pre>'")))
(section ()
(h2 () "88x31 collection")
(span () ,(exec-command "for file in ./files/88x31/*; do (file -i \"$file\" | grep -qE 'image/') && echo \"<img src=\\\"$file\\\" width=88 height=31/>\" || cat \"$file\"; done | shuf")))
(span () ,(exec-command "for file in ./files/88x31/*; do (file -i \"$file\" | grep -qE 'image/') && echo \"<img src=\\\"$file\\\" alt=\\\"88x31 $(basename ${file})\\\" width=88 height=31/>\" || cat \"$file\"; done | shuf"))
(h3 () "propagate its 88x31")
(code () "
<span class=\"-tag-delimiter\">&lt;</span><span class=\"-tag\">a</span> <span class=\"-tag-attribute\"><span class=\"-_attr\">href</span></span><span class=\"Operator\">=</span><span class=\"String\">&quot;<span class=\"Underlined\">https://natalieee.net/</span>&quot;</span><span class=\"-tag-delimiter\">&gt;</span><br>
&emsp;<span class=\"-tag-delimiter\">&lt;</span><span class=\"-tag\">img</span> <span class=\"-tag-attribute\"><span class=\"-_attr\">src</span></span><span class=\"Operator\">=</span><span class=\"String\">&quot;<span class=\"Underlined\">https://natalieee.net/files/natalieee.net.png</span>&quot;</span> <span class=\"-tag-attribute\">alt</span><span class=\"Operator\">=</span><span class=\"String\">&quot;natalieee.net&quot;</span> <span class=\"-tag-attribute\">width</span><span class=\"Operator\">=</span><span class=\"String\">&quot;88&quot;</span> <span class=\"-tag-attribute\">height</span><span class=\"Operator\">=</span><span class=\"String\">&quot;31&quot;</span><span class=\"-tag-delimiter\">&gt;</span><br>
<span class=\"-tag-delimiter\">&lt;/</span><span class=\"-tag\">a</span><span class=\"-tag-delimiter\">&gt;</span>")
(p () "one must!"))
(section ()
(h2 () "post arbitrary data to be displayed here")
"yes, it does sanitize this" (a (:href "/html/albert-hack-1.html") "<del>(No you don't --sanitization tester)</del>") "yes, it does")
"yes, it does sanitize this" (a (:href "/html/ada-hack-1.html") "<del>(No you don't --sanitization tester)</del>") "yes, it does")
(section (:class "ignore-section")
(form (:action "#" :method "post")
(label (:for "text") "post text:")

View File

@ -1,14 +1,14 @@
(defun html ()
(page "albert" `((section ()
(page "ada" `((section ()
(h1 () "a friend hacked its website.")
(p () "but how?"))
(section ()
(p () "
prior to natalie rewriting the backend of its website, there was a bug that would allow a bash command in a comment inside $[echo \\$\\[]] and not containing &lt; or &rt; to be executed upon querrying the url /html/%2e%2e/files/posts-to-homepage/{post file}.
this was due to any url beginning with '/html/' being unconditionally put through parse_file(), which generates static content from the embedded bash in the html (see <a href='/html/site-info.html'></a>).
this was due to any url beginning with '/html/' being unconditionally put through parse_file(), which generates static content from the embedded bash in the html (see <a href='/html/stats.html'>stats.html</a>).
in addition to this, the source code of the server could be attained via a similar method, requesting the path of the file, but with /files/ or /html/ in front of it, followed by %2e%2e.")
(p () "
albert was able to exploit this by first getting the source code of the webserver via the second method discussed above, examining it, and deducing the first vulnerability mentioned above.
ada was able to exploit this by first getting the source code of the webserver via the second method discussed above, examining it, and deducing the first vulnerability mentioned above.
upon discovering the RCE available via the comment untrusted command evaluation, they were able to add an ssh key to this one's server and thus gain a shell.
amazingly, at the same time that they did this, natalie's other friend's girlfriend (appearing in the comments as gexfan) was halfheartedly trying to mess with its site.
this ended with around 15 messages on discord telling it its site had been hacked, only around two of which were from albert.")))))
this ended with around 15 messages on discord telling it its site had been hacked, only around two of which were from ada.")))))

View File

@ -1,14 +0,0 @@
(defun html ()
(page "blogosphere"
`((section ()
(h1 () "natalie's subunit of the blogosphere")
(h2 () "this is currently broken because it is a fool")
"it does not know if it will use this, but it was bored and thus have made a blog system")
(section ()
(h2 () "posts")
(table ()
(tbody ()
(tr () (th () (p () "title")) (th () (p () "editted")) (th () (p () "posted")) (th () (p () "size")))
(tr () (th (:colspan 4) (hr)))
,(exec-command "for file in $(ls ./site/html/blog/posts --time=creation); do echo \"<tr><td><a href=\\\"/html/blog/posts/$file\\\">$file</a></td><td>$(stat -c %y site/html/blog/posts/$file | head -c 16)</td><td><p>$(stat -c %y site/html/blog/posts/$file | head -c 10)</p></td><td align=\\\"right\\\">$(numfmt --to=iec --suffix=B $(stat -c %s \"site/html/blog/posts/$file\"))</td></tr>\"; done | sed 's/\\\/\\\//\\\//g'")
(tr () (th (:colspan 4)))))))))

View File

@ -60,7 +60,7 @@
(a (:href "http://puppygirl.systems") "puppygirl.systems (stupid idiot who types &lt;hr/&gt;)")
" Semi functional now")
(span ()
"albert: "
"ada: "
(a (:href "https://iso-9995-9.com") "iso-9995-9.com")
" (down? dns issue maybe)")
(span ()

View File

@ -2,6 +2,6 @@
(page "discord"
`((section ()
(h1 () "discord")
"as it is not particularly partial to internet centralization, and seeing as it has had discord accounts get banned for seemingly nothing, it is not particularly fond of using discord."
"unfortunately, humans that it like speaking to use discord in large enough volumes that it is likely to be rather challenging to convince all of the ones it particularly care about to migrate to some other platform."
"as it is not particularly partial to internet centralization, and seeing as it has had discord accounts get banned for seemingly nothing, it is not particularly fond of using discord. "
"unfortunately, humans that it like speaking to use discord in large enough volumes that it is likely to be rather challenging to convince all of the ones it particularly care about to migrate to some other platform. "
"this is not a very nice state of things."))))

View File

@ -42,17 +42,16 @@ cat /proc/acpi/button/lid/LID0/state | grep open && (modprobe i2c_hid_acpi) || (
(section ()
(h2 () "environment")
(p () "it use wayland, specifically hyprland. "
"this is unfortunate because it is bad software (this will be elaborated upon), but natalie like the special workspace system. "
"its status bar and notification system are written in gjs with ags. it resents this because it involves javascript, but oh well. "
"when libastal gets documentation, it will probably rewrite its ui in that. "
"this is unfortunate because it is bad software (this will be elaborated upon), but it likes the special workspace system. "
"its status bar and notification popups are written in hy, using <a href=\"https://git.natalieee.net/nat/astal-py\">its own python bindings around libastal</a>"
"its terminal emulator is foot because foot does not implement unecessary features."))
(section ()
(h2 () "keyboard")
(p () "unlike its previous laptops, it had the option to buy this laptop such that it came with a blank keyboard. "
"in accordance with this, natalie has not sanded its keyboard. "
"the framework 16 keyboard runs qmk, this is very nice. "
"in accordance with this, it has not sanded its keyboard, as it came blank to begin with. "
"the framework 16 keyboard runs qmk, this is very nice because it is unable to use keyboards normally. "
"the keyboard firmware is now hardcoded to be dvorak instead of using a custom console and xkb map. "
"on one hand this is nice because it means natalie does not need to edit xkb files to remap caps lock to control, but on the other hand if natalie plugs an external keyboard in to its laptop, it will be qwerty and natalie will have to load its xkb map or type in qwerty. it can probably type in qwerty. "
"on one hand this is nice because it means it does not need to edit xkb files to remap caps lock to control, but on the other hand if it plugs an external keyboard in to its laptop, it will be qwerty and this one will have to load its xkb map or type in qwerty. it can probably type in qwerty. "
"it needs to remember to finish its keyboard config at some point. also, it should make the button that breaks the keyboard until it removes it and put it back in harder to press."))
(section ()
(h2 () "irregular bugs")

View File

@ -2,8 +2,8 @@
(page "laptop (old)"
`((section ()
(h1 () "its old laptop")
(p () "see " (a (:href "/html/blog/posts/new-laptop.html") "blog post") (br) "and " (a (:href "/html/its-laptop.html") "updated page"))
(p () "currently, this one is using a T530 that has been heavily modified. "
(p () "this page no longer reflects reality. see " (a (:href "/html/its-laptop.html") "updated page"))
(p () "this one previously using a T530 that has been heavily modified. "
"it used to use a W530, but it fucked it up trying to install tianocore on it and it has not bothered to fix the bios on it yet. "
"it has preordered a framework 16 because it is the definition of that company's target audience. "
"since W530s and T530s are basically identical barring the mainboard, there is no external difference between its W530 and T530 because it just yoinked all the parts from the W530."
@ -29,9 +29,9 @@
"additionally, it has written a custom xkb file. unfortunately the geometry file hasn't been updated since it modded in the new keyboard, but here it is anyways:"
(br))
,(exec-command "img-caption \"/files/laptop-xkb-geometry.png\" \"its xkb geometry file compiled to a pdf\"")
(p () "disregard the fucked up escape key, it was messing with it earlier. this thing's keyboard isn't that notable beyond binding control to caps lock and binding the old control key to mode_switch. "
(p () "please disregard the fucked up escape key, it had been modifying the geometry file at some point. this one's keyboard isn't that notable beyond binding control to caps lock and binding the old control key to mode_switch. "
"additionally, when mode_switch is pressed while an alphabetic key is pressed, it types a greek letter instead.")
(p () "it run artix (for the anti systemd meme), though upon getting its framework it intends to switch to gentoo. "
(p () "it runs artix with openrc, though upon getting its framework it intends to switch to gentoo. "
"natalie uses i3 as its window manager with a somewhat cursed script to programmatically generate its config from a yaml file. "
"this script is vaguely necessary because:"
(ul ()
@ -42,7 +42,7 @@
(br)
(br)
(div (:class "code-container")
(div :class "io-container"
(div (:class "io-container")
(h3 () "input (yaml):")
(pre () (code () "
keybinds:
@ -64,7 +64,7 @@ mode b {
}
bindsym a mode a")))))
(p () "From the yaml config, natalie's python script can parse it either into a (really bad) graph of keybinds (using the graphviz library or something like that) or into a valid i3 config file. "
(p () "from the yaml config, natalie's python script can parse it either into a (really bad) graph of keybinds (using the graphviz library or something like that) or into a valid i3 config file. "
"in its real config, it has a mode 'base' which is the default mode with no keybinds other than mod4+space, followed by a mode 'space' reached by pressing mod4+space. "
"from 'space' mode, other modes may be accessed, such as 'workspaces or windows' mode, bound under w. "
"this gets rather absurd (intentionally so) very quickly. "

View File

@ -10,11 +10,18 @@
"despite this, it shall attempt a suitable description of itself.")
(br)
(p ()
"ideally, natalie is to be referred to as an \"it\" or a \"she\".",(exec-command "make-footnote \" the former is preferred.\"") "additionally, it generally prefers being referred to using 3rd person pronouns, or as \"this thing\" or \"that one\". it supposes it may reasonably be described as asexual. " (br)
"timezone it is in: PST/PDT" (br)
"ideally, natalie is to be referred to as an \"it\" or a \"she\".",(exec-command "make-footnote \" the former is preferred.\"") "additionally, it generally prefers being referred to using 3rd person pronouns, or as \"this thing\" or \"that one\". "
"natalie also uses the following identifiers, generally:"
(ol ()
(li () "6e6174b8-4dcb-4323-b5ca-c217425e13a7")
(li () "0x6e6174")
(li () "nat")
(li () "▖▖▖▖▘▖▖▖▖▘▌▖▖▖▘"))
"it supposes it may reasonably be described as a nonpracticing asexual, whatever that means. " (br)
"timezone it is in: PST/PDT(?) UTC-8" (br)
"age: $[echo $(( $(date +%s) - $(date -d \"2007-04-01\" +%s) ))] seconds. that is $[echo \"scale=8; ($(date +%s) - $(date -d '2007-04-01' +%s)) / (365.25*24*3600)\" | bc] [earth] years." (br)
"it is kind of a college student. this is complicated. it will be a college student with less complicated circumstances by fall of 2025, barring unforseen circumstances." (br)
"natalie likes systems. particularly ones that have reasonably consistent behavior based on a set of rules. this is omnipresent in its interests." (br)
"it is a student at portland community college. it resents this greatly, as experience has led it to conclude that educational instutions tend towards maximal inconvenience in all of its interactions with them." (br)
"it likes systems. particularly ones that have reasonably consistent behavior based on a set of rules. this is omnipresent in its interests." (br)
"list of its interests (incomplete):"
(ul ()
(li () "technical computer things, so long as they do not involve javascript")
@ -31,22 +38,74 @@
"things that it finds displeasing:"
(ul ()
(li () "grease or oil on its skin")
(li () "non friend people")
(li () "non friend people",(exec-command "make-footnote 'robots are ok, though'"))
(li () "ultraviolet radiation")
(li () "busywork")))
,(exec-command "put-footnotes"))
(section ()
(h2 () "technical specifications")
(h3 () "environmental conditions")
"natalie is not to be operated for significant periods of time in temperatures below -5c or above 35c. "
"for optimal functionality, natalie should be operated between 5c and 17c."
(br)(br)
(span ()
"natalie is rated for use in atmospheres containing at least 20% oxygen. "
"non-oxygen components of any atmosphere natalie is operating within should be primarily (~78%) nitrogen, with the remaining components being a mixture of other inert gasses, CO<sub>2</sub>, and methane. "
"CO<sub>2</sub> concentrations in natalie's environment should not exceed 5000ppm, in accordance with OSHA. "
"natalie is rated to operate within atmospheric pressures ranging from 70 kpa to 253 kpa. "
"natalie is not rated for acceleration exceeding 4gs. conversely, it should not be operated in low gravity environments for long periods of time.")
(h3 () "anthropromorphic measurements")
(div (:style "display: grid; grid-template-columns: 1fr 1fr")
(div () "height:")
(div () "172.72cm")
(div () "bideltoid:")
(div () "41.30cm")
(div () "shoulder circumference:")
(div () "92.44cm")
(div () "waist circumference:")
(div () "54.15cm - 61.69cm")
(div () "hip circumference")
(div () "88.39cm")
(div () "underbust circumference:")
(div () "66.31cm")
(div () "bust circumference:")
(div () "75.86cm")
(div () "inseam:")
(div () "79.45cm"))
(h3 () "favorite color")
"teal")
(section ()
(h2 () "somewhat irregular natalie facts")
(ul ()
(li () "it owns 12 thinkpads, all of which were manufactured prior to 2014")
(li () "the number of people that can effectively use its computer is, to its knowledge, 1 (natalie)" ,(exec-command "make-footnote \"the number of people it knows who can type on it is 3, including itself\""))
(li () "it can replace the screen on its first generation iphone se a1662 in 70 seconds"))
(li () "the number of people that can effectively use its computer is, to its knowledge, 1 (natalie)" ,(exec-command "make-footnote \"the number of entities it knows who can type on it is 3, including itself\""))
(li () "it can replace the screen on its first generation iphone se a1662 in under 70 seconds"))
,(exec-command "put-footnotes"))
(section ()
(h2 () "contact information")
(a (:href "/html/discord.html") "discord: _natalieeee_")
"email: natalie at natalieee.net" (br)
"xmpp: nat@natalieee.net")
(a (:href "/html/discord.html") "discord: 0x6e6174")
"E-mail (sorted by normality): natalie at natalieee.net, natalie-roentgen-connolly at mail.natalie-roentgen-connolly.website, natalie at 1.b.1.0.b.0.0.0.0.7.4.0.1.0.0.2.ip6.arpa" (br)
"xmpp: nat@natalieee.net" (br)
(span () "mastodon: <a href='https://mastodon.catgirl.cloud/@0x6e6174'>@0x6e6174@mastodon.catgirl.cloud</a>") (br)
"it has a matrix account, however it hates matrix, so it will not say what its matrix account is. of any, e-mail will be the most reliable of these.")
(section ()
(h2 () "cryptography")
(blockquote () "ssh:" (br) "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOs2VLWgMxmQlLFSpOG01v6i5pVLtgHyQg74nwNNYTlT natalie@natalieee.net")
(blockquote () "pgp:" (br) (pre () "-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEZyF+dhYJKwYBBAHaRw8BAQdAuh3EVhqODqs4DQasm/jUILG+4cNj0Q3Gb8SI
TEhqNNu0PW5hdGFsaWUgcm9lbnRnZW4gY29ubm9sbHkgKGJlZXAgYm9vcCkgPG5h
dGFsaWVAbmF0YWxpZWVlLm5ldD6ImQQTFgoAQRYhBJo0/NsX3ToM9ZBiC6HD1we8
+QjlBQJnIX52AhsDBQkDwmcABQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJ
EKHD1we8+Qjl0VYBAKrJtKM2bJj6hsU+kTt8HXxDNdCY37eSL6GxzQ4fGBqJAP9N
uysVDyyFVL7HOkUa3XbNFkxgSNNfDSXnyXG1/JnZDrg4BGchfnYSCisGAQQBl1UB
BQEBB0CebBBPcowxbCbOIAM9aJAe2kHbNZ4bIxZT7klRjf0+WgMBCAeIfgQYFgoA
JhYhBJo0/NsX3ToM9ZBiC6HD1we8+QjlBQJnIX52AhsMBQkDwmcAAAoJEKHD1we8
+QjldDoBAIj3f2uA6AWu08lWSBkEDKrzKMduShD/Pv8jvDyznHvHAP0VskOMQSFg
9MBrwZ+7azZzgnCs2FSiZvHJW7HTo4v9Bw==
=TuHi
-----END PGP PUBLIC KEY BLOCK-----"))
(blockquote () "age:" (br) "age1yf3qaerdtzhxkhwxrzat9jp5e4ru97cqp5hl2xtwt2g8fn5zmpqsnxr7pn"))
(section ()
(h2 () "some of its computers")
(p () "it owns many computers, none of them are normal. particularly notable instances of this phenomenon will be noted below:")

View File

@ -1,6 +1,6 @@
(defun html ()
(page "natalie \"thoughts\"" `((section ()
(h1 () "arbitrary thoughts generated by natalie")
"it is bad lat thinking of things to make blog posts for. this webpage might contain things that it would put in a blog post if it was more proficient at writing filler. it might also contain other things.")
"it is bad at thinking of things to make blog posts for. this webpage might contain things that it would put in a blog post if it was more proficient at writing filler. it might also contain other things.")
,(exec-command "for file in ./html/thoughts/*; do echo $(grep DATE $file | awk '{print $3 $4}') $file; done | sort -k1,1 -r | cut -d' ' -f2 | while read -r file; do echo \"<section><details id='$(basename $file)'><summary>$(grep '^<!-- DATE:' $file | sed 's/^<!-- DATE: //; s/-->$//; s/.$//'): $(grep '^<!-- TITLE:' $file | sed 's/^<!-- TITLE: //; s/-->$//')</summary><div class=thought>$(include $file)</details></section>\"; done"))))

View File

@ -15,10 +15,10 @@
"(it hope this means there will be less lead in the water when they are done, but given how the district is, who knows.) "
"the current campus is notably smaller than the regular campus, thus a large amount of things are in storage. "
"the man who is in charge of the storage and moving stored items back to the new campus does not like moving items. "
"for this reason, when it ask him to let it in to the school's basement to just take random cool things, he says yes.")
"for this reason, when it asks him to let it in to the school's basement to just take random cool things, he says yes.")
(h2 () "it is kind of horrible that this thing has this server")
(p ()
"this server used to be part of the district's network infrastructure.
when natalie got it, it had an unencrypted raid array on the disks that contained district information.
it should not have been stored like this, and natalie definitely should not have been allowed to take it.
natalie did of course wipe the drives and didn't even look at what was on them beyond identifying that it was from the district because it is a good {thing}.")))))))
it should not have been stored like this, and this one definitely should not have been allowed to take it.
it did of course wipe the drives and didn't even look at what was on them beyond identifying that it was from the district because it is a good {thing}.")))))))

View File

@ -18,7 +18,8 @@
(p () "requests to /(.*\\.)?natalieee.net/ get routed to nginx, which acts as a proxy for various subdomains. "
"nginx routes requests to /^natalieee.net/ to this webserver, which is named "
(a (:href "https://git.natalieee.net/nat/sludge") "sludge") ". "
"requests to /.*\\.natalieee.net/ are routed according to the /.*\\.natalieee.net/ section."))
"requests to /.*\\.natalieee.net/ are routed according to the /.*\\.natalieee.net/ section.")
(p () "note: <a href=\"http://natalieee.net.1.b.1.0.b.0.0.0.0.7.4.0.1.0.0.2.ip6.arpa\">natalieee.net.1.b.1.0.b.0.0.0.0.7.4.0.1.0.0.2.ip6.arpa</a> is a CNAME to natalieee.net"))
(section ()
(h2 () "/^natalieee.net/")
(p () "the root domain of this website, which you are currently observing, is running sludge. "
@ -52,11 +53,8 @@
"you may observe this "
(a (:href "?uwu=true") "here") "."))
(section ()
(h2 () "webocodynamics of natalieee.net")
(p ()
"the means by which this website runs involves an unreasonable number of symlinks. here is a textual description of a graph of them:")
(pre ()
(code ()
@ -71,7 +69,7 @@
"the answer to such a question is that sludge runs with a working directory of ~/site, but scripts in ~/site/scripts must be able to import files from ~/sludge (specifically ~/site/scripts/include). "
"htmlgen needs to be able to read scripts in ~/site/scripts to run commands at compile time. htmlgen writes html to ~/htmlgen/out, thus the double symlink to ~/site. "
"technically, this could all be done without symlinks. this is vaguely more robust because in the event that natalie moves something, it simply need to change the symlinks instead of the paths in arbitrarily many files. "
"nevertheless" ,(exec-command "make-footnote \"nevertheless is a stupid work\"") ", the number of symlinks is amusing.")
"nevertheless" ,(exec-command "make-footnote \"nevertheless is a stupid word\"") ", the number of symlinks is amusing.")
,(exec-command "put-footnotes"))
(section ()
@ -80,5 +78,6 @@
(li () ,(exec-command "make-link https://git.natalieee.net") ": Gitea instance. You may use it if you feel so inclined for some reason. it vaguely advises against this.")
(li () "dns.natalieee.net" ": Pointless CNAME record to its main domain so that entities using its dns (once a number greater than 0!) can put dns.natalieee.net down as their nameserver instead of natalieee.net.")
(li () "mpd.natalieee.net: mpd server that its friend asked it to create. it can probably be bothered in to giving arbitrary people credentials if they for some reason wish to listen to the music that it is listening to in such a roundabout way")
(li () ,(exec-command "make-link https://files.natalieee.net") ": a slightly worse and personal 0x0.st-like server. created because it was annoyed by discord's upload limit."))))))
(li () ,(exec-command "make-link https://files.natalieee.net") ": a slightly worse and personal 0x0.st-like server. created because it was annoyed by discord's upload limit.")
(li () ,(exec-command "make-link https://status.natalieee.net") ": <a href='https://git.osmarks.net/osmarks/onstat'>osmarks status thingy</a>. runs on the server that runs <a href='https://puppygirl.systems'>puppygirl.systems</a>"))))))

View File

@ -0,0 +1,13 @@
(defun html ()
(page "$[test \"$(echo '{' 'thought' '}' | sed 's/ //g')\" != '{thought}' && echo '{thought}' || echo thoughts index]"
`(section ()
"$[echo > /tmp/footnote_count]"
(h1 (:style "display: $[test \"$(echo '{' 'thought' '}' | sed 's/ //g')\" != '{thought}' && echo block || echo none]") "$[cat ./html/thoughts/$(basename '{thought}') | grep '<!-- TITLE:' | sed 's/<!-- TITLE://; s/-->//']")
(div (:style "justify-content: space-between; align-items: center; display: $[test \"$(echo '{' 'thought' '}' | sed 's/ //g')\" != '{thought}' && echo flex || echo none;]")
(p () "$[cat ./html/thoughts/$(basename '{thought}') | grep '<!-- DATE:' | sed 's/<!-- DATE://; s/-->//']")
(p () "categories: $[cat ./html/thoughts/$(basename '{thought}') | grep '<!-- CATEGORIES: ' | sed 's/<!-- CATEGORIES: //; s/-->//' | awk -F';' '{ for (i=1; i<=NF; i++) { sub(/^ +| +$/, \"\", $i); if ($i != \"\") printf \"<a href=\\\"?filter-category=%s\\\">%s</a>, \", $i, $i } }' | sed 's/, $//']"))
"$[test \"$(echo '{' 'thought' '}' | sed 's/ //g')\" != '{thought}' && echo '<br>' || true]"
(div () "$[include \"./html/thoughts/$(basename '{thought}')\"]")
"$[test \"$(echo '{' 'thought' '}' | sed 's/ //g')\" != '{thought}' || echo '<h1>posts:</h1>']"
"$[test \"$(echo '{' 'filter-category' '}' | sed 's/ //g')\" != '{filter-category}' || test \"$(echo '{' 'thought' '}' | sed 's/ //g')\" != '{thought}' || (ls ./html/thoughts | while read -r file; do echo \"<div>$(cat ./html/thoughts/$file | grep '<!-- DATE:' | sed 's/<!-- DATE://; s/-->//') <a href=?thought=$file>$(cat ./html/thoughts/$file | grep '<!-- TITLE:' | sed 's/<!-- TITLE://; s/-->//')</a><br>categories: $(cat ./html/thoughts/$file | grep '<!-- CATEGORIES: ' | sed 's/<!-- CATEGORIES: //; s/-->//' | awk -F';' '{ for (i=1; i<=NF; i++) { sub(/^ +| +$/, \"\", $i); if ($i != \"\") printf \"<a href=\\\"?filter-category=%s\\\">%s</a>, \", $i, $i } }' | sed 's/, $//')</div>\"; done | sort --numeric --reverse)]"
"$[test \"$(echo '{' 'filter-category' '}' | sed 's/ //g')\" != '{filter-category}' && test \"$(echo '{' 'thought' '}' | sed 's/ //g')\" != '{thought}' || (ls ./html/thoughts | while read -r file; do grep '<!-- CATEGORIES: ' ./html/thoughts/$file | grep '{filter-category}' && echo \"<div>$(cat ./html/thoughts/$file | grep '<!-- DATE:' | sed 's/<!-- DATE://; s/-->//') <a href=?thought=$file>$(cat ./html/thoughts/$file | grep '<!-- TITLE:' | sed 's/<!-- TITLE://; s/-->//')</a><br>categories: $(cat ./html/thoughts/$file | grep '<!-- CATEGORIES: ' | sed 's/<!-- CATEGORIES: //; s/-->//' | awk -F';' '{ for (i=1; i<=NF; i++) { sub(/^ +| +$/, \"\", $i); if ($i != \"\") printf \"<a href=\\\"?filter-category=%s\\\">%s</a>, \", $i, $i } }' | sed 's/, $//')</div>\"; done | sort --numeric --reverse)]")))

View File

@ -6,7 +6,14 @@
"page compiled at " ,(exec-command "date +%s"))
,(exec-command "include files/88x31/natalieee.net.html")
(div ()
(footnote (:style "margin-top: 5px") "all content, with the exception of 88x31 buttons or unless otherwise noted is created by me and is licensed under a CC BY-NC-SA 4.0 license."))
(footnote (:style "margin-top: 5px") "all content, with the exception of 88x31 buttons or unless otherwise noted is created by natalie and is licensed under a CC BY-NC-SA 4.0 license."))
(a (:href "https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en")
(img (:src "/files/by-nc-sa.png" :alt "license 88x31" :width "88" :height "31")))))
(img (:src "/files/by-nc-sa.png" :alt "license 88x31" :width "88" :height "31")))
(footnote (:style "margin-top: 5px") "▖▖▖▖▘▖▖▖▖▘▌▖▖▖▘"
(div (:style "flex-direction: row; width: 14ch; gap: 1ch; margin-right: 5px;")
(a (:href "https://stellophiliac.github.io/roboring/0x6e6174/previous") "<-")
(a (:href "https://stellophiliac.github.io/roboring") "roboring")
(a (:href "https://stellophiliac.github.io/roboring/0x6e6174/next") "->")))
(div ())
(noscript () (footnote () "oh good, the reader has javascript disabled."))))

View File

@ -7,6 +7,7 @@
(meta (:http-equiv "content-type" :content "text/html; charset=utf-8"))
(meta (:name "viewport" :content "width=device-width, initial-scale=1"))
(link (:rel "stylesheet" :href "/style.css"))
(link (:rel "me" :href "https://mastodon.catgirl.cloud/@0x6e6174"))
(title () ,title))
(body ()
,(header)