Keep It Simple Text (KIST)

KIST combines the best elements of various plain text markup languages I’ve used or developed over the past forty years. I assume the source text must be easily understood by casual readers. To the extent possible I exploit conventions already used by plain text typists (in email for example). The most basic of these conventions are:

  • Separate paragraphs, headings, lists, etc. with blank lines.
  • Precede headings with pound signs (#).
  • Precede list items with tabs.
  • Bracket words for emphasis with asterisks (*).

KIST aspires to the “Minimal Ink Principle” proposed by Edward Tufte in 1983: “The ratio of ink that conveys information vs the total ink used should approach unity.”

KIST aspires to “fail gracefully” when something isn’t quite right.

Background

In the beginning there was Text. By “Text” I mean the digital representation of characters from the major phonetic languages in use today. And because I’m writing in English, I will focus there. Things first come into focus with the “American Standard Code for Information Interchange” (ASCII) back in 1961. It represented all the characters found on typewriters of the time (a-z, A-Z, 0-9, with assorted punctuation). ASCII is embedded in modern encoding schemes such as Unicode and UFT-8. Various systems evolved to process and display text on screens and paper.

Then there was HyperText–the ability to link words to information in other locations. Many developers proposed hypertext systems (myself included), but none dominated until “HyperText Markup Language” (HTML) came on the scene in 1980. After five major revisions it has become the de facto standard for most electronic publishing.

For all its strengths HTML is somewhat hard to write freehand. It has complex syntactical rules that are easy to break (the ubiquitous “unclosed tag” problem for example). Writers want to write–without focusing on a language intended to be read only by computers. So programmers immediately began inventing ways to generate HTML from other formats. This 1996 list from CERN has over 80 entries, including my own MTX.

Synthesis

KIST combines the best ideas from several sources:

  • MTX (paragraphs, headings, lists)
  • TSV (tab separated values, tables)
  • Email (block quoting)
  • Action Journaling (task lists)
  • HTML (hypertext, etc.)

Examples

A simple document structure:

  Title
  # Heading 1
  ...content...
  ## Subheading 1a
  ...content...
  #Heading 2
  ...etc...

Nested lists:

    Fruit
        apple
        banana
        orange
    Veggies
        carrot
        rutabaga

An inline image:

  ^Flower Photo(flower.jpg)

A hypertext link:

  A line with a ^link(more.html) to more info.

My History of Textual Tinkering

  • 1988 HYTEXT Hypertext Publishing System for MS-DOS
  • 1989 Conversion of Medical Textbooks with AWK (NLM Fellowship)
  • 1996 MTX Marked TeXt for Web Publishing (U of Fla)
  • 2000s Action Journaling for Paper, Computer & Web
  • 2016 TableTop – Table Manipulation App
  • 2020 Keep It Simple Text (KIST)

New Hammock 2023

History

For the height of this sort of deliciousness is to have nothing but the blanket between you and your snugness and the cold of the outer air. – Herman Melville (Moby Dick)

I became aware of Hammock Camping back in 2016. Luckily my first hammock was reasonably well designed and built. Seven years later that hammock has taken me many places and taught me a lot! Unfortunately it is showing some wear and I’ve been looking for a possible replacement.

My Original Hammock
My Original Hammock

One of the things I learned is to keep things as simple as possible. That first hammock was unusual–having a short tent pole spreader at the shoulder (vertical orange bar in photo above). This eliminated the need for tying the hammock out when no rain threatened, and eliminated two extraneous lines to trip over! The rainfly was a standard 10×10 foot diamond with the ridge on the long axis. It also served as the de facto ridge-line when hanging the hammock up. Deploying it took only two stakes and I added some shock-cord to help keep it taut.

Four Point Suspension
Four Point Suspension

I call this the “four point suspension rule” and it works! Minimal trip hazard–most nights you just hang up and jump in. Even with the fly fully deployed it is easy to enter from any quadrant. I carry a few lengths of lightweight rope to solve minor problems as they come up.

I had to search hard to find a hammock with a single aluminum spreader pole similar to the above. Most “spreader” hammocks have non-removable, self-deploying wands at both ends. This makes them harder to pack up, since you have to fold them in a very precise way. I bought one of these a few years ago and found that it made a better bugnet tent on the ground. It works when hung, but not very well. The spreaders don’t spread, they just support the netting. Newer models appear to have wands closer to the ends and that arrangement might work better. (?)

Setting Up the New Hammock

Spreader and Netting

This “TravelBird” hammock looked promising and was not very expensive. The first thing you’ll notice is the spreader pole on the outside (my original had the pole inside the netting). When empty the whole thing tends to tip over in the wind. Not so much with gear in it. (The video instructions tell you to stake it out, but there really is no need to do this.)

New Hammock
New Hammock

Here’s a closeup of the spreader in action. You can also see the standard carabiner suspension and entry zipper. Note that these are not the supplied straps, which are two feet shorter and could not span the distance between my “hammock testing” trees.

Hammock Spreader
Hammock Spreader

Note that you can enter from either side, and the netting folds away into a pocket at the foot when you don’t want it. (Nice!) The dark netting is also better for stargazing at night.

Hammock Netting Folded
Hammock Netting Folded

When you lay down in the hammock the spreader bends and keeps quite a bit of tension under your shoulders. I’m still experimenting with proper pitch for the most comfortable effect. My only major complaint–at only 100 inches it’s too short. It should be 104-106 inches IMO. I’m 6 foot 2, so if it works for me it will probably work well for anyone who is shorter.

Inside Hammock Pano
Inside Hammock Pano

Rainfly

The rainfly is a custom shape and the spreader supports it just like a modern tent. The problem is the inadequate ridge-line tension using the weak elastic tabs on the ends. I re-engineered this with some shock-cords that tighten the fly and allow it to rise above the netting for better airflow.

Weak Fly Attachment
Weak Fly Attachment

I added a six inch shock-cord loop and hook.

Better Fly Attachment
Better Fly Attachment

As you can see there is more tension on the fly. And when the hammock is loaded the fly can better maintain both height and tension.

Fly Under Tension
Fly Under Tension

The fly can be tucked on both ends to keep out blowing rain. This works very well!

Fly Tucked Under
Fly Tucked Under

I’ve found that in many situations the foot can be left lightly tied or loose. The side pull-out tabs can be tied to each other as shown below (black tabs near the ground).

Loose Footed Fly
Loose Footed Fly

If more wind is anticipated you can stake out the fly as shown below. The hammock came with thin elastic cords that I replaced with heavier shock-cords and lightweight rope. (The knots are an adjustable Taut-Line Hitch and a Zeppelin Bend to connect cord to rope.)

Hammock Knots
Hammock Knots

The final result meets the four point rule outlined above, and keeps the head and sides clear of ropes!

Staked Out Fly
Staked Out Fly

If you want to hedge your bet you can reef the fly along the ridge-line. This also makes it easy to pack up when you’re breaking camp. Note that one of the reef points was not sealed properly and caused a minor leak. I will be adding some seam sealer to address this.

Fly Reefed at Ridge-Line
Fly Reefed at Ridge-Line

Note that this is the first hammock I’ve seen where you can access and deploy part of the rain-fly from the inside!

Fly Access from within the Hammock
Fly Access from within the Hammock

There are two pockets, one at the foot and one along the right side. As always, I wish there were more pockets and larger. A “loft” near the head would also be helpful.

Hammock Pockets
Hammock Pockets

Recommendations

  • PROS
  • a good hammock overall, at a great price (~$69)
  • single external pole design, fewer ropes!
  • enter from either side
  • netting folds out of the way
  • dark netting is good for stargazing
  • CONS
  • too short (needs 4-6 inches more IMO)
  • rainfly needs better suspension (easy to fix)
  • included hanging straps are adequate, but short
  • no ridge-line, so harder to hang (minor)
  • side-zipper bag included, a stuff sack would be better
  • no instructions, videos are not that helpful

“Wisdom” Bot for Mastodon

I left the Birdsite about six months ago when the new owner started mucking about.

No regrets! Mastodon has been so much better! I decided to try my hand at creating an automated “robot” to post quotations alongside some of my photographs.

Wisdom in Space Posts Every Four Hours

Mastodon is much more civilized and well organized—including best practices for social media bots. There is even a server dedicated to bots called “botsin.space”–so I called my new bot “Wisdom in Space“.

There are many helpful websites to get started. Most use the mastodon interface package for Python. This is the first time I’ve written code in the python language, but fortunately the learning curve isn’t very steep. The biggest conceptual hurdle for me was understanding and using virtual environments on the shared server. Once I got those pesky details worked out I set up a cron job to post every four hours. The quotes are in a tab-delimited text file and the images are in a nearby directory. Note the development code below works locally on my laptop. The directory paths and other details are different on the server. I hope someone finds this useful!

#
#	wisdombot 0.2
#	quote of the day service for mastodon
#	copyright richard rathe 2023
#	(cc) attrib-noncomm-share-alike
#

import re

import glob

import random

from mastodon import Mastodon

quote_list = []

with open('wisdom.dat') as file:

	for line in file:

		line = line[:-1]  # remove newline

		quote_list.append(line)


qmax = str(len(quote_list))

image_list = glob.glob('images/*.jpg')

imax = str(len(image_list))

qrand = random.randrange(int(qmax))

line = quote_list[qrand]

line = line.replace('—'  , '--')	# fix entities
line = line.replace('"'   , '\"')
line = line.replace('é' , 'e')
line = line.replace('ø' , 'o')
line = line.replace('ö'   , 'o')
line = line.replace('&'    , '&')

data_list = line.split('\t\t')		# double tab delimited

irand = random.randrange(int(imax))	# pick image at random

img = image_list[irand]

match = re.search(r'^images/([a-z0-9-]+)', img, re.I)

if match:
	stem = match.group(1)
else:
	stem = ''

ikeyw = ''

for i in stem.split('-'):
	i = i[0].upper() + i[1:]	# capitalize
	ikeyw += " #" + i

ikeyw = ikeyw[1:]	# nuke leading space

keyw = ''

for i in data_list[2].split('/'):	# keywords are '/' delimited
	i = i.replace(' ', '')
	i = i.replace('-', '')
	keyw += " #" + i

keyw = keyw[1:]		# nuke leading space

quote = data_list[3]

name = data_list[0]				# author name

ntag = re.sub('[^0-9a-zA-Z]+', '', name)	# author hashtag
ntag = '#' + ntag

other = data_list[1]				# source info (if available)

if other == 'None':
	other = '';
else:
	other = ' (' + other + ')'

out = quote + '\n    -- ' + name + other + '\n\n'

out += '⬆ #Quotes ' + ntag + ' ' + keyw + '\n\n⬇ #Photography ' + ikeyw

if len(out) < 500:		# limited to 500 chars

	print('\n' + out + '\n')

	mastodon = Mastodon(
		access_token = 'token.secret',
		api_base_url = 'https://botsin.space/'
	)

	media = mastodon.media_post(img, description="photo by richard rathe")
 	mastodon.status_post(out, media_ids=[media])