Compare commits

...

2 commits

29 changed files with 375 additions and 309 deletions

View file

@ -1,3 +1,14 @@
24/12/2023
- published about sections
TODO:
- modify publish script to ensure rollback on failure
- create update script to publish updates to existing posts
21/12/2023
- broke "about" into smaller sections and linked from "/"
- removed "about" from header - now just [settled | unsettled | feed]
- added "now" and "this" sections and linked from "/"
10/12/2023 10/12/2023
- added resource/index builder to publish script - added resource/index builder to publish script

1
.gitignore vendored
View file

@ -4,3 +4,4 @@ sorrel/**
deploy-dir/** deploy-dir/**
tool/** tool/**
publish-test/** publish-test/**
compiled/**

20
.idea-log Normal file
View file

@ -0,0 +1,20 @@
24/12/2023
- posted:
- this
- now
- about
- contact
- very-earnest-disclaimer
21/12/2023
- beginning latl effectively finished and ready for post once ci is fixed
- projects to write about
- input-messenger
- there-is-something-inside-me-that-has-no-name
- cnc
- blogs to write
- conlanging tools
- latl primitives
- latl execution model
- thoughts on clj?
- some media crit?

52
archive/about.txt Normal file
View file

@ -0,0 +1,52 @@
(section
(h2 "a λ.functional λ.gay")
(p "i'm a gay lil nerd who's learning everyday about community, and ecology,
and computer; and trying hard to be good for the world with my gay lil
friends")
(p "i was named after "
(a ((href "https://plants.usda.gov/home/plantProfile?symbol=OXOR"))
"a plant called sorrel")
" and i live in the mountains of southern appalachia on "
(span ((lang "chr")) "ᏣᎳᎩ")
" (tsalagi/cherokee) land. i live with some cats and a whole mess of plants
(most of them food) and a cordswain and i have sweet neighbors")
(p
"i have never identified with the term 'hacker' but i have learned, in the
past few years, that i do like to orchestrate computer machines and i do
that with some cute friends at "
(a ((href "https://bunk.computer"))
"bunk computer club"))
(p "some random things i believe/ i like/ i am/etc (in no particular order")
;; about me bullets
(ul
;; language bullet
(li (p "i like linguistics a whole lot. "
(span
((class "hx-target"))
(a ((href "/tagged/conlang")
(hx-get "/hx/tagged/conlang")
(hx-target "closest span.hx-target")
; swap for a tag? just a lil list inside a list?
(hx-swap "innerHTML"))
"i make languages (the human kind) for fun."))
" there's a whole bunch of people who do this! "
(a ((href "https://conlang.org/"))
"the language creation society")
" i'm even working on a "
(span
((class "hx-target"))
(a ((href "/tagged/latl")
(hx-get "/hx/tagged/latl")
(hx-target "closest span.hx-target")
(hx-swap "innerHTML"))
"language (computer) to make languages (human)"))))
;; mmt bullet
(li (p "mmt, but make it anarchist "
(small "and get rid of all that \"sovereignty\" stuff, ew")))
;; neuroqueer bullet
(li (p "got a spicy brained, trans lady-fied experience.
i have feelings about these things that inevitably weave thru
my projects and art and all that"))
;; art bullet
(li (p "i used to make a lot more visual art than i do these days. some
sort of smth'll wind up here at some point"))))

12
archive/contact.txt Normal file
View file

@ -0,0 +1,12 @@
(section
(h2 "contact")
(p "e-m-"
(span "a-i")
(span "-l [ at ")
(span "] s-o-")
(span "r-r-e-l [ d o")
(span "t ] d-e")
(span "-v is a good place to do the email"))
(p
"i have avoided 'online' for a long time, but i'm getting hip to it. i'm
on the big mastodon server @oxaliq"))

39
archive/now.txt Normal file
View file

@ -0,0 +1,39 @@
(section
(hgroup
(h2 "now")
(p "a snapshot of the (mostly) non-computer things of import"))
(section
(hgroup
(h3 "read")
(p "stuff i'm taking in"))
(ul (li "the paying guests, sarah waters")
(li "females, andrea long chu")
(li "palo alto, malcolm harris")
(li "high pitched and moist, tami t")
(li "desolation's flower, ragana")
(li "salesforce, lauren bousfield")
(li "el mal querer, rosalía")
(li "guacamelee, drinkbox")))
(section
(hgroup
(h3 "eval")
(p "stuff i'm crunching on"))
(ul (li "playing more go")
(li "winter garden chores")
(li "starting a community maker space")
(li "going on more hikes")
(li "body stuff")))
(section
(hgroup
(h3 "print")
(p "stuff i'm putting out"))
(ul (li "fun leatherwork")
(li "fun woodwork")
(li "relearning how to draw")))
(section
(hgroup
(h3 "loop")
(p "stuff what's on the horizon"))
(ul (li "being in the northeastern us")
(li "putting my labor on the market")
(li "maybe making some music again?"))))

42
archive/this.txt Normal file
View file

@ -0,0 +1,42 @@
(section
(hgroup
(h2 "how this site")
(p "some kind of colophon"))
(p
"all of the code for the website is hosted and deployed from tree, "
(a ((href "https://git.bunk.computer/oxaliq/sorrel.dev"))
"bunk computer club's git forge")
"i do almost everything in the main branch, cause it's just me and that way
i can add links below to the in-progress stuff real easy")
(p
"first, this website doesn't do anything to know who you are or anything.
this website is a ~20MB binary and some static resources. it is built
primarily with "
(a ((href "https://docs.racket-lang.org/web-server/"))
"racket web-server"))
(p
"this website serves ~46kB of javascript in the form of "
(a ((href "https://htmx.org/"))
"the htmx library (minified.)")
" i don't love serving minified code. forking the library and removing
features that are of no use to me is on the agenda for 2024")
(p
"everything here is hosted on turtle, "
(a ((href "https://wiki.bunk.computer/hypha/servers"))
"bunk computer club's shared application server"))
(p
"there's some racket scripts i use for tooling that were made with "
(a ((href "https://docs.racket-lang.org/cli/"))
"#lang cli"))
(p (a ((href "https://git.bunk.computer/oxaliq/sorrel.dev/src/branch/main/.dev-log"))
"you can read about development here"))
(p (a ((href "https://git.bunk.computer/oxaliq/sorrel.dev/src/branch/main/.idea-log"))
"you can read about my vague plans here"))
(p (a ((href "https://git.bunk.computer/oxaliq/sorrel.dev/src/branch/main/in-progress"))
"or read works in progress here"))
(p
"the image in the header is a crop of the work "
(em "'Oxalis acetosella', Otto Wilhelm Thomé (1885)")
" run through a generation tool on "
(a ((href "https://www.asciiart.eu/"))
"this ascii art archive")))

View file

@ -0,0 +1,26 @@
(section
(h2 "a very earnest disclaimer")
(p
"i like to talk about computation with ppl! but it is important for me that
you know: i am new to all this! i did not think computers or software were
^for me^ and then i had to get good at spreadsheets at my first email-factory
job and then i got curious about webdev and now i have reached terminal
velocity down a very λ.particular.rabbit[hole]")
(p
"i think computation is both fascinating on its own terms and as a substrate
for pro-social infrastructure. i am motivated to work on projects that
engage with this possiblity")
(p
"i'm not very good at many things. i don't even have a math education or a
degree in anything. have you ever met someone who *is* good at _all_ ^this^
~stuff~ ???")
(p
"i like thinking in public, but please be patient! with me and with
everyone else you talk about things you care about with")
(p "let's hold our strong opinions loosely!")
(p "and first assume good faith from each other!")
(br)
(br)
(p ((class "ascii but-normal-size"))
" ⃔‥̺⃝⃕")
(br))

View file

@ -1,2 +1,8 @@
title,link,summary,published,updated title,link,summary,published,updated
Beginning LATL,https://sorrel.dev/unsettled/1,beginning the process of thinking through an environment for conlanging and other language shenanigans,2023-12-04T15:20:53 now,https://sorrel.dev/now,what the author of this site is up to,2023-12-24T19:45:57
contact,https://sorrel.dev/contact,how to talk to sorrel,2023-12-24T19:45:11
disclaimer,https://sorrel.dev/very-earnest-disclaimer,a very earnest disclaimer,2023-12-24T19:43:23
this,https://sorrel.dev/this,the site this bitch made,2023-12-24T19:41:47
about,https://sorrel.dev/about,the bitch who made this site,2023-12-24T19:15:34
about,https://sorrel.dev/about,the bitch who made this site,2023-12-24T19:11:35
Beginning LATL,https://sorrel.dev/unsettled/1,beginning the process of thinking through an environment for conlanging and other language shenanigans,2023-12-04T15:20:53

1 title,link,summary,published,updated
2 Beginning LATL,https://sorrel.dev/unsettled/1,beginning the process of thinking through an environment for conlanging and other language shenanigans,2023-12-04T15:20:53 now,https://sorrel.dev/now,what the author of this site is up to,2023-12-24T19:45:57
3 contact,https://sorrel.dev/contact,how to talk to sorrel,2023-12-24T19:45:11
4 disclaimer,https://sorrel.dev/very-earnest-disclaimer,a very earnest disclaimer,2023-12-24T19:43:23
5 this,https://sorrel.dev/this,the site this bitch made,2023-12-24T19:41:47
6 about,https://sorrel.dev/about,the bitch who made this site,2023-12-24T19:15:34
7 about,https://sorrel.dev/about,the bitch who made this site,2023-12-24T19:11:35
8 Beginning LATL,https://sorrel.dev/unsettled/1,beginning the process of thinking through an environment for conlanging and other language shenanigans,2023-12-04T15:20:53

View file

@ -1 +1,6 @@
id,headline,description,history-> id,headline,description,history->
now,now,what the author of this site is up to,2023-12-24T19:45:57
contact,contact,how to talk to sorrel,2023-12-24T19:45:11
very-earnest-disclaimer,disclaimer,a very earnest disclaimer,2023-12-24T19:43:23
this,this,the site this bitch made,2023-12-24T19:41:47
about,about,the bitch who made this site,2023-12-24T19:15:34

1 id headline description history->
2 now now what the author of this site is up to 2023-12-24T19:45:57
3 contact contact how to talk to sorrel 2023-12-24T19:45:11
4 very-earnest-disclaimer disclaimer a very earnest disclaimer 2023-12-24T19:43:23
5 this this the site this bitch made 2023-12-24T19:41:47
6 about about the bitch who made this site 2023-12-24T19:15:34

View file

@ -1,3 +1,2 @@
tags,-> tags,->
latl,unsettled/1 about,root/now,root/contact,root/very-earnest-disclaimer,root/this,root/about
conlang,unsettled/1

1 tags tags,-> ->
2 latl about,root/now,root/contact,root/very-earnest-disclaimer,root/this,root/about unsettled/1
conlang unsettled/1

View file

@ -3,30 +3,29 @@
(p (p
"a little introduction to a project i started thinking about in early 2020, "a little introduction to a project i started thinking about in early 2020,
as i was learning how to do web development and wanted to try my hand at as i was learning how to do web development and wanted to try my hand at
combining some hobbies.") combining some hobbies")
(section (p (a ((href "#the-point")) "skip the story and get to the point"))
(section ((id "the-story"))
(hgroup (hgroup
(h2 "what even is this?") (h2 "what even is this?")
(p (em "of linguistics and hubris.")) (p (em "a story of linguistics and hubris"))
(hr)) (hr))
(p (p
"so, when i was a wee little child, i discovered language. i was one of "so, when i was a wee little child, i discovered language. like, most
those kids who picked up reading real quick (like before i could form wee little children discover language, but some wee little children
memories) and just have always been fascinated by what those words and get given the lord of the rings when they're ten or something and get
symbols do. like, most wee little children discover language, but some into the narrative and the characters, sure. but those appendices....
wee little children get given the lord of the rings when they're ten or there's .. a language here? called quenya? and it's written in this
something and get into the narrative and the characters, sure. but script? called tengwar? and there's a related language, sindarin? and
those appendices.... there's .. a language here? called quenya? and this tolkien guy just made all this up? ")
this tolkien guy just made this up? "
(small "this is not in fact how i talked as a child, just go with me."))
(p (p
"so, i did the precocious kid thing and said to myself \"if this dead "so, i did the precocious kid thing and said to myself \"if this dead
british weirdo (who's like really into the concept of royalty) can british weirdo (who's like really into the concept of royalty) can
make a whole new language, then surely i can to.\"") make a whole new language, then surely i can too\"")
(p (p
"i did not, in fact, make a language. i made a relex of the language i "i did not, in fact, make a language. i made a relex of the language
already spoke (my own peculiar idiolect of u.s. english,) but we all i already spoke (my own peculiar idiolect of u.s. english,) but we all
gotta start somewhere." ) gotta start somewhere" )
(p (p
"for a long time the internet to me was mostly " "for a long time the internet to me was mostly "
(a ((href "https://listserv.brown.edu/archives/conlang.html")) (a ((href "https://listserv.brown.edu/archives/conlang.html"))
@ -38,52 +37,55 @@
never interacted with ppl much. i was a kid and the ppl in there never interacted with ppl much. i was a kid and the ppl in there
really knew their stuff, and i never much felt comfy with the idea really knew their stuff, and i never much felt comfy with the idea
of being just " of being just "
(em "in public") " on the internet like that.") (em "in public") " on the internet like that")
(p (p
"anyway i got better at making languages and learning about how "anyway i got better at making languages and learning about how
language works, and it's just been a (at times more consistent, at language works, and it's just been a (sometimes more consistent, at
times less) hobby of mine for most of my life.") times less) hobby of mine for most of my life")
(p (p
"flash forward to a few years ago, i'm working on a language that has "flash forward to a few years ago, i'm working on a language that has
turned into the passion project that i've spend the majority of my turned into the passion project that i've spend the majority of my
conlanging on and i'm getting frustrated with my tools. i want to do conlanging on and i'm getting frustrated with my tools. other
more complex, phonological-feature-aware, sound change rules; i want conlangers have made some really cool tools that i've used forever,
a tighter feedback loop; i want to see how a derivational pattern at but i wanted to change my workflow. i wanted to do more complex,
one stage in a parent form of a language branches out or collapses phonological-feature-aware, sound change rules; i wanted diachroinc
into different derivational patterns in a child language.") tooling for morhposyntactic bits of my languages; i wanted a tighter
feedback loop between defining some changes, or lexical items, or
whathave you, and seeing the results; i wanted to see how a
derivational pattern at one stage in a parent form of a language
branches out or collapses into different derivational patterns in a
child language")
(p (p
"all was not well in my conlanging.") "all was not well in my conlanging")
(p (p
"i would need to " (strong "do some programming.")) "i would need to " (strong "do some programming"))
(p (p
"the thing is, i had just learned javascript. (it was a tech bootcamp. "the thing is, i had just learned javascript. i had built a few
someday i'll talk about my ~feelings~ about ~that~, but not here, not little toy web apps, and i was not ready to execute on a vision
now.) i had built a few little toy web apps, and i was not ready to for a multi-purpose conlanging tool that was beginning to take shape in my head")
execute on a vision for a multi-purpose conlanging tool that was (p "i tried anyway")
beginning to take shape in my head.")
(p "i tried anyway.")
(p "and i made " (p "and i made "
(a ((href "settled/1")) (a ((href "settled/1"))
"a bad first draft of a sound change tool.")) "a bad first draft of a sound change tool"))
(p (p
"there's an ebnf grammar in that project somewhere! the hubris i "there's an e-bnf grammar in that project somewhere! the hubris i
had then, to think i could make a little javascript-backed had then, to think i could make a little javascript-backed
language tool with all of the bells and whistles i needed! with language tool with all of the bells and whistles i needed! with
the knowledge that i had then! (or more accurately, didn't have)") the knowledge that i had then! (or more accurately, didn't have)")
(br) (br)
(p "but now...")) (p "but now..."))
(section (section ((id "the-point"))
(hgroup (hgroup
(h2 "reviving this project") (h2 "reviving this project")
(p (em "whatcha gonna do sorrel?")) (p (em "whatcha gonna do sorrel?"))
(hr)) (hr))
(p "i'm still not ready.") (p "i'm still not ready")
(p (p
"but at least, today i'm forgoing bells and whistles for "but at least, today i'm forgoing bells and whistles for
execution models. core abstractions. experience using " execution models. core abstractions. experience using "
(a ((href "https://racket-lang.org")) (a ((href "https://racket-lang.org"))
"a (programming) language-oriented programming language") "a (programming) language-oriented programming language")
" maybe. there's a lot to think about.") " maybe. there's a lot to think about")
(p (p
"so, i'm going to try reviving this project. or, more accurately, "so, i'm going to try reviving this project. or, more accurately,
reimagining this project. from the little sound change tool that reimagining this project. from the little sound change tool that
@ -93,7 +95,7 @@
all of their language nerding problems in one runtime, with an all of their language nerding problems in one runtime, with an
extensible and reflective interface. and which is written in such extensible and reflective interface. and which is written in such
a way, with the appropriate abstractions, that lanuage nerdy a way, with the appropriate abstractions, that lanuage nerdy
hackers can hack their own tools on top of it.") hackers can hack their own tools on top of it")
(p (p
"and i'm going to be doing " "and i'm going to be doing "
(a ((href "https://www.recurse.com/")) (a ((href "https://www.recurse.com/"))
@ -101,7 +103,7 @@
" about it. i'll spend some full-time programming days making a " about it. i'll spend some full-time programming days making a
goofy little thing for goofy little language nerds surrounded by goofy little thing for goofy little language nerds surrounded by
goofy programming nerds doing whatever rad things they happen goofy programming nerds doing whatever rad things they happen
to be getting up to when i happen to be there.") to be getting up to when i happen to be there")
(p (p
"like many of the communities i am a part of, i am a quiet part of "like many of the communities i am a part of, i am a quiet part of
the conlanging community. so, we'll see how this goes. maybe it the conlanging community. so, we'll see how this goes. maybe it
@ -110,7 +112,7 @@
about designing and building a tool of the type that i'm designing about designing and building a tool of the type that i'm designing
and building. hoooopefully it is helpful in a way to other and building. hoooopefully it is helpful in a way to other
conlangers such that it evolves beyond what i could do on conlangers such that it evolves beyond what i could do on
my own (cause i ain't no whiz kid 10x programmer.)") my own (cause i ain't no whiz kid 10x programmer)")
(p (p
"but that's all me getting ahead of myself (as is often my wont.) "but that's all me getting ahead of myself (as is often my wont.)
first! to pack for the trip!")) first! to pack for the trip!"))
@ -126,7 +128,9 @@
here's the very start of the thinking-in-public. each of these here's the very start of the thinking-in-public. each of these
little thoughts is going to get at least it's own writeup (if not little thoughts is going to get at least it's own writeup (if not
several) and i'll update with additional sections and links to several) and i'll update with additional sections and links to
the writeups as i go.") the writeups as i go. a note: it would be impossible for me (and
probably most ppl) to create the full vision in the time i'll be
working on it fulltime")
(section (section
(h3 "notes on the goals") (h3 "notes on the goals")
(p (p
@ -146,7 +150,7 @@
by phonological transformations. users of the tool should be by phonological transformations. users of the tool should be
able to edit their work and see the consequences of their changes able to edit their work and see the consequences of their changes
quickly. hopefully, this can all happen on the web, i guess, quickly. hopefully, this can all happen on the web, i guess,
cause ppl like using their browser as the everything app. ") cause ppl like using their browser as the everything app"))
(section (section
(h3 "notes on existing tools") (h3 "notes on existing tools")
(p (p
@ -154,7 +158,7 @@
conlangers or made for professional linguists and used by conlangers or made for professional linguists and used by
conlangers or just yr regular old spreedsheets and such. i'm conlangers or just yr regular old spreedsheets and such. i'm
going to be doing some research about how conlangers do their going to be doing some research about how conlangers do their
conlanging, lest this truly be a just-for-me type project.")) conlanging, lest this truly be a just-for-me type project"))
(section (section
(h3 "notes on primitives") (h3 "notes on primitives")
(p (p
@ -165,23 +169,52 @@
below the level of \"lexeme\" or \"phoneme\" to have something below the level of \"lexeme\" or \"phoneme\" to have something
abstract that can apply to both. i'm not going to get into abstract that can apply to both. i'm not going to get into
specifics even a little bit at this point-you'll have to stay specifics even a little bit at this point-you'll have to stay
tuned for more."))) tuned for more"))
(section (section
(h3 "notes on execution model") (h3 "notes on execution model")
(p (p
"this is going to be some crunchy computer language stuff. i'm "this is going to be the crunchiest stuff to think about. i'm
going to make some arguments for some things that (it is my going to make some arguments for some things that (it is my
belief) fall out of these goals. things like dynamic typing. belief) fall out of these goals. things like dynamic typing.
things like reflectivity (this is sooo important it gets its things like reflectivity (this is sooo important it gets its
own section.) things like lazy evaluation (because languages own section.) things like lazy evaluation (because languages
are big and sometimes you only want to look at a subset of a are big and sometimes you only want to look at a subset of a
language.) means of combination: propositions.") language.) there's also some hypothetical notions that will
require some experiments to determine applicability to the
project. i'm just going to list them as questions and not
expound upon or defend their existence as questions here:
propositions as a means of combination? propagation networks
as primitives?"))
(section (section
(h3 "notes on reflectivity and interaction")) (h3 "notes on reflectivity and interaction")
(p
"this is so important! i want conlangers to use this tool to
iterate and that requires ~something like a REPL~ in a
dynamic environment. my dream is to have a bidirectional
flow of information; whereby a user of the system can define
some rules about their language, evaluate those rules on some
data in an interpreter, inspect those data, modify those data
and run the interpreter such that it produces possible rules
that would yield the new result. wether or not that experience
results from the project, users should be able to rebind
anything their project needs *at runtime*"))
(section (section
(h3 "notes on portability")) (h3 "notes on portability")
(p
"as the project develops i will have to give some thought to
how to make it available to conlangers with different kinds
of computation experience. the ideal would be for a full
featured web implementation that interoperates with hosted
implementations, but we'll see"))
(section (section
(h3 "notes on the substratum (racket?)"))) (h3 "notes on the substrate")
(p
"not a lot to say here. i will begin this project in racket
because i have some familiarity with it and it is
specifically built for developing languages. i will be using
other tools to explore other aspects of the project and may
ultimately move away from the racket ecosystem, but a girl
has gotta start somewhere")))
(section (section
(hgroup (hgroup
(h2 "about the name") (h2 "about the name")
@ -193,7 +226,12 @@
(code "my-conlang.latl") "anyone?") (code "my-conlang.latl") "anyone?")
(p (p
"i also just like syllabic laterals? they sound neat to me. the "i also just like syllabic laterals? they sound neat to me. the
official initialism is _l_inguistic _a_nalytic _t_ransformation official initialism is " (u "l") "inguistic " (u "a") "nalytic "
_l_anguage, but it also double entendres to _l_ower _a_nterior (u "t") "ransformation " (u "l") "anguage, but it also double
_t_emporal _l_obe, so that's just kind of fun.") entendres to " (u "l") "ower " (u "a" ) "nterior " (u "t")
(p "maybe it'll have a different name some day, idk")))) "emporal " (u "l" ) "obe, so that's just kind of fun.")
(p
"and the l means there can be lambda iconography-this is crucial
for a new computer project. [ˈλæ.ɾɫ̩] as a typographic image is
so perfectly specific to the kinds of things i dream about.")
(p "maybe it'll have a different name some day, idk")))

8
in-progress/links.txt Normal file
View file

@ -0,0 +1,8 @@
(section
(hgroup
(h2 "links")
(p "contributing to the hyper-fication of the hypermedia"))
(p "propjects that i think are cool"
(ul (li "")))
(p "communities that i think are neat"
(ul (li ""))))

View file

View file

@ -317,9 +317,11 @@
(close-output-port out)) (close-output-port out))
(error "couldn't obtain file lock on ~a" out)) (error "couldn't obtain file lock on ~a" out))
;; update 'resource/index
(write-new-resource/index r new-res-table #:test (if x #t #f))
;; update 'resource/index (unless root)
(if (equal? r "root")
(displayln "skipping write-new-resource/index")
(write-new-resource/index r new-res-table #:test (if x #t #f)))
;; update feed table ;; update feed table
(define atom-table (csv->list (define atom-table (csv->list
@ -347,8 +349,7 @@
(define feed-out (define feed-out
(open-output-file (if x "publish-test/source/feed.atom" (open-output-file (if x "publish-test/source/feed.atom"
"source/feed.atom") "source/feed.atom")
;; need to remove this and just replace once testing is done #:exists 'replace))
#:exists (if x 'replace 'error)))
(if (port-try-file-lock? feed-out 'exclusive) (if (port-try-file-lock? feed-out 'exclusive)
(begin (begin
(display (display

View file

@ -1,101 +1 @@
(main (body (section (h2 "a λ.functional λ.gay") (p "i'm a gay lil nerd who's learning everyday about community, and ecology,\n and computer; and trying hard to be good for the world with my gay lil\n friends") (p "i was named after " (a ((href "https://plants.usda.gov/home/plantProfile?symbol=OXOR")) "a plant called sorrel") " and i live in the mountains of southern appalachia on " (span ((lang "chr")) "ᏣᎳᎩ") " (tsalagi/cherokee) land. i live with some cats and a whole mess of plants\n (most of them food) and a cordswain and i have sweet neighbors") (p "i have never identified with the term 'hacker' but i have learned, in the\n past few years, that i do like to orchestrate computer machines and i do\n that with some cute friends at " (a ((href "https://bunk.computer")) "bunk computer club")) (p "some random things i believe/ i like/ i am/etc (in no particular order") (ul (li (p "i like linguistics a whole lot. " (span ((class "hx-target")) (a ((href "/tagged/conlang") (hx-get "/hx/tagged/conlang") (hx-target "closest span.hx-target") (hx-swap "innerHTML")) "i make languages (the human kind) for fun.")) " there's a whole bunch of people who do this! " (a ((href "https://conlang.org/")) "the language creation society") " i'm even working on a " (span ((class "hx-target")) (a ((href "/tagged/latl") (hx-get "/hx/tagged/latl") (hx-target "closest span.hx-target") (hx-swap "innerHTML")) "language (computer) to make languages (human)")))) (li (p "mmt, but make it anarchist " (small "and get rid of all that \"sovereignty\" stuff, ew"))) (li (p "got a spicy brained, trans lady-fied experience. \n i have feelings about these things that inevitably weave thru\n my projects and art and all that")) (li (p "i used to make a lot more visual art than i do these days. some\n sort of smth'll wind up here at some point")))) (footer (section (h5 "tagged") (ul ((class "tag-list")) (li ((class "tag-item")) (span ((class "hx-target")) (a ((href "/tagged/about") (hx-get "/hx/tagged/about") (hx-target "closest span.hx-target") (hx-swap "innerHTML")) "about"))))) (hr) (p ((class "doc-history")) (small "published: 2023-12-24T19:15:34")) (p ((class "license-info")) (small (a ((href "/license")) "license")))))
(p "what do you want to know?")
(section
(h1 "about sorrel")
(p "i'm a gay lil nerd who's learning everyday about community, and ecology,
and computer; and trying hard to be good for the world with my gay lil
friends.")
(p "i was named after "
(a ((href "https://plants.usda.gov/home/plantProfile?symbol=OXOR"))
"a plant called sorrel")
" and i live in the mountains of southern appalachia on "
(span ((lang "chr")) "ᏣᎳᎩ")
" (tsalagi/cherokee) land. i live with some cats and a whole mess of plants
(most of them food) and a cordswain and i have sweet neighbors.")
(p
"i have never identified with the term 'hacker' but i have learned, in the
past few years, that i do like to orchestrate computer machines and i do
that with some cute friends at "
(a ((href "https://bunk.computer"))
"bunk computer club"))
(p "some random things i believe/ i like/ i am/etc (in no particular order")
;; about me bullets
(ul
;; language bullet
(li (p "i like linguistics a whole lot. "
(span
((class "hx-target"))
(a ((href "/tagged/conlang")
(hx-get "/hx/tagged/conlang")
(hx-target "closest span.hx-target")
; swap for a tag? just a lil list inside a list?
(hx-swap "innerHTML"))
"i make languages (the human kind) for fun."))
" there's a whole bunch of people who do this! "
(a ((href "https://conlang.org/"))
"the language creation society")
" i'm even working on a "
(span
((class "hx-target"))
(a ((href "/tagged/latl")
(hx-get "/hx/tagged/latl")
(hx-target "closest span.hx-target")
(hx-swap "innerHTML"))
"language (computer) to make languages (human)."))))
;; mmt bullet
(li (p "mmt, but make it anarchist "
(small "and get rid of all that \"sovereignty\" stuff, ew")))
;; nd bullet
(li (p "the autistic-contiguous position: object-relations theory or gay
sex act? "
(span
((class "hx-target"))
(small "a " (em "niche") " joke about having "
(a ((href "/tagged/brain")
(hx-get "/hx/tagged/brain")
(hx-target "closest span.hx-target")
(hx-swap "innerHTML"))
"a ~type~ of experience")))))
;; queer bullet
(li (p "she's a gay trans lady, harold"))
;; art bullet
(li (p "i used to make a lot more visual art than i do these days. some
sort of smth'll wind up here at some point."))))
;; contact section
(section
(h2 "contact")
(p "- e - m- "
(span " a - i ")
(span " -l [ at ")
(span "] s - o- ")
(span "r - r- e - l [ d o")
(span "t ] d -e")
(span "-v is a good place to do the email"))
(p
"i have avoided 'online' for a long time, but i'm getting hip to it. i'll
add some more socials here for to socially network in the future,
promise."))
;; getting earnest section
(section
(h2 "a very earnest disclaimer")
(p
"i like to talk about computation with ppl! but it is important for me that
you know: i am new to all this! i did not think computers or software were
^for me^ and then i had to get good at spreadsheets at my first email-factory
job and then i got curious about webdev and now i have reached terminal
velocity down a very λ.particular.rabbit[hole]")
(p
"i'm not very good at many things. i don't even have a math education or a
degree in anything. have you ever met someone who *is* good at _all_ ^this^
~stuff~ ???")
(p
"i like thinking in public, but please be patient! with me and with
everyone else you talk about things you care about with.")
(p "let's hold our strong opinions loosely!")
(p "and first assume good faith from each other!")
(br)
(br)
(p ((class "ascii but-normal-size"))
" ⃔‥̺⃝⃕")
(br)))

1
source/contact.txt Normal file
View file

@ -0,0 +1 @@
(body (section (h2 "contact") (p "e-m-" (span "a-i") (span "-l [ at ") (span "] s-o-") (span "r-r-e-l [ d o") (span "t ] d-e") (span "-v is a good place to do the email")) (p "i have avoided 'online' for a long time, but i'm getting hip to it. i'm\n on the big mastodon server @oxaliq")) (footer (section (h5 "tagged") (ul ((class "tag-list")) (li ((class "tag-item")) (span ((class "hx-target")) (a ((href "/tagged/about") (hx-get "/hx/tagged/about") (hx-target "closest span.hx-target") (hx-swap "innerHTML")) "about"))))) (hr) (p ((class "doc-history")) (small "published: 2023-12-24T19:45:11")) (p ((class "license-info")) (small (a ((href "/license")) "license")))))

View file

@ -1 +1 @@
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title>λ.sorrel.dev</title><link rel="self" href="https://sorrel.dev/feed.atom"/><updated>2023-11-08T22:49:41</updated><author><name>sorrel</name></author><id>https://sorrel.dev</id> <?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title>λ.sorrel.dev</title><link rel="self" href="https://sorrel.dev/feed.atom"/><updated>2023-12-24T19:45:57</updated><author><name>sorrel</name></author><id>https://sorrel.dev</id><entry><title>now</title><link href="https://sorrel.dev/now"/><id>https://sorrel.dev/now</id><content src="https://sorrel.dev/now" type="text/html"></content><summary>what the author of this site is up to</summary><published>2023-12-24T19:45:57</published><updated></updated></entry><entry><title>contact</title><link href="https://sorrel.dev/contact"/><id>https://sorrel.dev/contact</id><content src="https://sorrel.dev/contact" type="text/html"></content><summary>how to talk to sorrel</summary><published>2023-12-24T19:45:11</published><updated></updated></entry><entry><title>disclaimer</title><link href="https://sorrel.dev/very-earnest-disclaimer"/><id>https://sorrel.dev/very-earnest-disclaimer</id><content src="https://sorrel.dev/very-earnest-disclaimer" type="text/html"></content><summary>a very earnest disclaimer</summary><published>2023-12-24T19:43:23</published><updated></updated></entry><entry><title>this</title><link href="https://sorrel.dev/this"/><id>https://sorrel.dev/this</id><content src="https://sorrel.dev/this" type="text/html"></content><summary>the site this bitch made</summary><published>2023-12-24T19:41:47</published><updated></updated></entry><entry><title>about</title><link href="https://sorrel.dev/about"/><id>https://sorrel.dev/about</id><content src="https://sorrel.dev/about" type="text/html"></content><summary>the bitch who made this site</summary><published>2023-12-24T19:15:34</published><updated></updated></entry><entry><title>about</title><link href="https://sorrel.dev/about"/><id>https://sorrel.dev/about</id><content src="https://sorrel.dev/about" type="text/html"></content><summary>the bitch who made this site</summary><published>2023-12-24T19:11:35</published><updated></updated></entry><entry><title>Beginning LATL</title><link href="https://sorrel.dev/unsettled/1"/><id>https://sorrel.dev/unsettled/1</id><content src="https://sorrel.dev/unsettled/1" type="text/html"></content><summary>beginning the process of thinking through an environment for conlanging and other language shenanigans</summary><published>2023-12-04T15:20:53</published><updated></updated></entry></feed>

View file

@ -11,7 +11,7 @@
(content "it's a crop of the work 'Oxalis acetosella', Otto Wilhelm Thomé (content "it's a crop of the work 'Oxalis acetosella', Otto Wilhelm Thomé
(1885) run through the ascii-art generation tool on https://www.asciiart.eu/"))) (1885) run through the ascii-art generation tool on https://www.asciiart.eu/")))
(link ((rel "stylesheet") (link ((rel "stylesheet")
(href "/static/styles.css"))) (href "/static/style/styles.css")))
(style " (style "
p.ascii { p.ascii {
font-family: 'Courier New', Courier, monospace; font-family: 'Courier New', Courier, monospace;

View file

@ -47,12 +47,6 @@
░▒▓ ▓▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▒▓▒▒▒ ▒░▓ ░▒░▒ ░░ ░▒▓ ▓▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▒▓▒▒▒ ▒░▓ ░▒░▒ ░░
▒▓ ░▒▒▒▒▒▓▒▒▓▒▒▒▒▒▒▒▒▒▒▓▒▓▓▓▒▒ ▓░ ░▒ ░▓ ")) ▒▓ ░▒▒▒▒▒▓▒▒▓▒▒▒▒▒▒▒▒▒▒▓▒▓▓▓▒▒ ▓░ ░▒ ░▓ "))
(nav (nav
(a
((href "/about")
(hx-get "/hx/about")
(hx-target "main")
(hx-swap "innerHTML"))
"about sorrel (the bitch who made this)")
(a (a
((href "/unsettled") ((href "/unsettled")
(hx-get "/hx/unsettled") (hx-get "/hx/unsettled")

View file

@ -1,4 +1,4 @@
(article (main
(noscript (noscript
(span (span
((class "noscript")) ((class "noscript"))
@ -21,14 +21,48 @@
(p "hey! i'm sorrel.") (p "hey! i'm sorrel.")
(p "(called like the plant up there)") (p "(called like the plant up there)")
(p "this is my new-fangled website computer page on the world wide web. i had (p "this is my new-fangled website computer page on the world wide web. i had
a nice time building this little thing " a nice time building this little thing ")
(span ((class "hx-target")) (p " i hope you have a nice time looking at things here")
(hr)
(p (span ((class "hx-target"))
(a ((href "/this") (a ((href "/this")
(hx-get "/hx/this") (hx-get "/hx/this")
(hx-target "closest span") (hx-target "closest span")
(hx-swap "innerHTML")) (hx-swap "innerHTML"))
"(how i build this little page.)"))) "(how i build this little page)")))
(p " i hope you have a nice time looking at things here.") (p (span ((class "hx-target"))
(a ((href "/now")
(hx-get "/hx/now")
(hx-target "closest span")
(hx-swap "innerHTML"))
"(what i'm doing)")))
(p (span ((class "hx-target"))
(a ((href "/about")
(hx-get "/hx/about")
(hx-target "closest span")
(hx-swap "innerHTML"))
"(who i am)")))
(p (span ((class "hx-target"))
(a ((href "/contact")
(hx-get "/hx/contact")
(hx-target "closest span")
(hx-swap "innerHTML"))
"(how to say hi to me)")))
(p (span ((class "hx-target"))
(a ((href "/very-earnest-disclaimer")
(hx-get "/hx/very-earnest-disclaimer")
(hx-target "closest span")
(hx-swap "innerHTML"))
"(a very earnest disclaimer)")))
; (p (span ((class "hx-target"))
; (a ((href "/links")
; (hx-get "/hx/links")
; (hx-target "closest span")
; (hx-swap "innerHTML"))
; "(some things i think are neat)")))
(p (a ((href "/tagged"))
"-> all of the kinds of things on here so far"))
(p ((class "ascii but-normal-size")) (p ((class "ascii but-normal-size"))
"︿︿ "︿︿
〰")) 〰"))

View file

@ -14,8 +14,8 @@
(p (em "a categorical mess for your perusal")))] (p (em "a categorical mess for your perusal")))]
[(string-prefix? res "tagged/") [(string-prefix? res "tagged/")
(let ([tag (string-replace res "tagged/" "#")]) (let ([tag (string-replace res "tagged/" "#")])
`(hgroup (h1 ,(~a "stuff what's tagged like \"~a\"" tag)) `(hgroup (h1 ,(~a "stuff what's tagged like " tag))
(p (em (~a "everything (or maybe just some things) i've ever said about \"~a\"" tag)))))] (p (em (~a "everything (or maybe just some things) i've ever said about \"" tag "\"")))))]
[else [else
'(hgroup (h1 "i'm lost") '(hgroup (h1 "i'm lost")
(p (em "you weren't meant to be here")))]) (p (em "you weren't meant to be here")))])
@ -43,7 +43,7 @@
(h4 ,(second post)) (h4 ,(second post))
(p ,(third post)) (p ,(third post))
;; tagged posts will insert href instead of id ;; tagged posts will insert href instead of id
(a ((href ,(first post))) (a ((href ,(~a "/" (first post))))
,(~a "go! to " (second post) " page"))))) ,(~a "go! to " (second post) " page")))))

1
source/now.txt Normal file
View file

@ -0,0 +1 @@
(body (section (hgroup (h2 "now") (p "a snapshot of the (mostly) non-computer things of import")) (section (hgroup (h3 "read") (p "stuff i'm taking in")) (ul (li "the paying guests, sarah waters") (li "females, andrea long chu") (li "palo alto, malcolm harris") (li "high pitched and moist, tami t") (li "desolation's flower, ragana") (li "salesforce, lauren bousfield") (li "el mal querer, rosalía") (li "guacamelee, drinkbox"))) (section (hgroup (h3 "eval") (p "stuff i'm crunching on")) (ul (li "playing more go") (li "winter garden chores") (li "starting a community maker space") (li "going on more hikes") (li "body stuff"))) (section (hgroup (h3 "print") (p "stuff i'm putting out")) (ul (li "fun leatherwork") (li "fun woodwork") (li "relearning how to draw"))) (section (hgroup (h3 "loop") (p "stuff what's on the horizon")) (ul (li "being in the northeastern us") (li "putting my labor on the market") (li "maybe making some music again?")))) (footer (section (h5 "tagged") (ul ((class "tag-list")) (li ((class "tag-item")) (span ((class "hx-target")) (a ((href "/tagged/about") (hx-get "/hx/tagged/about") (hx-target "closest span.hx-target") (hx-swap "innerHTML")) "about"))))) (hr) (p ((class "doc-history")) (small "published: 2023-12-24T19:45:57")) (p ((class "license-info")) (small (a ((href "/license")) "license")))))

1
source/tagged/about.txt Normal file
View file

@ -0,0 +1 @@
'(article (hgroup (h1 "stuff what's tagged like #about") (p (em "everything (or maybe just some things) i've ever said about \"about\""))) (h3 "the thoughts") (div ((class "post-preview")) (h4 "now") (p "what the author of this site is up to") (a ((href "/now")) "go! to now page")) (div ((class "post-preview")) (h4 "contact") (p "how to talk to sorrel") (a ((href "/contact")) "go! to contact page")) (div ((class "post-preview")) (h4 "disclaimer") (p "a very earnest disclaimer") (a ((href "/very-earnest-disclaimer")) "go! to disclaimer page")) (div ((class "post-preview")) (h4 "this") (p "the site this bitch made") (a ((href "/this")) "go! to this page")) (div ((class "post-preview")) (h4 "about") (p "the bitch who made this site") (a ((href "/about")) "go! to about page")))

View file

@ -1 +1 @@
'(article (hgroup (h1 "all the tags") (p (em "a categorical mess for your perusal"))) (h3 "the thoughts") (p "there's nothing here yet"))'(article (hgroup (h1 "all the tags") (p (em "a categorical mess for your perusal"))) (h3 "the thoughts") (p "there's nothing here yet"))'(article (hgroup (h1 "all the tags") (p (em "a categorical mess for your perusal"))) (h3 "the thoughts") (p "there's nothing here yet")) '(article (hgroup (h1 "all the tags") (p (em "a categorical mess for your perusal"))) (h3 "the thoughts") (div ((class "post-preview")) (h4 "about") (p "posts about about") (a ((href "/tagged/about")) "go! to about page")))

1
source/this.txt Normal file
View file

@ -0,0 +1 @@
(body (section (hgroup (h2 "how this site") (p "some kind of colophon")) (p "all of the code for the website is hosted and deployed from tree, " (a ((href "https://git.bunk.computer/oxaliq/sorrel.dev")) "bunk computer club's git forge") "i do almost everything in the main branch, cause it's just me and that way\n i can add links below to the in-progress stuff real easy") (p "first, this website doesn't do anything to know who you are or anything.\n this website is a ~20MB binary and some static resources. it is built\n primarily with " (a ((href "https://docs.racket-lang.org/web-server/")) "racket web-server")) (p "this website serves ~46kB of javascript in the form of " (a ((href "https://htmx.org/")) "the htmx library (minified.)") " i don't love serving minified code. forking the library and removing\n features that are of no use to me is on the agenda for 2024") (p "everything here is hosted on turtle, " (a ((href "https://wiki.bunk.computer/hypha/servers")) "bunk computer club's shared application server")) (p "there's some racket scripts i use for tooling that were made with " (a ((href "https://docs.racket-lang.org/cli/")) "#lang cli")) (p (a ((href "https://git.bunk.computer/oxaliq/sorrel.dev/src/branch/main/.dev-log")) "you can read about development here")) (p (a ((href "https://git.bunk.computer/oxaliq/sorrel.dev/src/branch/main/.idea-log")) "you can read about my vague plans here")) (p (a ((href "https://git.bunk.computer/oxaliq/sorrel.dev/src/branch/main/in-progress")) "or read works in progress here")) (p "the image in the header is a crop of the work " (em "'Oxalis acetosella', Otto Wilhelm Thomé (1885)") " run through a generation tool on " (a ((href "https://www.asciiart.eu/")) "this ascii art archive"))) (footer (section (h5 "tagged") (ul ((class "tag-list")) (li ((class "tag-item")) (span ((class "hx-target")) (a ((href "/tagged/about") (hx-get "/hx/tagged/about") (hx-target "closest span.hx-target") (hx-swap "innerHTML")) "about"))))) (hr) (p ((class "doc-history")) (small "published: 2023-12-24T19:41:47")) (p ((class "license-info")) (small (a ((href "/license")) "license")))))

View file

@ -0,0 +1 @@
(body (section (h2 "a very earnest disclaimer") (p "i like to talk about computation with ppl! but it is important for me that\n you know: i am new to all this! i did not think computers or software were\n ^for me^ and then i had to get good at spreadsheets at my first email-factory\n job and then i got curious about webdev and now i have reached terminal\n velocity down a very λ.particular.rabbit[hole]") (p "i think computation is both fascinating on its own terms and as a substrate\n for pro-social infrastructure. i am motivated to work on projects that\n engage with this possiblity") (p "i'm not very good at many things. i don't even have a math education or a\n degree in anything. have you ever met someone who *is* good at _all_ ^this^\n ~stuff~ ???") (p "i like thinking in public, but please be patient! with me and with\n everyone else you talk about things you care about with") (p "let's hold our strong opinions loosely!") (p "and first assume good faith from each other!") (br) (br) (p ((class "ascii but-normal-size")) " ⃔‥̺⃝⃕") (br)) (footer (section (h5 "tagged") (ul ((class "tag-list")) (li ((class "tag-item")) (span ((class "hx-target")) (a ((href "/tagged/about") (hx-get "/hx/tagged/about") (hx-target "closest span.hx-target") (hx-swap "innerHTML")) "about"))))) (hr) (p ((class "doc-history")) (small "published: 2023-12-24T19:43:23")) (p ((class "license-info")) (small (a ((href "/license")) "license")))))

View file

@ -51,6 +51,10 @@ span.hx-target section {
margin: 3; margin: 3;
} }
span.hx-target footer {
display: none;
}
a { a {
font-family: 'Courier New', Courier, monospace; font-family: 'Courier New', Courier, monospace;
font-size: small; font-size: small;

View file

@ -1,131 +0,0 @@
:root {
color-scheme: light dark;
}
@media screen and not (prefers-color-scheme: light) {
html {
--foreground-color: lab(90 50 -80);
--background-color: lab(0 50 -30);
--link-color: lab(80 40 100);
--visited-link-color: lab(70 10 15);
--banner-ascii-color: lab(90 -40 20 / 0.8);
}
}
@media screen and (prefers-color-scheme: light) {
html {
--foreground-color: lab(10 50 -80);
--background-color: lab(90 50 -30);
--link-color: lab(20 40 100);
--visited-link-color: lab(20 10 15);
--banner-ascii-color: lab(10 -40 20 / 0.8);
}
}
html {
padding: 20px;
color: var(--foreground-color);
background-color: var(--background-color);
}
h1, h2, h3, h4, h5 {
font-family: 'Courier New', Courier, monospace;
color: var(--background-color);
background-color: var(--visited-link-color);
padding: 2 10;
}
h5 {
margin: 2 0;
}
span.noscript p {
font-family: 'Courier New', Courier, monospace;
font-size: small;
}
span.hx-target section {
border: solid 1px var(--link-color);
border-radius: 4px;
padding: 0 10;
margin: 3;
}
a {
font-family: 'Courier New', Courier, monospace;
font-size: small;
color: var(--link-color);
}
a:visited {
color: var(--visited-link-color);
text-decoration-color: var(--link-color);
}
body {
max-width: 600;
margin: auto;
font-size: medium;
font-family: sans-serif;
}
header{
display: flex;
flex-direction: column;
}
@media screen and (max-width: 600px) {
div.banner p.ascii {
font-size: 5px;
}
body {
max-width: 375px;
}
}
@media screen and (min-width: 1000px) {
div.banner {
padding: 0 auto;
}
body {
max-width: 800px;
}
}
div.banner {
background-color: lab(0 5 1 / 0.8);
width: max-content;
margin: auto;
}
div.banner p.ascii {
color: var(--banner-ascii-color);
}
nav {
display: flex;
flex-direction: row;
padding: 5px;
}
nav a {
padding: 5px;
}
p {
margin: 12 0;
}
ul.tag-list {
display: flex;
flex-direction: row;
margin: 6 0;
padding: 0;
}
li.tag-item {
list-style-type: none;
flex-basis: fit-content;
margin: 0 6;
}