Gopher Stuff
============================================================

This is just a short weekend update.  I don't want to burn either
your or me out on Nim, so I'll probably take little breaks now and
then.

Last week, I added a `gopher/` directory to RGB (Ratfactor's
Gopher Burrow on SDF) for Gopher files, but I didn't put anything
in it.  [1] That was an unintentional tease.  It turns out, I
wasn't as ready as I thought I was to share a couple tiny filez.

(You know what?  I attribute some of my success with computers to
my seemingly incurable proclivity to underestimate the effort
required to finish programming projects.  I think if I knew how
long even the smallest program would end up taking me, I wouldn't
start *most* of them.  That includes today's offering, which I
consider a stop-gap on the road to much grander things.)


Ken
------------------------------------------------------------

At any rate, the first thing I'm putting in the gopher directory
is a script called `ken`.  [2] It's short for "Kenny Phloggins",
which is a silly name that popped into my head while making some
changes.

Technically, it's the continuation of the ludicrously minimalist
system I included in my Aug 13 phlog post "Gopher Logging in
Eleven Lines of Shell".  [3] Some of the lines remain.

Shortcomings:

- Uses Bash-isms such as `select` for creating menus

- Is hard-coded to use Vim as the editor (though it could be
 easily updated to use $EDITOR)

- The `push` code is extremely specific to me

- In fact, the whole `src` and `public` directory structure is
 specific to me

- It uses Bitreich's tttml-fmt, which you'd need to install first

Having gotten that out of the way, I'm really happy with this
because:

1. It solves my "chicken and egg" problem wherein I'm relearning
the language I'd like to make my "real" tools (with)...but I want
to phlog in the meantime

2. It's completely pragmatic and useful - containing *exactly* the
functionality I need and not a drop more

3. It completely takes the tedium out of the create/edit/review
..  edit/review cycle and does it safely with backups after each
edit

4. It's built to work locally and then push changes to SDF on
demand


Usage
------------------------------------------------------------

When you start it up, `ken` reads the phlog's gophermap to get the
initial list of phlogs.  Then it presents a menu from which you
can either pick a phlog or create a new one:

       $ ./ken

       Kenny Phloggins says, "Welcome to the Danger Zone!"

       Phlogs read from src/phlog/gophermap:
        1) 2018-08-26-gopher-stuff
        2) 2018-08-24-Nim-day-2
        3) 2018-08-23-Nim-day-1
        4) 2018-08-20-In-praise-of-enthusiasm
        5) 2018-08-17-How-are-you
        6) 2018-08-15-Text-has-styles
        7) 2018-08-13-Gopher-Logging-in-Eleven-Lines-of-Shell
        8) 2018-08-12-Weekend-Tech-Scramble
        9) 2018-08-10-The-Logging-Habit
       10) 2018-08-09-First-Post
       11) NEW
       Select a phlog to edit:

If you select the NEW option, `ken` prompts for a title and then
creates the phlog entry and appends as link to the phlog
gophermap.  You're presented with both the gophermap and phlog
entry to edit.  Once you're done with the new entry, you're taken
back to the main menu.

At the main menu, you are given options for the selected phlog
entry.  Let's say you've pick an existing entry (rather than
creating a new one):

       Select a phlog to edit: 2

       Current entry: 2018-08-24-Nim-day-2
       1) List
       2) View
       3) Edit
       4) Push
       5) Quit
       Action:

You can view the entry (with less), edit the entry (currently with
Vim), or push the entry (using `scp` with my specific settings).
At any time, you can also go back to the list of entries or quit!

The neat thing about the push feature, for me, is that `ken`
solves a problem I've been consistently having with using `scp`
with SDF: for some reason, it fails about half the time with an
"access denied" error.  Retrying always works.  So `ken` retries
each push attempt up to three times, delaying 5 seconds between
each try to keep out of trouble.  No doubt the "access denied" is
due to user error on my part, but for now, this peaceably solves
my problem.


Welcome to the Danger Zone [4]
------------------------------------------------------------

I'm not sharing this because I expect anyone to actually use it.
I'm sharing it because I like looking at what other people have.
(Thanks, other people!) We all do things differently, which makes
for fertile ground for neat ideas.  Perhaps something in this will
be useful to someone else.

[1] gopher://sdf.org:70/1/users/ratfactor/gopher

[2] gopher://sdf.org:70/0/users/ratfactor/gopher/ken

[3]
gopher://sdf.org:70/0/users/ratfactor/phlog/2018-08-13-Gopher-Loggi
ng-in-Eleven-Lines-of-Shell [5]

[4] Not everyone is from the same cultural background, so let me
save you the search: Kenny Loggins is a singer/songwriter famous
for a ton of movie soundtrack tunes including "Danger Zone"
featured in the 1986 film "Top Gun".

[5] I swear I'll never again make a phlog entry with a filename as
long as that one!


Community Notes
------------------------------------------------------------

Thanks to solderpunk for VF-1!  I use it about half the time and
Lynx the other half.  They both have things I like too much to
give up.

I've also seen mention of a Bitreich client?  It's on my TODO list
to check out.

Also, I finally checked out Tomasino's `burrow` and that's a great
tool:

https://gitlab.com/jamestomasino/burrow/blob/master/burrow

I love all of the individualism on the Gophersphere!