#Gopher has been rummaging through my mind since last night, and I have a few thoughts and ideas I'd like to explore.
I hope I'm able to find time to write it down.
#Gopher has been rummaging through my mind since last night, and I have a few thoughts and ideas I'd like to explore.
I hope I'm able to find time to write it down.
First off, there's the issue of security. Without encryption, not only can an adversary see which resources you download, you're also vulnerable to man in the middle attacks, where they can edit anything you see.
Granted those risks aren't directly dangerous in a static system without access control, but if we start posting data through Gopher, then we need encryption.
I'm not sure if slapping SSL on top of Gopher will solve all of this, but at least most of this.
2) Caching. As far as I can gather, there's no caching support in the protocol and O don't know if any clients implement something, but I'll present my take.
I see two orthogonal approaches;
2.1) extending the protocol to add (optional) timestamps to any menu-link. If the stamp is older than a local cache, show cache. This might be challenged by interserver links, where the menu-server won't know when the resource is updated.
(2.2 "manual caching" in next toot)
2.2) "Manual" caching aka 100% clientside caching controlled partially by the user.
A client would cache any resource (where it makes sense) for some set time, and use the cache for all subsequent requests in that time.
The client fetches the resource in the background and compares. If there's differences*, then the client asks whether to switch to the new version.
In addition the client might allow sticking something "permanently" in cache, making it available offline at all times.
Federati Nu: Federated N-series GNU Social is a social network, courtesy of Federati Networks. It runs on GNU social, version 2.0.0-dev, available under the GNU Affero General Public License.
All Federati Nu: Federated N-series GNU Social content and data are available under the Creative Commons Attribution 3.0 license.