commit 758985bdb85ec8208c509ae1202b361efdd389cf (patch)
parent 47bc4804445b5c60d12c3fd1cf9fd739b07c5cbb
Author: Alex Karle <alex@alexkarle.com>
Date: Mon, 15 Nov 2021 00:16:38 -0500
gopher/blog: Merge gopher build recipe, announce on blog
So, if you can't tell by the slew of commits leading up to this one, the
gopher commits were *actually* in their own private repo. As discussed
in 009, I decided to merge it with alexkarle.com, and this commit
represents that.
Of course, that merge also warrants a post (and the deprecation of
text.alexkarle.com). So this commit bundles in the phlog and blog
announcements (can you tell which took 1hr+ to write and which took 5m?
:P -- here's to a brave new world of micro-phlogging).
Diffstat:
14 files changed, 180 insertions(+), 82 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -1,8 +1,6 @@
# generated html from man pages
-*.html
-*.txt
-!jam-tuesday/index.html
-!welcome.txt
+/*.html
+/*.txt
# atom feed is generated by ./bin/genatom.sh
atom.xml
diff --git a/LINKS b/LINKS
@@ -5,4 +5,7 @@ pass.1 https://www.passwordstore.org
newsboat.1 https://newsboat.org
stagit.1 https://git.codemadness.org/stagit/
git-daemon.1 https://git-scm.com/docs/git-daemon
-gophernicus.8 https://gophernicus.org
+gophernicus.8 https://gophernicus.org
+bombadillo.1 https://bombadillo.colorfield.space/
+lynx.1 https://lynx.invisible-island.net/
+sacc.1 https://git.fifth.space/sacc
diff --git a/Makefile b/Makefile
@@ -2,7 +2,7 @@
#
# a tale of two builds
#
-# This Makefile builds both text.alexkarle.com (text-only) and
+# This Makefile builds both gopher://alexkarle.com (text-only) and
# alexkarle.com (html) from the same mdoc(7) by leveraging inference
# rules. Since this generates a LOT of derived files, it's recommended
# to run BSD make and run `make obj` first to get an out-of-tree build.
@@ -12,7 +12,7 @@
# build [default] -- generates html and text in obj (OpenBSD) or $PWD
# obj -- makes the obj/ directory for out-of-tree build on OpenBSD
# clean -- deletes html and text artifacts
-# install -- install to $DESTDIR/{www,text} (default: /var/www/htdocs)
+# install -- install to $DESTDIR/{www,gopher} (default: /var/www/htdocs)
# jams -- regenerate jam-tuesday index and stats files
# gmake defines CURDIR, OpenBSD defines .CURDIR -- one should work
@@ -23,11 +23,13 @@ DESTDIR = /var/www/htdocs
HTML != echo $(DIR)/*.[1-9] | sed 's@$(DIR)/\([^\.]*\)\.[1-9]@\1.html@g'
TEXT != echo $(DIR)/*.[1-9] | sed 's@$(DIR)/\([^\.]*\)\.[1-9]@\1.txt@g'
SETS != find $(DIR)/jam-tuesday -name '[0-9][0-9][0-9][0-9]-*'
+NOTES != find $(DIR)/gopher/notes/all
BUILT = $(HTML) \
$(TEXT) \
atom.xml \
- index.html
+ index.html \
+ gopher/notes/index.gph
# Top level targets
@@ -38,17 +40,27 @@ build: $(BUILT)
jams: jam-tuesday/stats jam-tuesday/index.html
obj:
- mkdir -p obj/jam-tuesday obj/bin
+ mkdir -p obj/jam-tuesday obj/bin obj/gopher/notes
.PHONY: install
install: build
- install -m 755 -Dd $(DESTDIR)/text/jam-tuesday $(DESTDIR)/www/jam-tuesday
- install -m 444 $(SETS) $(DIR)/jam-tuesday/stats $(DESTDIR)/text/jam-tuesday
+ # HTML to DESTDIR/www
+ install -m 755 -Dd $(DESTDIR)/www/jam-tuesday
install -m 444 $(SETS) $(DIR)/jam-tuesday/index.html $(DESTDIR)/www/jam-tuesday
install -m 444 *.html atom.xml $(DIR)/LICENSE $(DIR)/style.css $(DESTDIR)/www
- install -m 444 $(DIR)/LICENSE $(DESTDIR)/text
+ # Text + gopher exclusives to DESTDIR/gopher
+ cd $(DIR) && pax -rw gopher $(DESTDIR)
+ pax -rw gopher $(DESTDIR) # for out-of-tree builds
+ install -m 444 $(SETS) $(DESTDIR)/gopher/jam-tuesday
+ install -m 444 $(DIR)/LICENSE $(DESTDIR)/gopher
for f in *.txt; do \
- install -m 444 $$f $(DESTDIR)/text/$$(grep $$f $(DIR)/ORDER); \
+ install -m 444 $$f $(DESTDIR)/gopher/blog/$$(grep $$f $(DIR)/ORDER); \
+ done
+ cp $(DIR)/gopher/bin/* $(DESTDIR)/gopher/code
+ for d in jam-tuesday blog code; do \
+ (cat $(DIR)/gopher/$$d/index.gph; \
+ $(DIR)/gopher/bin/dirlist $(DESTDIR)/gopher/$$d)\
+ > $(DESTDIR)/gopher/$$d/index.gph; \
done
.PHONY: clean
@@ -75,6 +87,8 @@ bin/fixlinks: LINKS
awk '{ printf " \\\n -e s#https://man.openbsd.org/%s#%s#g", $$1, $$2 } END { printf "\n" }' $(DIR)/LINKS >> $@
chmod +x $@
+gopher/notes/index.gph: $(NOTES)
+ (cd $(DIR)/gopher/notes && $(DIR)/gopher/bin/notetag) > $@
# Inference rules (*.txt and *.html)
$(HTML): bin/genpost.sh bin/fixlinks
diff --git a/ORDER b/ORDER
@@ -15,3 +15,4 @@
110-text-only.txt
111-make-obj.txt
112-use-git.txt
+113-burrowing.txt
diff --git a/README.md b/README.md
@@ -15,15 +15,16 @@ On OpenBSD, running `make obj` is recommended before running `make` to
leverage the out-of-tree build extension (see the bit about `.OBJDIR` in
the man page!).
-text.
------
+gopher://
+---------
A pure ascii dump of the [mdoc(7)][mdoc] content of the www site, served
-over HTTP, HTTPS, and Gopher (by [httpd(8)][httpd] and
-[gophernicus(1)][gophernicus] respectively!
+over Gopher by [geomyidae(1)][geomyidae] respectively!
Builds via [make(1)][make] at the same time as the HTML. See above for
instructions.
+Also has gopher-exclusive content!
+
git.
----
I use a simple setup of git-daemon for anonymous (read-only) downloads,
@@ -52,4 +53,4 @@ and [my-old-man(7)][my-old-man].
[git-daemon]: https://git-scm.com/docs/git-daemon
[self-hosted]: https://alexkarle.com/self-hosted.html
[my-old-man]: https://alexkarle.com/my-old-man.html
-[gophernicus]: https://www.gophernicus.org/
+[geomyidae]: http://r-36.net/scm/geomyidae
diff --git a/blog.7 b/blog.7
@@ -16,6 +16,11 @@ For an up to date list of software/hardware I use, see
.Sh POSTS
.Bl -tag -width "XX/XX"
.It 11/21
+.Xr burrowing 7
+- from
+.Xr text-only 7
+to gopher-only
+.It 11/21
.Xr use-git 7
- non-standard uses of
.Xr git 1
diff --git a/burrowing.7 b/burrowing.7
@@ -0,0 +1,113 @@
+.Dd November 15, 2021
+.Dt BURROWING 7
+.Os
+.Sh NAME
+.Nm burrowing
+.Nd from
+.Xr text-only 7
+to gopher-only
+.Sh DESCRIPTION
+This past month,
+I've spent a lot of time learning about gopher.
+It's truly a fascinating alternative to the world wide web,
+not just in the content found there
+but also in terms of the protocol itself.
+.Pp
+As of this writing, I've decided to deprecate
+.Lk https://text.alexkarle.com
+in favor of serving that content (and more!) over gopher
+instead, exclusively.
+.Sh IMPLICATIONS
+This shouldn't have much impact on this
+.Xr blog 7 .
+After all,
+.Xr text-only 7
+was an experiment to begin with!
+I'll still keep publishing semi-regularly here,
+I just don't plan on maintaining a text dump via HTTP.
+.Pp
+I will, however, start publishing gopher-only content.
+There's two main reasons for this:
+.Pp
+.Bl -enum -compact
+.It
+I want to see more activity on gopher
+.It
+Gopher is easier to publish on
+.El
+.Pp
+Admittedly, number 2 is my own doing.
+I moved this blog to
+.Xr mdoc 7
+willingly
+.Xr ( my-old-man 7 )
+to learn the language.
+I've found that it slows my raw output,
+which,
+while fine for longer form pieces,
+is a pain for shorter-form thoughts.
+No regrets (I learned a ton!),
+but shorter-form thoughts do much better in plaintext!
+.Pp
+The first reason is a theme for this blog:
+be the change you want to see.
+I would love to see more content on gopher,
+so I'm taking the plunge.
+.Sh THE PITCH
+So, why gopher?
+Probably the biggest reason to explore gopher is
+the content.
+It's a parallel network totally untouched by
+commercial interests.
+You won't see a single ad.
+.Pp
+The second reason to try gopher lies in the
+protocol itself--gopher has a standardized menu
+interface, and individual gopherholes cannot
+change the way you interact with them beyond
+the standard.
+In a world where it seems every bit of the
+web's UI has been rewritten in JavaScript (looking
+at you, <div>'s that should be <button>'s),
+it's wildly refreshing
+to just have a predictable menu.
+.Pp
+So, gopher separates the interaction (menus)
+from the content (can be anything, but is usually
+plaintext).
+I think this is a cool design choice
+because it emphasizes what the gopher protocol
+is really about: fetching documents.
+.Pp
+Ultimately,
+it's hard to describe and much better experienced.
+For a quick dip,
+try out a proxy like
+.Lk https://gopherproxy.net .
+For client recommendations,
+I'd check out
+.Xr lynx 1 ,
+.Xr sacc 1 ,
+or
+.Xr bombadillo 1 .
+Bombadillo has gemini support too,
+gemini being another alternative internet protocol
+worth checking out.
+I'll likely put my stuff up there too,
+if time allows.
+.Pp
+Not sure where to start in your client?
+Go to
+.Lk gopher://alexkarle.com
+of course! :)
+.Sh SEE ALSO
+.Bl -bullet -compact
+.It
+.Xr blog 7
+.It
+.Lk https://datatracker.ietf.org/doc/html/rfc1436 RFC 1436 (Gopher)
+.It
+.Lk http://gopherproject.org
+.It
+.Lk http://gemini.circumlunar.space Gemini official site
+.El
diff --git a/gopher/LICENSE b/gopher/LICENSE
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2021 Alex Karle <alex@alexkarle.com>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/gopher/Makefile b/gopher/Makefile
@@ -1,27 +0,0 @@
-FILES = about.txt \
- LICENSE \
- index.gph \
- server.txt
-
-CODE = bin/notetag \
- LICENSE \
- Makefile
-
-.PHONY: build
-build:
- cd notes && ../bin/notetag > index.gph
-
-.PHONY: install
-install: build
- 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; \
- install -m 444 $$tag/* /var/gopher/$$tag; \
- done
- install -m 444 notes/index.gph /var/gopher/notes
- install -m 444 $(CODE) /var/gopher/code
- for d in jam-tuesday blog code; do \
- (cat $$d/index.gph; bin/dirlist /var/gopher/$$d) > /var/gopher/$$d/index.gph; \
- done
diff --git a/jam-tuesday/stats b/gopher/jam-tuesday/stats
diff --git a/gopher/phlog/009.txt b/gopher/phlog/009.txt
@@ -0,0 +1,21 @@
+Going Live on the Weblog
+------------------------
+Mon Nov 15 00:00:23 EST 2021
+
+Tonight I made the decision to merge my phlog repo in with
+my alexkarle.com repo and announce the phlog on my blog. I
+had previously kept the repos separate to make it truly
+exclusive (i.e. no git history on the WWW), but that felt
+like a pain for not much gain (if anyone is motivated enough
+to look at the git history, they've put in more effort than
+going to a gopher proxy).
+
+The announcement was for two reasons:
+
+ 1. Raise awareness of Gopher
+ 2. Deprecate text.alexkarle.com
+
+With this gopherhole serving up the same content and more,
+text.alexkarle.com didn't feel super necessary anymore.
+
+If anyone's reading this from my blog announcment, welcome!
diff --git a/gopher/phlog/index.gph b/gopher/phlog/index.gph
@@ -12,6 +12,7 @@
just a collection of thoughts..
+[0|[2021-11-15] Going Live on the Weblog|/phlog/009.txt|server|port]
[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]
diff --git a/text-only.7 b/text-only.7
@@ -73,6 +73,11 @@ there too.
Of course, if you're curious to see how the bits come together,
I publish all of the site source at
.Lk https://git.alexkarle.com/alexkarle.com !
+.Sh UPDATE
+As of November 15, 2021, text.alexkarle.com was moved entirely to gopher.
+See
+.Xr burrowing 7
+for more info.
.Sh SEE ALSO
.Bl -bullet -compact
.It
diff --git a/welcome.txt b/welcome.txt
@@ -1,16 +0,0 @@
-Welcome to text.alexkarle.com!
-
-This is an experimental version of my main site (alexkarle.com)
-in text-only format. For maximum retro effect, I serve up this
-directory over HTTP, HTTPS, and Gopher.
-
-I've been serving txt versions of my mdoc(7) for a while over
-Gopher, but decided to formalize the subtree generation and serve
-it over HTTP after reading text.causal.agency, which you should
-totally check out. (aside: I'd like to state that I've been doing
-the whole mdoc(7) thing before I knew about causal.agency and am
-not a complete copycat (much respect, great minds think alike and
-all that) :) )
-
-I hope you enjoy your stay! If you think this is cool, don't
-hesitate to reach out: text@alexkarle.com