Code Monkey home page Code Monkey logo

fist-protocol's Introduction

Fist Protocol

Design

The fist protocol is inspired by the finger protocol and the ways which finger was used people.

finger is said to have be created back in 1971.

I was using finger in the 1990s — and maintained my own finger (.plan) file. Back then, my finger (.plan) file contained:

  • contact information,
  • URLs to my presence on other parts of the Internet,
  • a short biography,
  • a journal,
  • articles,
  • jokes,
  • a bunch of ASCII art.

I stored all that information in separate files, which were compiled into a finger .plan file.

Back then I (and I suspect most people) accessed finger from a terminal or terminal emulator, connected to a Unix system, by invoking command similar to:

finger username

(Here username would be replaced by the person's username on that Unix system.

So, for example:

finger joeblow

Or:

finger dariush

Finger Protocol Advantages

Some desirable qualities of the 1970s era finger protocol are:

  • ✅ it is a human-legible protocol
    • rather than just a programmer-legible or machine-legible protocol
  • ✅ the protocol is simple enough for even a more junior software developer to be able to understand it
  • ✅ the protocol and default data-format are simple enough for a competent software developer to be able to create a (simple) working client as a weekend project
    • ✅ if the default data-format is dumped to a terminal or terminal emulator it is human-legible
  • ✅ the protocol is simple enough for a competent software developer to be able to create a (simple) working server as a weekend project
  • ✅ all of a (single) user's content is provided as a single download
  • ✅ a client could make a request from a server for a user who is not (necessarily) local to that server
  • ✅ key-value pairs which are in a format that is human-legible, programmer-legible, and machine-legible.

Finger Protocol Disadvantages

Some undesirable qualities of the 1970s era finger protocol are:

  • when a client receives a response from a server, it does not know whether it received all the data or not, as, for example, the network connection could have been disconnected prematurely, but there is no way to detect this,
  • there is no tamper detection,
  • there is no way to determine whether the finger (.plan) file was actually from the user whose content was requested,
  • there is no privacy,
  • the entire finger (.plan) file must be download each time, even if the exact same finger (.plan) file was previously downloaded,
  • identity is strictly tied to an Internet domain,
  • there is no official way of segmenting the download (into sub-pages).

fist-protocol's People

Contributors

reiver avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.