Add README.md

This commit is contained in:
Justin C. Miller
2023-01-28 15:58:38 -08:00
parent 9d3f65afb5
commit b49f0bef00

52
README.md Normal file
View File

@@ -0,0 +1,52 @@
# POST mortem
This is a little utility to put together an [Exquisite Corpse][1] poem for the
[Taskmaster][2]-inspired _Amandatory 2023_.
[1]: https://en.wikipedia.org/wiki/Exquisite_corpse
[2]: https://en.wikipedia.org/wiki/Taskmaster_(TV_series)
## The task
> _Post Mortem_
>
> Create an Exquisite Corpse poem.
> Begin a poem then mail your unfinished work to another person.
> Have that person add to the poem & mail to another person etc... Each recipient
> must add to the poem. YOUR POEM MUST BE 25 WORDS.
>
> You will present your poem at AMANDATORY 2023.
>
> Points are awarded for greatest distance traveled via post. A bonus point will be
> awarded for best poem.
>
> You have until AMANDATORY 2023 (_date redacted_) to complete this task.
>
> Your time starts now.
## The plan
While "via post" is more often used in British English, it's still likely to be
understood to mean "by mail" in American English. However, that's not the
_only_ thing it could mean. To software engineers, "via post" can also mean
"using the HTTP `POST` verb".
Interpreting "post" as `POST`, and the verb "mail" to refer to electronic mail,
it's reasonable to interpret emailing links to a web application as adhering to
the letter of the task.
Thus this little app allows a group of people to collaboratively add to a poem,
copying it and a URL to add to it for emailing to the next person.
## The distance
Thanks to the magic of public cloud providers and SSH tunnels, I've set up a
server for the app in Seattle, and SSH jump hosts in Sydney and Tokyo. A
reverse proxy runs on the same machine as the proxy, but points at the app via
an SSH tunnel routed through the two jump hosts. (See OpenSSH's `ProxyJump`
configuration, or the `-J` command-line option.) If every user adding to the
poem is connecting from the San Francisco Bay Area, the total distance the
`POST` travels from browser to app is 29,132 km.
I squeeze further distance out of this setup by making the front-end need to
send a `POST` for every word and every newline added to the poem.