-- Leo's gemini proxy

-- Connecting to gemini.bunburya.eu:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

Could a MOO-like functionality be added to Gemini websites?

https://www.reddit.com/r/geminiprotocol/comments/12p09o9/could_a_moolike_functionality_be_added_to_gemini/

created by Longjohn565 on 17/04/2023 at 03:28 UTC

3 upvotes, 5 top-level comments (showing 5)


I was wondering if some very basic programming-based user-to-user interaction could be implemented in Gemini websites. Of course, this would require the (optional) embedding of a very simple scripting language along the lines of MOO. I know, this idea would seem to go against the strictly minimalist anti-bloat philosophy of Gemini. But please consider this: by its own very-limited-functionality nature such a language would be very different from Javascript. It could not be used to embellish or potentiate and complicate webpages, creating bloat, but simply to create and support simple interaction patterns between users. The scripts would be highly individualized and user written "ad hoc": eg you are visiting my website and are hosted into a text-based MOO-like interaction framework designed arbitrarily by me (the website owner), but not necessarily for gaming/role play; for instance, it could be an automated interactive procedure set by tbe host for receiving guests while the host is not "at home" (as opposed to being online), or many other user cases. Of course, by its own nature such a scripting tool would be very simple in scope and complexity, and perhaps functionally crippled by design, for security reasons. I believe that this should be a welcome (optional) addiction to the minimalist Gemini eco system. Please share your opinion about this. Thsnk you.



Comments


Comment by The56thBenjie at 17/04/2023 at 16:07 UTC

5 upvotes, 0 direct replies


I don't see what this would achieve that server-side code wouldn't. People have made highly interactive things with links and dynamically generated pages. I don't quite understand your post, but user-to-user interaction would have to go via the server anyway. If you mean peer-to-peer, then that would be different, but I don't see any way that could be integrated into the gemini/gemtext ecosystem.


Comment by frezik at 17/04/2023 at 17:12 UTC

4 upvotes, 0 direct replies


You could do a "choose your own adventure" story with just a bunch of links. No scripting needed.


Comment by jecxjo at 18/04/2023 at 00:06 UTC

2 upvotes, 0 direct replies


The one part you'll be missing is that MOO is asynchronous in its state change. You can sit there in a room and something will appear. On Gemini the state change is transactional. Remember simple pages means no smarts on the client side. Nothing to periodically refresh the page except for the user loading the next page.


Comment by Longjohn565 at 17/04/2023 at 03:59 UTC

-1 upvotes, 1 direct replies


Other trivial use cases may be: a guest/visitor leaving a note or comment (publicly or privately); or a tour guide wizard that takes the visitor around the Gemini website based on interactive questions


Comment by s1nical at 18/04/2023 at 22:17 UTC

1 upvotes, 0 direct replies


I think it's important to note that while scripts seem to be very common and might be a straightforward option for simple capsules, fully-fledged server frameworks handle all the grunt work for you and are often far simpler to get started with, given that you have some programming experience.


One of the frameworks which I have written to accomplish this is Windmark[1]. I suggest you check out the examples[2] that I have written; some of them are not far off from the mechanisms which you are describing.


1: https://github.com/gemrest/windmark

2: https://github.com/gemrest/windmark/tree/main/examples


Additionally, Windmark supports extensions via modules, and I've actually written a generic comment engine for anyone to mount in just one line on their own capsule: Windmark Comments[3]. Mounting it is as simple as calling `router.attach_stateless(windmark_comments::module)`.


3: https://github.com/gemrest/windmark-comments


If you are still having a hard time grasping more complex subjects, feel free to browse my personal capsule's source code where I have implemented complex features such as a full-capsule translating engine, data indexing and route caching, a search engine, a web-to-Gemini proxy, and much, much more--my personal capsule, Locus[4].


4: https://github.com/gemrest/locus


I've also written Laurali[5], a simple but strong server framework for Deno (JavaScript, TypeScript, etc.). It isn't nearly as featureful as Windmark, but I've gotten a few heartwarming emails and private messages of individuals who were able to put their ideas on paper thanks to the simplicity of the framework.


5: https://github.com/gemrest/laurali


I think Windmark Comments is the closest in concept to your idea, but feel free to explore and find out what fits best!


-- Response ended

-- Page fetched on Thu May 2 22:29:54 2024