๐พ Archived View for bbs.geminispace.org โบ u โบ clseibold โบ 5746 captured on 2023-11-14 at 10:00:48. Gemini links have been rewritten to link to archived content
โฌ ๏ธ Previous capture (2023-11-04)
โก๏ธ Next capture (2023-12-28)
-=-=-=-=-=-=-
@gemalaya I believe that when the spec says heading line, it means a gemtext heading, since it's based off of gemtext. So a gemtext heading would have to have the "# " character.
I think if you remove the "#" line entirely, that would be considered No Subject, and that is how I parse it in my client. It's still a valid message, it just has no subject.
Sep 30 ยท 6 weeks ago
๐ clseibold ยท Sep 30 at 18:05:
@gemalaya Oh, also, as for working on the original implementation, I don't realy think Python is a good language to make server in ever, especially since it doesn't do threading correctly or well.
That and Python is a horrendous language to work in, would significantly slow down my development process, make me hate programming, and is really just a badly designed language, imho.
That's not to discredit the work you or @lem-two (@lem) have done on the Python implementation, because it's great! I just feel much better supporting the project through another implementation (multiple implementations is a good thing, imo, and helps support different usecases).
I wouldn't be able to help on the Python implementation even if I wanted to becuase __Python__ is just():
____to._unreadable()
for.___me.to:
understand
lol
Thanks for the nice words though. They are very much appreciated.
๐บ gemalaya ยท Sep 30 at 18:38:
@clseibold Ok, i respect that. I'll create a misfin.gitlab.io website to reference the different implementations.
๐ค BBSman ยท Sep 30 at 18:55:
Unfortunately I'm seeing connection time outs when sending to anything @auragem.letz.dev
๐ clseibold ยท Sep 30 at 18:59:
Ah, sorry. My server just crashed, probably when you sent the first message. Hold on a sec, and then you can try again :)
๐บ gemalaya ยท Sep 30 at 18:59:
@clseibold Regarding subjects ... The spec says that what what the client sends to the server has to be:
misfin://<MAILBOX>@<HOSTNAME><SPACE><MESSAGE><CR><LF>
No mention of subjects ... However, "message" is in gemtext format, so the subject could simply be the first found "heading" in the message body (if there is one) ?
๐ clseibold ยท Sep 30 at 19:02:
@gemalaya The message is specified in gemmail format, which is based on gemtext. The spec does say the message is in gemtext, and headings are part of gemtext. "Message subject" is specified in section 4.4 of the spec, as part of the gemmail format that is a superset of gemtext.
โ misfin.org/specification.gmi
Start of section 4:
The default encoding of Misfin messages is text/gemini; however, Misfin extends this by adding three new line types. Misfin utilites must only parse the first occurance of these lines in a file.
This tells us the message format is a superset of gemtext. All references to heading lines is a reference to *gemtext* heading lines.
Section 4.4, titled "Message subject":
The first heading line in a file, if provided, should be considered as the message's subject, and advanced Misfin utilities may elect to show it to the user in place of the full message contents.
๐ clseibold ยท Sep 30 at 19:04:
@BBSman Can you try again. I just fixed a bug and brought my server back up.
๐ค BBSman ยท Sep 30 at 19:21:
I will try when I get a chance (am at work)
๐ clseibold ยท Sep 30 at 19:31:
@gemalaya Oh, also, the very last example, at the very end of the specification, shows an example of a message that a mailinglist will send, and it includes an example of a message subject (the level-1 heading prefixed with "#").
๐บ gemalaya ยท Sep 30 at 20:31:
@clseibold Indeed, "A note on flowers". Introducing a special character to set the subject would really not hurt IMO. What about replying, how can you tell which message you're replying to ?
๐ clseibold ยท Sep 30 at 20:41:
@gemalaya I disagree about the special character for message subject. The subject of a message *is* the title, which is exactly what the level-1 heading in gemtext is. The gemtext title is the title of the message, which is the same as the message subject. In fact, in Multics and its documentation, the subject in the mbx files is called both the subject and the title of the message. The terms have been interchangeable since the 70s. I also don't see a reason to have a message subject that's separate from the gemtext title - it adds unneeded complexity.
It's also backwards compatible with gemtext and gemini clients the way it is right now; gemini clients can show the subject as the title, because it uses "# ".
That's what's so cool about the format right now. All gemmails are valid gemtext with just a few extra lines at the top! Everything renders correctly in gemini clients, and the user can easily see the senders and recipients list, and then they can take it and read it in a misfin client and it will be able to correctly deal with these extra sender, recipient, and timestamp lines. It's actually a great way to do it, imo.
That's similar to what I tried to do with gembox when I decided on the `<=====` divider.
As for replying, that is more complicated, and I am wondering myself how that should be handled. One method is by just detecting "Re: " prefixed to the original subject/title heading. The way traditional email does this is by having some ID for each email, and then a reply references this ID of the email they are replying to. Someone else mentioned this previously here on Bubble.
๐บ gemalaya ยท Sep 30 at 21:15:
@clseibold Ok. Regarding gembox as a single file, no offense, it's a bad idea, i've deprecated it, it's like reinventing mbox but worse. IMO MH is the perfect container for gemmail, it's just a directory with messages and each message has an integer index. Listing messages is fast and deleting is straightforward.
Yes, message should have an ID, it could be a checksum of the message payload. We could use introduce a new line type, '!' for example:
!55538cb56504e67129809b2b5cadc001c4f2f55b6ecd4fbe98071c010e77d070 < two@example.com Person Two : one@example.com three@example.com Hi !
๐ค BBSman ยท Sep 30 at 21:50:
@gemalaya MH is the right answer! Of course I'm biased because NMH is my daily driver for e-mail.
๐ clseibold ยท Sep 30 at 22:03:
@gemalaya Mbox isn't that bad. It's a simple solution. The difference is my idea didn't try to shoehorn an already existing gemmail format into a different format, lol. All gembox does is concatenate already formatted gemmail files. Which means it's easy to convert back and forth between a multi-file system and a single-file (gembox) system, and it's easy to download and share one file, or fetch a whole gembox from a gemini address.
I'm unaware of NMH, but it's literally just files in a directory, from what I'm seeing. This is a valid approach, but so is a single-file storage (which is used by databases and various other formats).
Integer index is not part of the spec at this moment, and will not be supported by me unless @lem / @lem-two decides it should be part of the spec.
I'm not going to play politics here of people trying to take over the project from someone else. If you want to create your own protocol with other features like a redundant message subject line, then call it something different. Thanks.
P.S. Gembox is on the storage side, so it is outside of the actual transmission protocol, and outside of the spec, which is why I'm fine with Gembox or NMH/MH, but I'm not fine with changing the actual gemmail format without proper spec changes.
๐ท billsmugs ยท Sep 30 at 22:26:
@gemalaya I don't think ease of matching up reply chains would be worth adding a new linetype or adding any kind of ID to the spec.
@clseibold I've tried to sign up to the mailing list a few times (sorry for the spam!) but the verification message isn't getting through. At first it was because your cert had changed (I think?) and my server didn't trust yours, but now I'm getting an error from your server when I try to send the verification message ("63 Your certificate fingerprint has changed.")
I haven't changed my server certificate, sending the message always succeeds, and I think I've cleared down all my cached certificate info for your site, so I'm not sure what's going on (it's possible the issue is on my end and I'm misreading my own logs?)
๐ค BBSman ยท Sep 30 at 22:29:
mbox vs gembox vs MH dir are client side storage architecture choices which exist outside of the wire protocol. So there's nothing in this discussion about forking the protocol.
In the case of MH that index integer (message number, really) is the mutable local filename for a message. These message numbers change when messages are sorted , or when an MH folder (i.e. directory) is repacked after messages are deleted.
๐ clseibold ยท Sep 30 at 22:49:
@billsmugs I believe I have fixed the issue. Thanks for notifying me of it.
Also, no, it wasn't a problem on your side. It was a dumb bug in my server code, lol.
๐บ gemalaya ยท Sep 30 at 22:58:
@BBSman You're right, MH mailboxes can be repacked. I don't automatically repack the mailbox after deleting a message because in the gemini frontend app, the gemini page that shows a specific message uses the message index in the URL ... I think numbering gaps are no big deal and the index integer limit must be quite high ...
๐ค alexlehm ยท Oct 01 at 08:17:
That is not working for for some reason, I get a callback request but then it says you are not subscribed to the mailiing list
lehmann@wormhole:~/misfin-shell$ ./misfin.sh misfin@auragem.letz.dev "# Subscribe"
depth=0 CN = AuraGem Admin, UID = admin
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = AuraGem Admin, UID = admin
verify return:1
20 c0eadf5317177a4ab8a82082817a6cad83b649e6510f5fb93397b51a2e370b4b
lehmann@wormhole:~/misfin-shell$ ./misfin.sh misfin@auragem.letz.dev Testmessage
depth=0 CN = AuraGem Admin, UID = admin
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = AuraGem Admin, UID = admin
verify return:1
61 You are not subscribed to this mailinglist yet.
๐ clseibold ยท Oct 01 at 08:41:
Gaah! Ok, thanks for letting me know. I'll look into it quickly.
๐ clseibold ยท Oct 01 at 08:49:
@alexlehm Ok, I think it should be fixed, maybe. The problem seemed to be with how I'm detecting the word "subscribe" in the message subject, although I'm not totally sure why your original message didn't go through. When you try it again I will know more.
๐ satch ยท Oct 01 at 18:30:
How can I tell whether I was successful?
๐ clseibold ยท Oct 01 at 19:20:
Hello @satch, Your message didn't go through because your server is sending a different fingerprint from the certificate you are using to send with, by the looks of it. Your client should be printing out error messages to the terminal, so when you sent your message, it should have printed out a "62" error.
๐ satch ยท Oct 01 at 21:52:
I got a 20 back the second time though.. :(
๐ clseibold ยท Oct 01 at 22:10:
@satch Hm, ok. Can you try sending the message again, whenever you have the time? Just so I can see what the problem is. I'll try to get it fixed as soon as possible. Thanks.
๐ค alexlehm ยท Oct 01 at 22:34:
I am still not getting subscribed, i get a callback with an empty message (just misfin.//user@address so i guess it is trying to add the address but when sending anything it say 61
๐ clseibold ยท Oct 01 at 22:51:
@alexlehm Thanks. I added better error logging and it looks like the message with Subscribe as the message subject got through (did you receive a 20 success for that one?), it just wasn't adding you to the subscribers list for some reason. I'm still looking into why.
๐ clseibold ยท Oct 01 at 23:03:
@alexlehm You know what, I'm an idiot. I added code that broke the subscribe functionality because I was detecting blank text lines for verification requests, but I wasn't checking that the subject was blank as well, so subscribe messages were acting like verification requests.
Anyways, it should be fixed now! ๐ You should be able to send another message with Subscribe as the message subject. Thanks for helping me test this!
@satch This was probably also the bug you encountered, so it should be fixed when you try to subscribe again. Thanks again for helping me test the mailinglist.
๐ค alexlehm ยท Oct 01 at 23:03:
when I send # Subscribe I get 20 and the cert has
Misfin Mailinglist! โ I have created a mailinglist! You can try it out by sending a misfin gemmail to misfin@auragem.letz.dev with the subject "Subscribe". For clients that don't handle subjects fully (like the original reference implementation), you need to put a "# " in front, so it should be: "# Subscribe". You should instantly get a gemmail sent back to you saying you have subscribed. Once you've subscribed, all messages sent to the mailinglist will be forwarded to you (except for your own...
๐ฌ clseibold ยท 32 comments ยท 1 like ยท Sep 30 ยท 6 weeks ago