From 186286c0a5477071f1c8de93ff009791b396e6f0 Mon Sep 17 00:00:00 2001 From: Alex Karle Date: Thu, 11 Nov 2021 22:53:11 -0500 Subject: [PATCH] gopher: The Great Splitting -- RIP phlog.txt This commit splits phlog.txt into many bits and adds a new entry (008) that documents the rationale. --- gopher/Makefile | 6 +++--- gopher/index.gph | 2 +- gopher/phlog.txt | 209 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- gopher/phlog/001.txt | 11 +++++++++++ gopher/phlog/002.txt | 16 ++++++++++++++++ gopher/phlog/003.txt | 27 +++++++++++++++++++++++++++ gopher/phlog/004.txt | 14 ++++++++++++++ gopher/phlog/005.txt | 34 ++++++++++++++++++++++++++++++++++ gopher/phlog/006.txt | 29 +++++++++++++++++++++++++++++ gopher/phlog/007.txt | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ gopher/phlog/008.txt | 39 +++++++++++++++++++++++++++++++++++++++ gopher/phlog/index.gph | 22 ++++++++++++++++++++++ 12 files changed, 247 insertions(+), 213 deletions(-) delete mode 100644 gopher/phlog.txt create mode 100644 gopher/phlog/001.txt create mode 100644 gopher/phlog/002.txt create mode 100644 gopher/phlog/003.txt create mode 100644 gopher/phlog/004.txt create mode 100644 gopher/phlog/005.txt create mode 100644 gopher/phlog/006.txt create mode 100644 gopher/phlog/007.txt create mode 100644 gopher/phlog/008.txt create mode 100644 gopher/phlog/index.gph diff --git a/gopher/Makefile b/gopher/Makefile index c12d8ad..3257591 100644 --- a/gopher/Makefile +++ b/gopher/Makefile @@ -1,7 +1,6 @@ FILES = about.txt \ LICENSE \ - index.gph \ - phlog.txt + index.gph CODE = bin/notetag \ LICENSE \ @@ -13,7 +12,8 @@ build: .PHONY: install install: build - cd /var/gopher && mkdir -p notes code blog jam-tuesday + cd /var/gopher && mkdir -p notes code blog jam-tuesday phlog + install -m 444 phlog/* /var/gopher/phlog/ install -m 444 $(FILES) /var/gopher for tag in notes/*/; do \ mkdir -p /var/gopher/$$tag; \ diff --git a/gopher/index.gph b/gopher/index.gph index d3fa1ef..941a0c6 100644 --- a/gopher/index.gph +++ b/gopher/index.gph @@ -10,7 +10,7 @@ '._.' == Gopher Exclusives == [0| \|.\| about me|/about.txt|server|port] [1| \| \| tech notes|/notes|server|port] -[0| \|.\| phlog|/phlog.txt|server|port] +[1| \|.\| phlog|/phlog|server|port] [1| \| \| gopherhole code|/code|server|port] |.| | | ===== HTTP Mirror ===== diff --git a/gopher/phlog.txt b/gopher/phlog.txt deleted file mode 100644 index b59bb6e..0000000 --- a/gopher/phlog.txt +++ /dev/null @@ -1,209 +0,0 @@ - - Welcome to the - __ ___ - /\ \ /\_ \ - _____\ \ \___ \//\ \ ___ __ - /\ '__`\ \ _ `\ \ \ \ / __`\ /'_ `\ - \ \ \L\ \ \ \ \ \ \_\ \_/\ \L\ \/\ \L\ \ - \ \ ,__/\ \_\ \_\/\____\ \____/\ \____ \ - \ \ \/ \/_/\/_/\/____/\/___/ \/___L\ \ - \ \_\ /\____/ - \/_/ \_/__/ - - just a collection of thoughts.. - - -Choosing a Phormat pt. 3 [2021-11-11] -------------------------------------------------------- - -Keeping the title the same to hopefully make it easier -to get threads going between posts... - -I wanted to callout an interesting observation I read -on the gemini FAQ [1] about text vs menu content -serving. The observation is that menus are appealing -because they allow hyperlinking (with restrictions, -like way outdated content types); however, using a -menu that is largely text (`i` info types) is a -_really_ inefficient way to serve up content, due -to the phony selectors and hostnames that come with -it! - -As a practical example, this phlog.txt, including -this post, is 7396 bytes, but if it was served as -a *.gph file, it becomes 11131 bytes! That's 1.5x -the size (~1/3 overhead)! - -This is also discussed a bit on the gemlog of -mozz.us [2], which describes the history of `i`. -`i` isn't part of the original RFC, and it _seems_ -that the original gopher team weren't thrilled to -add it. Of course, `i` won out over plain menus -because people like to see a little context... but -the "pure" gopher way would be to put said context -in a file named ABOUT and be done with it! - -I think this is all interesting because people are -making some really cool gopher apps out of the -menu format (like stagit-gopher, for instance). -But maybe this is the wrong way to go about things? -in the sense that it would benefit from a more -flexible format, like text/gemini... - -Anyways, to go full circle, this revelation about -phony selectors reaffirmed my decision to use -a plaintext file instead of a gopher menu for this -phlog. - -It's an interesting hypothetical though--is -Gopher as useful without `i`? Does the lack of -MIME types hinder its future adoption? - -It does still serve well as a plaintext delivery -system, IMHO. And this phlog is a lot of that :) - -[1]: https://gemini.circumlunar.space/docs/faq.gmi -[2]: https://portal.mozz.us/gemini/mozz.us/journal/2021-05-27.gmi - - -What's in a RFC? [2021-11-10] -------------------------------------------------------- - -I've always idealized the RFC process of the IETF as -a way to effectively run a distributed project. And -it is, but it's *way* more complex and intricate than -I originally thought. This note serves to share some -of my findings. - -The biggest surprise was that RFC's can't just be -published. You have to send them to the "RFC Editor"! -This person can make minor edits and, at their -discretion, broadcast the document. When the process -first started, these were physical documents! - -RFC's begin life as Internet Drafts, where they are -iterated on, but there's no guarantee you _do_ get -published as an RFC (let alone an Internet Standard). - -And I suppose that's the disconnect between what I -envisioned (mailing list participants just asking for -feedback) and what reality is (a formal process with -a publisher, with gated entry). It's both "open" in -the sense that the publications can be redistributed, -but "closed" in the sense that the Editor decides -what makes the cut. It feels less community-oriented -than I expected; more formal. - -Just my 2c. - - -Server Migration [2021-11-07] -------------------------------------------------------- - -I moved from gophernicus(8) to geomyidae(8) tonight. -It was relatively painless, with a bit of lift to -replicate the "*" directory-indexing feature of -the gophernicus gophermap files (I had to write my -own directory-to-gph tool and cat it to index.gph). - -Of course, I _could_ have used dynamic CGI, but it -feels a bit safer NOT to allow the daemon to spawn -other programs :) - -As a funny aside--I was previously championing -gopher's "lack of a markup language" by using -plaintext for content.. the truth is uglier than that: -all servers have their OWN markup for the menu -files that have become core to the gopher experience. -So, migrating servers becomes more of a pain than -just changing the config file. - -In fact, the lack of a standardized markup is the -reason I had to migrate in the first place! -gophernicus doesn't support geomyidae *.gph, which -is what stagit-gopher outputs... - -Maybe the Gemini people are onto something--specify -the markup AND the protocol.. hmmm - -I suppose one could always use canonical-only gopoher -and not embed info (`i`) lines/just have the daemon -auto-list... but that's no fun! - -P.S. the gopherhole is available over TLS now! - - -Launch Plan [2021-11-06] -------------------------------------------------------- - -Thinking about announcing my phlog on my blog.. and -maybe even moving it here. What would it take to -get there? - -* Git mirroring via stagit-gopher - - requires a server change to geomyidae -* TLS support - -The latter seems pretty new.. I'll have to see if its -standardized enough for it to be a reasonable expectation -that clients will support the implementation. - - -Momentum [2021-11-04] -------------------------------------------------------- - -I've been serving _something_ over gopher since February -2021 [1], but in these past couple days this gopherhole -has gone from 0 to 100 realll quick. - -Once I started putting real gopher-exclusive content -here, I kept wanting to add more! The latest motivation -is using gopher as a simple access protocol to a plaintext -"second brain" (notetaking system). - -So, the repo that houses my gopherhole now has a "notes" -directory, and I wrote a small "notetag" script that -parses the "^tags:" directive in the files, generates -a directory-per-tag, symlinks the notes into the dirs, -and then outputs a gophermap index of the files! - -This was a ton of fun, and of course urged me to add my -next piece of content--a "code" section of the hole to -share "notetag", which I'm unreasonably proud of :) - -So there you have it--in 24 hrs we went from phlogless -to phlog + code + notes... only time will tell if I keep -up the publishing, but for now I'm having fun! - -[1]: https://git.alexkarle.com/alexkarle.com/commit/cf670de12685a94e7a53f0a126ae77cbf548cf91.html - - -Choosing a Phormat pt. 2 [2021-11-03] -------------------------------------------------------- - -And immediately after publishing as a gophermap, I -realized that the '----' heading is being interpreted -as "remove the '-------' file from the file listing. -So that's fun. - -Looks like we're back to "single text file". Ain't -nuthin wrong with that I suppose. Just no linking to -other resources... hmmm. Maybe I should check out a -different gopher server. - -On second thought, the appeal of gopher was that I -*dont* have to write or learn a new markup flavor... -yeah plaintext it is! - - -Choosing a Phormat [2021-11-03] -------------------------------------------------------- - -Hello phlog! - -For right now, I think I'm gonna prepend entries onto -the gophermap for the phlog directory. While half the -appeal of gopher is that it serves up plaintext as-is, -I think having the ability to link to othe documents -might come in handy. So... the menu is the phlog. Is -that backwards? We'll see. diff --git a/gopher/phlog/001.txt b/gopher/phlog/001.txt new file mode 100644 index 0000000..5695402 --- /dev/null +++ b/gopher/phlog/001.txt @@ -0,0 +1,11 @@ +Choosing a Phormat [2021-11-03] +------------------------------------------------------- + +Hello phlog! + +For right now, I think I'm gonna prepend entries onto +the gophermap for the phlog directory. While half the +appeal of gopher is that it serves up plaintext as-is, +I think having the ability to link to othe documents +might come in handy. So... the menu is the phlog. Is +that backwards? We'll see. diff --git a/gopher/phlog/002.txt b/gopher/phlog/002.txt new file mode 100644 index 0000000..81dc340 --- /dev/null +++ b/gopher/phlog/002.txt @@ -0,0 +1,16 @@ +Choosing a Phormat pt. 2 [2021-11-03] +------------------------------------------------------- + +And immediately after publishing as a gophermap, I +realized that the '----' heading is being interpreted +as "remove the '-------' file from the file listing. +So that's fun. + +Looks like we're back to "single text file". Ain't +nuthin wrong with that I suppose. Just no linking to +other resources... hmmm. Maybe I should check out a +different gopher server. + +On second thought, the appeal of gopher was that I +*dont* have to write or learn a new markup flavor... +yeah plaintext it is! diff --git a/gopher/phlog/003.txt b/gopher/phlog/003.txt new file mode 100644 index 0000000..fd9bb4d --- /dev/null +++ b/gopher/phlog/003.txt @@ -0,0 +1,27 @@ +Momentum [2021-11-04] +------------------------------------------------------- + +I've been serving _something_ over gopher since February +2021 [1], but in these past couple days this gopherhole +has gone from 0 to 100 realll quick. + +Once I started putting real gopher-exclusive content +here, I kept wanting to add more! The latest motivation +is using gopher as a simple access protocol to a plaintext +"second brain" (notetaking system). + +So, the repo that houses my gopherhole now has a "notes" +directory, and I wrote a small "notetag" script that +parses the "^tags:" directive in the files, generates +a directory-per-tag, symlinks the notes into the dirs, +and then outputs a gophermap index of the files! + +This was a ton of fun, and of course urged me to add my +next piece of content--a "code" section of the hole to +share "notetag", which I'm unreasonably proud of :) + +So there you have it--in 24 hrs we went from phlogless +to phlog + code + notes... only time will tell if I keep +up the publishing, but for now I'm having fun! + +[1]: https://git.alexkarle.com/alexkarle.com/commit/cf670de12685a94e7a53f0a126ae77cbf548cf91.html diff --git a/gopher/phlog/004.txt b/gopher/phlog/004.txt new file mode 100644 index 0000000..8a62279 --- /dev/null +++ b/gopher/phlog/004.txt @@ -0,0 +1,14 @@ +Launch Plan [2021-11-06] +------------------------------------------------------- + +Thinking about announcing my phlog on my blog.. and +maybe even moving it here. What would it take to +get there? + +* Git mirroring via stagit-gopher + - requires a server change to geomyidae +* TLS support + +The latter seems pretty new.. I'll have to see if its +standardized enough for it to be a reasonable expectation +that clients will support the implementation. diff --git a/gopher/phlog/005.txt b/gopher/phlog/005.txt new file mode 100644 index 0000000..5e9087b --- /dev/null +++ b/gopher/phlog/005.txt @@ -0,0 +1,34 @@ +Server Migration [2021-11-07] +------------------------------------------------------- + +I moved from gophernicus(8) to geomyidae(8) tonight. +It was relatively painless, with a bit of lift to +replicate the "*" directory-indexing feature of +the gophernicus gophermap files (I had to write my +own directory-to-gph tool and cat it to index.gph). + +Of course, I _could_ have used dynamic CGI, but it +feels a bit safer NOT to allow the daemon to spawn +other programs :) + +As a funny aside--I was previously championing +gopher's "lack of a markup language" by using +plaintext for content.. the truth is uglier than that: +all servers have their OWN markup for the menu +files that have become core to the gopher experience. +So, migrating servers becomes more of a pain than +just changing the config file. + +In fact, the lack of a standardized markup is the +reason I had to migrate in the first place! +gophernicus doesn't support geomyidae *.gph, which +is what stagit-gopher outputs... + +Maybe the Gemini people are onto something--specify +the markup AND the protocol.. hmmm + +I suppose one could always use canonical-only gopoher +and not embed info (`i`) lines/just have the daemon +auto-list... but that's no fun! + +P.S. the gopherhole is available over TLS now! diff --git a/gopher/phlog/006.txt b/gopher/phlog/006.txt new file mode 100644 index 0000000..6f73096 --- /dev/null +++ b/gopher/phlog/006.txt @@ -0,0 +1,29 @@ +What's in a RFC? [2021-11-10] +------------------------------------------------------- + +I've always idealized the RFC process of the IETF as +a way to effectively run a distributed project. And +it is, but it's *way* more complex and intricate than +I originally thought. This note serves to share some +of my findings. + +The biggest surprise was that RFC's can't just be +published. You have to send them to the "RFC Editor"! +This person can make minor edits and, at their +discretion, broadcast the document. When the process +first started, these were physical documents! + +RFC's begin life as Internet Drafts, where they are +iterated on, but there's no guarantee you _do_ get +published as an RFC (let alone an Internet Standard). + +And I suppose that's the disconnect between what I +envisioned (mailing list participants just asking for +feedback) and what reality is (a formal process with +a publisher, with gated entry). It's both "open" in +the sense that the publications can be redistributed, +but "closed" in the sense that the Editor decides +what makes the cut. It feels less community-oriented +than I expected; more formal. + +Just my 2c. diff --git a/gopher/phlog/007.txt b/gopher/phlog/007.txt new file mode 100644 index 0000000..372ab53 --- /dev/null +++ b/gopher/phlog/007.txt @@ -0,0 +1,51 @@ +Choosing a Phormat pt. 3 [2021-11-11] +------------------------------------------------------- + +Keeping the title the same to hopefully make it easier +to get threads going between posts... + +I wanted to callout an interesting observation I read +on the gemini FAQ [1] about text vs menu content +serving. The observation is that menus are appealing +because they allow hyperlinking (with restrictions, +like way outdated content types); however, using a +menu that is largely text (`i` info types) is a +_really_ inefficient way to serve up content, due +to the phony selectors and hostnames that come with +it! + +As a practical example, this phlog.txt, including +this post, is 7396 bytes, but if it was served as +a *.gph file, it becomes 11131 bytes! That's 1.5x +the size (~1/3 overhead)! + +This is also discussed a bit on the gemlog of +mozz.us [2], which describes the history of `i`. +`i` isn't part of the original RFC, and it _seems_ +that the original gopher team weren't thrilled to +add it. Of course, `i` won out over plain menus +because people like to see a little context... but +the "pure" gopher way would be to put said context +in a file named ABOUT and be done with it! + +I think this is all interesting because people are +making some really cool gopher apps out of the +menu format (like stagit-gopher, for instance). +But maybe this is the wrong way to go about things? +in the sense that it would benefit from a more +flexible format, like text/gemini... + +Anyways, to go full circle, this revelation about +phony selectors reaffirmed my decision to use +a plaintext file instead of a gopher menu for this +phlog. + +It's an interesting hypothetical though--is +Gopher as useful without `i`? Does the lack of +MIME types hinder its future adoption? + +It does still serve well as a plaintext delivery +system, IMHO. And this phlog is a lot of that :) + +[1]: https://gemini.circumlunar.space/docs/faq.gmi +[2]: https://portal.mozz.us/gemini/mozz.us/journal/2021-05-27.gmi diff --git a/gopher/phlog/008.txt b/gopher/phlog/008.txt new file mode 100644 index 0000000..7c08707 --- /dev/null +++ b/gopher/phlog/008.txt @@ -0,0 +1,39 @@ +Choosing a Phormat: pt 4 -- The Great Split +------------------------------------------- +Thu Nov 11 22:38:24 EST 2021 + +Ok ok, hopefully this is the last post on this +topic, I know it's been QUITE the series. As a +refresher I went from: + +1. A single gophermap as a blog +2. A single text file +3. Analyzing the differences + +And now I'm here in part 4 to tell you that the +future of this phlog is multiple files. + +Why? + +1. Linkability -- I want to be able to share an + individual post! +2. Syndication -- individual URI's enable an RSS + feed +3. Bandwidth-friendly -- of course my phlog.txt + was NOWHERE near the JS bloat that is the + modern web (and probably never will be), but + small files are faster! + +So here we are! + +I briefly toyed with the thought of putting the +titles in the URI, for example: + + gopher://alexkarle.com/phlog/008-choosing-a-phormat-pt-3.txt + +But, I ended up deciding that the title doesn't +add too much value to end users. I kinda like the +XKCD-like (or RFC-like) style of just using a +number :) + + gopher://alexkarle.com/phlog/008.txt diff --git a/gopher/phlog/index.gph b/gopher/phlog/index.gph new file mode 100644 index 0000000..8f29249 --- /dev/null +++ b/gopher/phlog/index.gph @@ -0,0 +1,22 @@ + + Welcome to the + __ ___ + /\ \ /\_ \ + _____\ \ \___ \//\ \ ___ __ + /\ '__`\ \ _ `\ \ \ \ / __`\ /'_ `\ + \ \ \L\ \ \ \ \ \ \_\ \_/\ \L\ \/\ \L\ \ + \ \ ,__/\ \_\ \_\/\____\ \____/\ \____ \ + \ \ \/ \/_/\/_/\/____/\/___/ \/___L\ \ + \ \_\ /\____/ + \/_/ \_/__/ + + just a collection of thoughts.. + +[0|[2021-11-11] Choosing a Phormat pt. 4|/phlog/008.txt|server|port] +[0|[2021-11-11] Choosing a Phormat pt. 3|/phlog/007.txt|server|port] +[0|[2021-11-10] What's in a RFC?|/phlog/006.txt|server|port] +[0|[2021-11-07] Server Migration|/phlog/005.txt|server|port] +[0|[2021-11-06] Launch Plan|/phlog/004.txt|server|port] +[0|[2021-11-04] Momentum|/phlog/003.txt|server|port] +[0|[2021-11-03] Choosing a Phormat pt. 2|/phlog/002.txt|server|port] +[0|[2021-11-03] Choosing a Phormat|/phlog/001.txt|server|port] -- libgit2 1.1.1