> For people like me who often read something in Gemini/Gopherspace,
> then want to reference a few days later but cannot remember where
> they read it, a proxy which maintained full-text search of everything
> visited in the past month or so would be *super* handy, but I have no
> idea how to build such a thing.
I assume downloading every page into a local cache and running
something like
https://blevesearch.com/ on top of them when a
search request comes would work reasonably well.
I assume this wouldn't require _that much_ space, as most Gemini pages
(that I have encountered so far) are small, and text is really
compressible if the need comes up.
Changes to the cached pages could be stored with deltas/patches, so
that might be interesting for historical preservation too, assuming
most pages don't change that much, that often.
And all this can happen without leaving Gemini, like how GUS works.
> I'm kind of attracted to the idea of small, simple, do-one-thing-well
> proxies which can be chained together like "filter" programs in a
> pipeline...but I guess the TLS overhead would stack up quickly,
Since I am not exactly knowledgeable on TLS and other low-level
protocols (except knowing how to open a socket), how much would the TLS
overhead be if the proxy was hosted on the same machine as the client?
I assume modern CPUs can easily deal with the encryption work at
reasonable speeds, and the connection being local would probably get rid
of the majority of the network overhead.
Also another idea to throw into the pile: a "master" proxy that accepts
TLS connections, but delegates everything else into small filter
scripts. That way we can get rid of the TLS and networking overhead of
stacking multiple proxies on top of each other, while keeping the
flexibility and simplicity of the pipeline approach. The one drawback I
can think of is the scripts would no longer be regular proxies on their
own, and if someone wanted to use even just one of these scripts, they
would need to install the entire pipeline framework.
But at that point, why not build the pipelines into clients? Assuming
these scripts work via "stdin -> (script magic) -> stdout", even shell
clients could run them by piping their "gemini receive" command into
them. Long-running scripts could probably just be accessed via wrappers
with netcat, or something else I haven't thought of yet.
Anyway, these are all just some ideas that I am throwing here. I might
even try building some of them if there's any interest, but I am pretty
sure there will be some issues I haven't thought of. Let me know what
you all think!
--
Have a nice (day|night|week(end)?)
~ Ecmel B. Canl?er ~