💾 Archived View for gmi.derschwarzestrahler.at › en › gemlog › relog › gemlog-responses.gmi captured on 2024-05-26 at 14:56:29. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-07-10)
-=-=-=-=-=-=-
This is a response to a concept bacardi55 proposed on his gemlog:
RE: My take on gemlog responses
Gemlog discussions are frequently happening, which is a good sign for an active community. Due to the simplistic nature of the gemini protocol these discussions happen with much less automation and more handwork than in the world wide web. The usual way is to publish a reply with the link to the original gemlog and inform the original author via email about the reply.
There has been some discussion on how to make the process easier. The gemlogger bacardi55 made an interesting proposal, which is minimalistic but yet useful from my point of view. His concept includes three requirements:
gemini://[domain]/.well-known/mention
=> [URL to the original text] RE: [Link text, e. G. Title of original text]
The idea of the last action is, that it should trigger some mechanism that notifies Gemlogger 1 about a new response to his text, and maybe does some additional things like checking if the URL exists. The problem here is, that this mechanism includes some script that adds some complexity to the maintenance of the gemini capsule. As bacardi55 writes:
I do know that asking capsule owners to deploy a script will be the biggest concern here, but I guess there is always a "price to pay" … Yes it will require a CGI script, but it should be doable even with a small bash script to not add too much complexity in maintaining a capsule.
I agree that some kind of programming and scripting will be necessary to get notified. However I think that we can do it at least without a CGI-script. Here is the way I think I have found.
I run this capsule on agate, a very basic gemini server without CGI functionality, at least by now. I am fully okay with that since I never have used CGI anywhere else and I am a fan of minimalism and simplicity. However that means that it is impossible use this mentioning mechanism. Or is it? Well, I think I found an alternative way via the syslog of the agate server.
Agate logs are quite useful. The server logs every incoming request and it's response. Therefore, if a request comes to the .well-known/mention node, it should be logged as well. And if I get an URL via this node I will also see it in the log. I tried this out by adding an empty file to the path .well-known/mention and defining a response code 10 (query for input) for this path in the .meta file:
.well-known/mention: 10 Please enter the URL to your response or mention
(Remark: .meta-files are the agate-specific way to define things like response codes, redirections and MIME-types).
Going to this side causes the client prompting for input. You can try it for yourself:
gemini://gmi.derschwarzestrahler.at/.well-known/mention
After sending the input the client sends a new request with the input attached. If I, for example, give the URL of the current site as input, the new request will look like this:
gemini://gmi.derschwarzestrahler.at/.well-known/mention?gemini%3A%2F%2Fgmi.derschwarzestrahler.at%2Fen%2Fgemlog%2Fgemlog-responses.gmi
Looking into the syslog gives me this entry:
xxx@xxx:~$ sudo journalctl -r -u agate … Jan 02 21:14:44 xxx agate.x86_64-unknown-linux-gnu[44811]: [2023-01-02T20:14:44Z INFO agate] 37.252.188.21:1965 - "gemini://gmi.derschwarzestrahler.at/.well-known/mention?gemini%3A%2F%2Fgmi.derschwarzestrahler.at%2Fen%2Fgemlog%2Fgemlog-mentions.gmi" 10 "Please enter the URL to your response or mention" Jan 02 21:13:34 xxx agate.x86_64-unknown-linux-gnu[44811]: [2023-01-02T20:13:34Z INFO agate] 37.252.188.21:1965 - "gemini://gmi.derschwarzestrahler.at/.well-known/mention" 10 "Please enter the URL to your response or mention" …
Voila, that's what I wanted to see! So all Information I need, the URL to the response site, is already visible in the log. There are several options to process this information: I could code a daemon that listens to the log, checks if URLs have been posted and sends me a notification via email. Or, probably more ressource-efficient, I could define a job script that checks the log every 24 hours for new mentions, does URL checks and sends a report via email. I have not written such a script yet, since I am not really a programmer. I am also not sure if it is a good idea at all. I just want to share this idea and hope that people who actually can code this might implement it. All these solutions have in common, that they are no CGI scripts, but processes separate from the server process. That means that I don't have to change the server software and to deal with CGI scripts.
There is just one Problem: At the moment I can only define the response code 10 (query for input) for the .well-known/mention path. This means, that the user will be infinitely prompted for input again and again, even after he gave his input. I tried to hack the .meta-file in a way that it returns a redirect code if the path is called with an appended input. I thought that I could do it by such a wildcard definition:
.well-known/mention?*: 30 .well-known/confirmation.gmi
However that doesn't seem to work. I don't know whether this is a bug or a feature, but I started a discussion about this on the github page:
https://github.com/mbrubeck/agate/discussions/228
Meanwhile, I want to give this as an input for discussion and looking forward how this concept and other ideas for the Geminispace will evolve in the future.
2023-01-02 Sean Conner: It still surprises me what some find difficult to do
2023-01-02 bacardi55: The Gemini Mention amusing coincidence
2023-01-04 Sean Conner: Thoughts on an implementation of Gemini mentions
2023-01-05 bacardi55: Gemini mention, an ongoing discussion
2023-01-04 1st Update (after response from Sean Conner)
Feel free to respond or comment via e-mail:
CC BY-SA 4.0 Martin Marot-Perz, 03.01.2023
╭────────╮ ╔═════╗ ╭─╯████████╰─╮ ╔═══╗ ╚═╗ ╭╯████████████╰╮ ╔══╗╚═╗ ╚╗ ╭╯██████████████╰╮╔═╗╚╗ ╚╗ ╚╗ │████████████████ ║ ║ ║ ║ ╰╮██████████████╭╯╚═╝╔╝ ╔╝ ╔╝ ╰╮████████████╭╯ ╚══╝╔═╝ ╔╝ ╰─╮████████╭─╯ ╚═══╝ ╔═╝ ╰────────╯ ╚═════╝