# <!-- METAHEADER
# –––––––––––––––––––––––––––––––––––––––––––––––––– -->
"*": "https://raw.githubusercontent.com/wefindx/schema/master/method/oo-item.yaml"
# <!-- HEADER
# –––––––––––––––––––––––––––––––––––––––––––––––––– -->
"base:title": "0oo - Structured Internet Client"
"og:title": "Structured Internet Client"
"og:description": "For all intents and purposes, browser can be thought of as &quot;Unstructured Internet Client&quot;, because it can render arbitrary UI interact with arbitrary backends. However, the Internet data is getting increasingly structured. This can be seen in the shift of paradigm from creating custom HTML pages to creating public APIs as the main entry point to what application has to offer. The idea of structured internet client, is thus a client, that defines protocols for ranges of similar apps. An example of a structured multi-protocol client, is [Trillian](https://en.wikipedia.org/wiki/Trillian_(software)), a multi-protocol messenger. However, it is not only chat that has the …"
"og:image": "https://avatars0.githubusercontent.com/u/28134655"
"og:url": "/method/21001/"
"base:css": "/static/css/bootstrap.min.9c25540d6272.css"
"base:extra-css": "/static/css/base.57997aeac1df.css"
"base:favicon": "/static/favicon.acaa334f0136.ico"
"base:body_class": ""
"layout:logo": "/static/0oo.8d2a8bbef612.svg"
"layout:index": "/"
"layout:menu": "/menu/"
"layout:categories": "/intents/"
"layout:ideas": "/methods/"
"layout:projects": "/projects/"
"layout:users": "/users/"
"layout:about": "/about/"
"layout:help": "/help/"
"layout:bug_report": "https://github.com/wefindx/0oo"
"layout:login": "/accounts/login/"
"layout:light-off": "/darken/?darken=true"
"layout:set-multilingual": "/mulang/?mulang=true"
"layout:lang": "Kalba"
"layout:set-language-post-action": "/i18n/setlang/"
"layout:csrf-token": "cZwnIxFUe463zZwBbTNGWwY7tlB5cPjJAFGzqZu6rjnbvz0jWVuXULs0gFSdi41x"
"layout:input-next": "/method/21001/"
"layout:languages": [{"code": "ja", "is-active": "false", "name": "日本語"}, {"code": "lt", "is-active": "true", "name": "Lietuviškai"}, {"code": "zh-hans", "is-active": "false", "name": "简体中文"}, {"code": "en", "is-active": "false", "name": "English"}, {"code": "ru", "is-active": "false", "name": "Русский"}, {"code": "oo", "is-active": "false", "name": "O;o,"}]
# <!-- TOPIC
# –––––––––––––––––––––––––––––––––––––––––––––––––– -->
"item:parent:intents": [{"url": "/intent/937/", "title": "Internetas"}, {"url": "/intent/1140/", "title": "Internet Access"}]
"item:title": "Structured Internet Client"
"item:summary": "Like browser, but structured, based on high level protocols?"
"item:voting": +3
"item:voting:add": "/admin/hlog/voting/add/?method=21001"
"item:voting:csrf_token": "cZwnIxFUe463zZwBbTNGWwY7tlB5cPjJAFGzqZu6rjnbvz0jWVuXULs0gFSdi41x"
"item:voting:submit-value-option": {"selected": "[-]", "value": "-"}
"item:base-administration": false
"item:body": |
    For all intents and purposes, browser can be thought of as "Unstructured Internet Client", because it can render arbitrary UI interact with arbitrary backends.  However, the Internet data is getting increasingly structured. This can be seen in the shift of paradigm from creating custom HTML pages to creating public APIs as the main entry point to what application has to offer.
    
    The idea of structured internet client, is thus a client, that defines protocols for ranges of similar apps.
    
    An example of a structured multi-protocol client, is [Trillian](https://en.wikipedia.org/wiki/Trillian_(software)), a multi-protocol messenger. However, it is not only chat that has the need for very similar UI. For example, E-mail had same UI, regardless if POP or IMAP protocol was used. Also, there are many other things that are similar, like: shopping, video viewing, forums, etc., that today have hundreds of unique apps, that rely on their APIs, but coherent open-source UIs could be developed to allow the display and interact with such common content.
    
    If a general purpose client for Internet's structured data is created, then everyone's day-to-day work may be simplified.
"item:source-date": ""
"item:permalink": "/method/21001/?l=lt"
"item:owner": "Mindey"
"item:created": "2021-05-15T14:06:40.744001"
"item:ownerlink": "/user/147/Mindey"
# <!-- LINKS
# –––––––––––––––––––––––––––––––––––––––––––––––––– -->
"item:link:add": "/admin/hlog/link/add/?parent=21001"
"item:link:items":
- "id": "l-6001"
  "url": "https://m.slashdot.org/story/386066"
  "text": "Slashdot.org: Reinventing the Web browser"
  "note": |
    On reinventing Internet Browser. Multiple projects mentioned. Need to figure out their core ideas, and link.
  "owner": "Mindey"
  "ownerlink": "/user/147/Mindey"
  "permalink": "/method/21001/?l=lt#l-6001"
  "created": "2021-05-31T05:43:02.454084"
- "id": "l-65001"
  "url": "https://telegram.org"
  "text": "Super-apps are SICs? (WeChat / Telegram)"
  "note": |
    Explanation: [Super-apps](https://en.wikipedia.org/wiki/Super-app) are fundamentally integration points of various services provided on the internet over APIs (structured data) from various companies in a unified experience (app).
    
    While browser does the same for unstructured data (browser is an integration point for the web for human access), the structured internet client could be said to be a super-app, because it provides a human access to the web of APIs)
    
    Telegram's client application is open source, and structured. WeChat client application is closed source, and structured.
    
    While Google is going with Chromium and WebAssembly towards the direction of making the browser itself into such a client for both structured (by providing the option of running traditional apps inside browser) AND unstructued data, browser extensions actually compromise security... I think, there is a place for a highly secure open source structured Internet client, like what Telegram client could become.
  "owner": "Mindey"
  "ownerlink": "/user/147/Mindey"
  "permalink": "/method/21001/?l=lt#l-65001"
  "created": "2023-01-07T12:15:54.387407"
"item:project:items":
- "id": "p-5001"
  "title": "Treenity"
  "url": "/project/5001/"
  "mission": "To organize world of data types, and lowcoding"
  "owner": "kriz"
  "ownerlink": "/user/11001/kriz"
  "created": "2021-05-21T14:57:51.532701"
  "permalink": "/method/21001/?l=lt#p-5001"

# <!-- COMMENTS
# –––––––––––––––––––––––––––––––––––––––––––––––––– -->
"item:comment:items":
- "id": "a-28001"
  "text": |
    I agree, and working on such an idea for more than 5 years now. And could explain my ideas. Let us connect.
  "owner": "kriz"
  "ownerlink": "/user/11001/kriz"
  "permalink": "/method/21001/?l=lt#a-28001"
  "created": "2021-05-21T12:23:19.572457"
- "id": "a-29001"
  "mtrans": |

    // ir jau daugiau nei 5 metus dirbame su tokia idėja
    
    Tikrai? Taip, prisijunkime. Bet kada [mindey.com/meet](https://mindey.com/meet) tinka jums?

  "text": |
    // and working on such an idea for more than 5 years now
    
    Really? Yeah, let's connect. Any times on [mindey.com/meet](https://mindey.com/meet) work for you?
  "owner": "Mindey"
  "ownerlink": "/user/147/Mindey"
  "permalink": "/method/21001/?l=lt#a-29001"
  "created": "2021-05-21T12:28:44.200014"
- "id": "a-32001"
  "mtrans": |

    Mes norime išvengti to, kas nutiko XMPP - komitetui, kuris į protokolą įtraukia senus dalykus, todėl jų neįmanoma paprasčiausiai įgyvendinti. Nes tai nėra paprasta.
    
    Tikslas yra supaprastinti protokolus. Turiu „epollserver“, kuris yra naudingas kuriant tekstinius protokolus C:
    
    https://github.com/samsquire/epoll-server

  "text": |
    We want to avoid what has happened to XMPP - which is a committee which adds any old stuff into the protocol making it impossible to implement simply. Because it's not simple.
    
    Making protocols simple is the goal. I have an epollserver which is useful for building text based protocols in C:
    
    https://github.com/samsquire/epoll-server
  "owner": "chronological"
  "ownerlink": "/user/198/chronological"
  "permalink": "/method/21001/?l=lt#a-32001"
  "created": "2021-05-27T10:19:15.548599"
- "id": "a-81001"
  "mtrans": |

    Dėl asinchroninio IO struktūrizuotas interneto klientas gali jaustis labai įtemptas, nes lygiagrečiai galite pateikti IO užklausas.
    
    Radau paprasčiausią pavyzdį, kuris naudoja „lib uring“ ir yra čia
    
    https://github.com/robn/yoctochat/blob/main/yc_uring.c

  "text": |
    Asynchronous IO could make a structured internet client feel very snappy because you can make IO requests in parallel.
    
    Simplest example I have found that uses lib uring and is here 
    
    https://github.com/robn/yoctochat/blob/main/yc_uring.c
  "owner": "chronological"
  "ownerlink": "/user/198/chronological"
  "permalink": "/method/21001/?l=lt#a-81001"
  "created": "2021-08-15T17:24:54.525394"
"base:js": "/static/js/base.c7357c06cc89.js"
