[F] ------------------------------------------------------------ [A] BottlePost - a tiny phlogging platform for Gophernicus [Q] ------------------------------------------------------------ (Q) What is the BottlePost tiny phlogging platform ? (A) In terms of purpose it's similar to a Gemini tinylog, though because posts are submitted as a single string it is probably best for short missives. The main advantage is posts can be made from Gopherspace using most any client, and posting can be restricted (see below). (Q) Can posting be restricted ? (A) Yes, posting can be restricted by IPv4 address and/or a PIN or passphrase. Multiple IP addresses can be authorized and addresses can contain regex patterns. (Q) Is it semi-anonymous ? (A) Other than host IP traffic logs posts are identified only by an ever-changing 8 character alpha-numeric session ID tag. (Q) How can I prevent my IP address from being logged ? (A) The torsocks package, available for most platforms, can be used with many Gopher clients. Using a VPN is another option. This may make restricting by IP a bit challenging. (Q) How persistent are posts ? (A) It's configurable; they can persist indefinitely or be culled automatically to a set amount. (Q) Is there a length limit on posts ? (A) Probably but it varies between platforms and clients. Keeping posts under 256 characters is a good rule of thumb. (Q) Can posts be revised ? (A) Yes, the following actions are supported (post N must exist): (d)elete: enter '[PIN]:dN' (r)eplace: enter '[PIN]:rN ' (s)ed-edit: enter '[PIN]:sN///[g]' For (s), regex and/or string can be be quoted; "g" option repeats substitution for each match of regex pattern. (Q) I selected 'reload' but am not seeing new posts ? (A) Client refreshing varies; most support Ctrl+R though some like the Gopherus client use F5. If all else fails check the docs. (Q) Which Gopher clients don't work ? (A) UMN Gopher can post but not scroll; work-around is to use 'S' to save menu to local file for viewing (background client first). (Q) What about using nc(1) / netcat(1) ? (A) Both work fine as simple clients; some examples: $ echo '/users/bottles/' |netcat sdf.org 70 |less # reading: $ echo '/users/bottles?my post' |nc -N sdf.org 70 # posting: Readability is improved by filtering output through AWK: $ |awk -F'\t' '{print substr($1,2)}' |less (Q) Anything else ? (A) Staring at screens all day is bad for you! Make time to engage the living world while you're still a part of it. :: internals :: (Q) How was this implemented ? (A) Entirely in AWK, specifically MAWK, a nawk variant with some extensions like time functions. (Q) Does it only work with MAWK ? (A) No, the code has been extended so as to accomodate pretty much any modern AWK variant, including those lacking time functions. (Q) Is this platform Gophernicus specific ? (A) Yes, unfortunately all Gopher servers implement CGI scripting their own way if they support CGI at all, which many don't. (Q) Where can I get the code ? (A) Coming soon! Documentation and explanatory comments are being added so as to make it fairly easy to implement and customize.