XSF Discussion - 2022-11-18

  1. wurstsalat

    hi folks! I tried to make the build process of xmpp.org's software section a bit more informative. if you look at the "Prepare software list" and "Generate/add compliance data" sections in each build log, you'll see which package is expired, which one offers a DOAP file (I count 52 already, hooray!), and which one doesn't. also, problems with calculating compliance data become obvious this way. here is an example: https://github.com/xsf/xmpp.org/actions/runs/3494138103/jobs/5849652578

  2. wurstsalat


  3. MattJ

    Very nice!

  4. flow

    indeed :)

  5. Ge0rG

    > Compliance data available, but no match for: P\u00e0d\u00e9 Say what?

  6. Ge0rG


  7. wurstsalat

    It's Pàdé, and probably an encoding issue in the tool chain :) I'm trying to fix that

  8. Guus

    Hehehe. Welcome to my everlasting effort to fix encoding issues in Ignite's tool chain too. Thanks for that, Dele :)

  9. Guus

    Looks pretty sweet, by the way, mr. Salat.

  10. Guus

    It's sad to see so many projects having expired. I stand by the reasoning behind us hiding them (and we successfully get rid of a lot of crud this way), but maybe we should consider not completely hiding potential value. Can we expose those expired entries behind some kind of link? Something like: "Can't find what you're looking for? Please click here for older listings, that have not been updated in a while."

  11. nicomuc

    would it make sense to have a "component" section in the softwares listed on xmpp.org? also, wouldn't it be nice to use the doap files to list which client/server/lib[/component?] implements a XEP in xmpp.org/extensions/xep-XXXX.html?

  12. Guus

    oh, I have very strong arguments on that. Confusingly, they are both for and against that idea. :)

  13. nicoco

    erm, about Q1 or Q2? ^^

  14. Guus


  15. Guus

    i'm ambivalent on 1.

  16. Guus

    on 2, damnit

  17. Guus

    typing is hard.

  18. Guus

    on 1, I do not have a strong opinion any way.

  19. nicoco

    my idea for 1 is that slidge (sorry for being self-centered, but this is what I know...) could be listed as a library, but then there is no right place for slidge-signal or telegabber; a component section would be suited.

  20. Ge0rG

    Guus: q1: I think the general consensus was to move implementations to DOAP and to display their best compliance suite value, so unmaintained ones will end up showing as "Basic Client 2006" or somesuch

  21. wurstsalat

    Guus: yes, listing those in a separate section may be an option. and as Ge0rG says

  22. Ge0rG

    and then maybe to display-filter based on current year(s)?

  23. nicoco

    about 2, it's just a usual/recurring confusion I had while trying to do stuff "the modern way" but I guess modernxmpp.org is the answer. also some XEPs are deferred or still experimental while widely implemented so it's a bit confusing sometimes... but it's just lack of (human) resources to actually advance their state I guess

  24. wurstsalat

    and yes, a filter box is a good idea. I'll add compliance results to each cards, so they can be spotted easily. maybe we can get rid of the renewal process after that, and list packages with a DOAP file (those with a compliance level prominently), and others less prominently

  25. wurstsalat

    nicoco: I think those should be 5 categories: clients, servers, libraries, components, tools (we have all of those listed, but components and tools are in libraries atm)

  26. Guus

    Ge0rG: I think that you're numbering differently than nico and I are doing, but: understood.

  27. Guus

    should we worry that to much automation will cause developers to fake compliancy in order to get linked as much as possible?

  28. wurstsalat

    I think this will happen inevitably, and we should act when it does. but less automation would lead to outdated/incorrect values instantly

  29. Kev

    > developers to fake compliancy in order to get linked as much as possible? History says this is likely to happen, as it happened even with non-automated lists.

  30. Kev

    Whether that's actually a problem worth giving much thought to might be another matter.

  31. Zash

    faking entries > expired entries ? :)

  32. Ge0rG

    you can't prevent people from faking stuff.

  33. Ge0rG

    but I think that people lying about their XEP compliance will be the exception, not the rule

  34. emus

    Should we really have 5 lists. I was the one starting to add tools to libraries

  35. wurstsalat

    Where to add components then? Servers?

  36. flow

    one list where every entry is assigned (at least) one category?

  37. emus

    First would prefer to have it in one list and only key that differs. then we can have it on one page with respective sections?

  38. edhelas

    Would it be possible to extend Vcard4 and add Mastodon profile link in it somehow ?

  39. Zash

    https://www.rfc-editor.org/rfc/rfc6350#section-6.7.8 ?

  40. wurstsalat

    flow, yes, good point

  41. edhelas

    Zash, it's a bit more than a URL, there is no way to know if the URL is actually a Mastodon one because of the federation

  42. Zash

    Does the user or the code need to know that it is Mastodon in particular? Or, generic ActivityPub?

  43. Zash

    https://www.rfc-editor.org/rfc/rfc6350#section-5.6 allows for some x-name except https://www.rfc-editor.org/rfc/rfc6648 deprecates it

  44. Zash

    Write an RFC that adds some TYPE value for social media to the registry at https://www.iana.org/assignments/vcard-elements/vcard-elements.xhtml#parameter-values .... ?

  45. Zash

    Generic human-readable description of the field would have been nice I think

  46. jonas’

    but l10n

  47. jonas’

    and i18n

  48. Zash

    Generic human-readable description of the property* would have been nice I think

  49. Zash

    jonas’, oh no, now you need language tags for the properties :(

  50. Zash

    Without inventing something new and namespaced, I'd suggest `<url><uri>https://fosstodon.org/@zash</uri><type>x-activitypub</type></url>`

  51. edhelas

    Mhhh 🤔

  52. singpolyma

    Zash, edhelas: or use the acct: URI for their webfinger

  53. edhelas

    How does it look like ?

  54. singpolyma

    acct: if just used for webfinger so just the scheme makes it pretty unambiguous. Do webfinger lookup to know any specific things like profile url etc

  55. singpolyma


  56. edhelas

    acct:@user@mastodon.social no ?

  57. Zash


  58. singpolyma

    edhelas: no

  59. singpolyma

    There is no leading @ in activitypub or webfinger stuff

  60. singpolyma

    That's just how Mastodon users type into their text box because of Twitter syntax for replies

  61. edhelas


  62. singpolyma

    (technically activitypub doesn't require or suggest webfinger at all, but Mastodon has made it near universal for AP users)

  63. raucao

    That didn't come from mastodon, but from ostatus iirc

  64. raucao

    I.e. gnusocial et al

  65. singpolyma

    raucao: it was developed by the OpenID crowd and used by OStatus, but Mastodon is who mandated it in conjunction with ActivityPub specifically

  66. Zash

    IIRC Google+ too

  67. raucao

    Mastodon used it with ostatus before was my point

  68. raucao

    Does AP define a discovery mechanism at all?

  69. raucao

    > IIRC Google+ too Huh, that's interesting! Why did they need to discover URLs for their own users?

  70. Zash

    IIRC in AP you GET some URL with Accept: application/json and see if you get JSON-LD back, or somesuch

  71. singpolyma

    raucao: yes, AP discovery is done on HTTP level

  72. raucao

    What does that mean? Webfinger is also just http

  73. singpolyma

    raucao: no, webfinger starts with acct: URI and turns it into http

  74. singpolyma

    AP starts with the HTTP that the webfinger can be used to discover

  75. raucao

    So that's a no

  76. singpolyma

    What's a no?

  77. raucao

    No discovery defined

  78. raucao

    You have to know the URLs beforehand

  79. singpolyma

    Discovery from what? With webfinger you need to know the acct URI beforehand also

  80. raucao

    No you don't

  81. singpolyma

    It's thing@domain.tld vs https://domain.tld/thing that's all

  82. raucao

    It's defined as a well-known URL. You only need to know the user address

  83. raucao

    Which can point to wherever

  84. raucao

    An end user doesn't know your full URL. Discovering it is what is called discovery in webfinger. You could also use a URL with it

  85. Tim R


  86. raucao

    But you have to discover inbox URLs etc for AP

  87. singpolyma

    Yes, those aren't in webfinger

  88. raucao

    They sure are

  89. singpolyma

    Webfinger just points at the AP endpoint

  90. singpolyma

    And then you discover anything additional from there

  91. raucao

    Ah right sry brain fart

  92. raucao

    It points to a profile actually

  93. singpolyma

    Mastodon uses webfinger for two reasons: to allow using @ instead of / in the address and to reuse the old OStatus remote follow protocol

  94. raucao

    But yes you would have to know the full profile URL which can be different for every server and software

  95. raucao

    It's not just a slasg

  96. raucao

    It's not just a slash

  97. raucao

    And it doesn't even have to be on the same domain

  98. singpolyma

    As the webfinger? Sure, it doesn't have to be, that's fine

  99. raucao

    I mean it's very similar to xmpp in that regard

  100. singpolyma

    You still need to know there user's address. The only difference is address format

  101. raucao

    Same address format

  102. raucao


  103. singpolyma

    Usually you go to their webpage (at a url) to find out their webfinger address anyway

  104. singpolyma

    So for me I usually just cut-paste the url I have and ignore we finger. Saves me a step

  105. singpolyma

    So for me I usually just cut-paste the url I have and ignore webfinger. Saves me a step

  106. raucao

    I think we can agree that most users click on a name somewhere and don't know what a URL is :)

  107. raucao

    hence the "I'm @somename" problem with everyone being on centralized services

  108. singpolyma

    Sure, most users don't use the webfinger URI either. They click the follow button

  109. raucao

    I'm very happy people learn about user addresses that aren't email addresses now

  110. Zash

    Put `<a href="mastodon/@me">follow me on mastodon</a>` on your wobpage

  111. raucao

    (I'm working on remoteStorage and we also prescribe webfinger. But most people type their email address in connect dialogs)

  112. raucao

    People definitely use the webfinger IDs now, because that's how you mention someone on a different fedi instance

  113. Zash

    If you wanna discover non-google microblog or storage endpoint from users' gmail then you have a problem yes.

  114. singpolyma

    Yeah, we have half a dozen gmails get typed into our boxes labelled "jabber id" it's fun

  115. raucao

    Yes, and it's mostly a cultural problem. Like email addresses also were, or hashtags, or @usernames

  116. raucao

    Or phone numbers even

  117. raucao

    Remember people having to learn cellphone numbers?

  118. raucao


  119. Zash

    Have I finally forgotten my ICQ number?

  120. singpolyma

    Mine was too long to remember. My dad had a nice short one

  121. singpolyma

    I spent so much energy trying to get people off other IM services and on to ICQ back in the day, rarely successfully

  122. Zash

    ICQ was my first

  123. wurstsalat

    > Have I finally forgotten my ICQ number? never

  124. Zash

    half of it seemed to have dropped out of muscle memory

  125. mjk

    > Have I finally forgotten my ICQ number? I tried to remember mine... and I succeeded, globdammit 🤦️ and it was a 9-digit one, even

  126. mjk

    anyway, thanks for mentioning webfinger. I was recently very disappointed and headscratchy to not find some defined ap:user@server scheme. still disappointed to be required to fetch a pile of json via http 💢

  127. Ge0rG

    mine is seven digits, but number logins have been deactivated how long ago?

  128. nicoco

    very basic question incoming: how do I locally render HTML from XEPs? there sure are a lot of different scripts in this repo ^^ also, anyone ever worked on something like a markdown to XML thing for XEP? maybe with pandoc or so?

  129. nicoco

    oh, tools/2xep.lua looks like what I was looking for

  130. Fishbowler

    on a similar vein - I've wanted to do a browser extension for ages that'd work with XEPs to translate the examples into something in your own context. A lot of the work I do is testing, and I'm often translating from shakespeare to something more boring :)

  131. Ge0rG

    nicoco: `make xep-0433.html` should do the trick and put the HTML render result into build/xep-0433.html

  132. Zash

    nicoco, 2xep.lua is markdown → xep-xml, you want tools/xep2md.sh ?

  133. Zash

    for html, just `make xep-xxxx.html && open build/xep-xxxx.html` ?

  134. nicoco

    Georg: great! so not used to compiling things that I did not even notice the Makefile.

  135. Zash

    Oh, Ge0rG already said

  136. nicoco

    Zash: well, both would be great actually, I'd like to propose an update, but I guess xml->md->editing->xml will induce too many diffs. I'll try it anyway, I don't have the XML-brain yet so it's really tedious to write XML directly.

  137. nicoco


  138. mjk

    just do xml->json->editing->xml :trollface:

  139. Zash


  140. nicoco

    or xml->latex->xml maybe? jk I write everything in markdown since I discovered my lord and savior pandoc. all hail pandoc!

  141. singpolyma

    I doubt the xep format can be properly represented in markdown or latex since it has all kinds of custom stuff

  142. jonas’

    nicoco, make html

  143. Zash

    pandoc is love, pandoc is life

  144. singpolyma

    (such as entity references to other xeps)

  145. jonas’

    Zash, `make build/xep-xxxx.html`, IIRC

  146. nicoco

    singpolyma: there is a pandoc filter written by Zash that seems to cover just that ^^

  147. singpolyma

    Ah. So custom markdown

  148. Zash

    The pandoc filter should handle basic structure, metadata, but not stuff like entity references

  149. nicoco

    maybe time to have som fun with pandoc and lua then!

  150. nicoco

    maybe time to have some fun with pandoc and lua then!

  151. Zash

    That may reach the limits of what markdown can do

  152. Ge0rG

    jonas’: both paths work

  153. jonas’


  154. Ge0rG

    Zash: lua xep renderer in koreader when? :D

  155. Zash

    That's why I had xep→markdown, so I could pandoc it into .epub :)

  156. singpolyma

    Can't pandoc read HTML and make epub from that? Especially since epub is just HTML in a zip

  157. Ge0rG

    reminds me that the standard document format for RFCs still is US Letter.

  158. Zash

    Ge0rG, I thought they went markdown-on-github now?

  159. Ge0rG

    Zash: did they? are they going to markdown all the existing RFCs, too?

  160. Zash

    unlikely, but most new things look like https://github.com/mlswg/mls-federation

  161. nicoco

    I actually like markdown for redacting stuff... is that a bad thing?

  162. Ge0rG

    not at all, markdown is a nice trade-off for 90% of tech docs

  163. Ge0rG

    if you have a dialect that supports tables and diagrams, you are probably at 95%

  164. nicoco

    I wrote my phd thesis with markdown (+pandoc +some awful scripts to make it fit the latex template the uni wanted me to use). so I think it can cover anything 🙂

  165. nicoco

    I wrote my phd thesis in markdown (+pandoc +some awful scripts to make it fit the latex template the uni wanted me to use). so I think it can cover anything 🙂

  166. Ge0rG

    I wrote my phd in LaTeX.

  167. Ge0rG

    nicoco: well, it depends what you wrote your phd about.

  168. nicoco

    to me, it's just too much useless things markup things, be it latex or html. the promise of separating content from formatting doesn't hold. whereas with basic markup languages, you can actually focus on the content. but as usual, whatever works for whoever is fine 😉

  169. nicoco

    to me, it's just too much useless markup things, be it latex or html. the promise of separating content from formatting doesn't hold. whereas with basic markup languages, you can actually focus on the content. but as usual, whatever works for whoever is fine 😉

  170. nicoco

    to me, it's just too much ~useless~ distracting markup things, be it latex or html. the promise of separating content from formatting doesn't hold. whereas with basic markup languages, you can actually focus on the content. but as usual, whatever works for whoever is fine 😉

  171. Zash

    What I've done is write early drafts in markdown, then turn to xep-xml for submission and future editing... if I ever got that far

  172. Ge0rG

    yeah, I wouldn't do another document in TeX today, I'm too old for this shit

  173. jonas’ hides the main.tex

  174. flow likes LaTeX

  175. flow

    that said, ietf's markdown to xml tooling is pretty good and I see many I-D being written that way (rfc4880bis for an recent example)

  176. flow

    I wonder if we couldn't do something similar for XEPs

  177. nicoco likes latex via a pandoc template

  178. flow

    that is, keep the existing XML infrastructure and tooling

  179. flow

    but be able to feed it with something markdownish

  180. jonas’

    yes please

  181. jonas’

    would also help the editor a lot

  182. jonas’

    (but not as much as other things in the ~"Editor Tooling" label ;-))

  183. flow

    And I'd really would love if XEPs had a meta layer with rationale, design considerations, and further secondary information. the layer wouldn't show by default, but if you ever wondered why something is designed the way it is, then you may be able to look it up

  184. jonas’

    isn't Design Considerations even a part of the template nowadays?

  185. flow

    it is, but ignore that for now, it's misleading for my point :)

  186. flow

    essentially technical documentation consists of specifications (how you do things) and rationale/motoviation (why you do things)

  187. flow

    if both things are immediatly present, then first-time implementors can be overwhelmed by the provided information

  188. jonas’


  189. jonas’

    yeah that makes sense kindof

  190. flow

    so my idea is to have a "space" for secondary things that are not directly required to implement what is documented

  191. flow

    of course, this "space" should be within the document itself, it just should be rendered/presented differently (e.g., hidden, with a visible hint that something is hidden there, by default)

  192. wurstsalat

    Guus, fixed Pàdé ;)

  193. mjk

    ftr, it never was anything Thai because \u is followed only by 4 digits :P (i.e., 00e0, not 00e0d)

  194. Ge0rG

    mjk: bummer!

  195. Ge0rG

    mjk: bummer! thanks for pointing that out, I totally fell for it

  196. Alex

    another reminder here as well for our current board&council elections. When you are a member and have not voted yet then please take some time and do so. Thanks

  197. mjk

    Ge0rG: happens to the best of us :D

  198. emus

    This is the draft for the next release covering November 2022. https://github.com/xsf/xmpp.org/pull/1209

  199. emus

    If you support, please put your nick, we would like name our contributors. But feel free to stay anonymous of course