[gopher] gopher++ (gopher1) protocol

Kim Holviala kim at holviala.com
Mon Jan 11 18:52:10 UTC 2010


On 2010-01-11 19:35, Cameron Kaiser wrote:

> In fairness to Kim, we did talk a little more favourably about having the
> server handle transcoding a few months ago.

Don't worry, I have a thick skin :-). Like I said, I'm just trying to 
find something to do other than mindlessly browsing websites.

> I don't mind server transcoding, btw, but my problems with Kim's ideas
> are:
>
> - Performance issues for the server figuring out if it has a gopher0 or
>    gopher1 response. This is the big kicker for me, though I appreciate the
>    attempt at backwards compatibility.

You mean the select(2) on stdin to figure out if more data is coming? 
That's not really a performance issue.... Yeah, the server has to have a 
small delay, but that can be really small (max tenth of a second), and 
the delay is only for gopher0 clients.

> - The server needs to be able to tell the client it *refused* to transcode,
>    or couldn't.

That's certainly something I left out, mostly because of backwards 
compatibility. Since all the client is getting back is the file with no 
metadata (gopher0) there's not much I can do... Like I said, I was 
aiming for 100% gopher0 compatibility.

>    Conversely,
> - The server needs to be able to tell the client there is nothing to
>    transcode (or simply a file not found), even if it is willing to.

gopher0 doesn't really allow sending metadata to the client... And I 
wanted everything to fall back to gopher0 cleanly.

> I support putting much of the work on the server, because I think Gopher's
> biggest benefit is a VIC-20 could be made to be a gopher client.

That was my idea with the extensions. Although I was not really thinking 
about the mighty VICs but mostly mobile stuff. I was trying to browse 
the web a week ago on a mobile GPRS connection on a moving train, and 
let me tell you that it wasn't fun. Gopher on the other hand worked nicely.

> That said, the three issues I have above would need to be resolved to my
> satisfaction before I'd support such a scheme in, say, Overbite or GopherVR.

Oh, my intention was never to "get support" from others :-). I was going 
to code a server and a client(s) all by myself just to see if the spec 
would work or not.


- Kim



More information about the Gopher-Project mailing list