XSF Discussion - 2017-10-13


  1. moparisthebest

    What if we replace xhtml-im with bbcode!!!

  2. moparisthebest

    Think of all the php implementations at our disposal

  3. jonasw

    moparisthebest, loool

  4. Zash

    I do wonder if we should revive the <font> tag as replacement for the style attr

  5. jonasw

    I don’t believe in font styling, but people seem to think differently

  6. jonasw

    it’s the number one reason I block inbound formatting

  7. Zash

    Way easier to sanitize <font color="name | #hexhex">

  8. jonasw

    if we start to go down the route to revive parts of deprecated HTML, we can go down Sams route of inventing our own markup all the way

  9. Zash

    jonasw: People want stickers!!

  10. jonasw

    people don’t know what’s good for them!

  11. Zash

    People want the silliest things!

  12. Zash

    Do we give it to them or do they go elsewhere?

  13. Zash

    Nice things, none shall have them!

  14. Zash

    Only shiny, silly things

  15. edhelas

    stickers are possible with XMPP

  16. jonasw

    SIMS + a repository of stickers yes

  17. Zash

    Sure they are, since literally forever

  18. edhelas

    non, with Bits Of Binary as well

  19. Zash

    Peoples reasons for XMPP suckage don't need match reality

  20. jonasw

    edhelas, do stickers fit into BOB?

  21. Zash

    Make them fit

  22. jonasw

    Zash, they sure match the reality of actual implementations :)

  23. edhelas

    well 20kb-30kb is enough for most of them

  24. jonasw

    30kB * 4 / 3 = 40kiB stanza

  25. Zash

    That's well within the 10M stanza limit, even if base64'd

  26. edhelas

    also BOB use some hash, so they are transfered only once

  27. jonasw

    there’s a 10MiB stanza limit? :)

  28. Zash

    In Prosody, IIRC inspired by some recommendation for minimal limit somewhere

  29. edhelas

    Movim implement stickers using BOB :)

  30. edhelas

    https://github.com/movim/movim/tree/master/app/widgets/Stickers/stickers

  31. jonasw

    7.5 MiB data limit -- that’s well sufficient for avatars

  32. edhelas

    jonasw at one moment people will ask for high-def-animated-with-sound stickers

  33. jonasw

    I recall that people said that PEP avatars are not feasible due to (among others) stanza size limit?

  34. Zash

    Here we go. Why can't I have my browser plugin that lets me link directly to sections?

  35. Zash

    https://xmpp.org/rfcs/rfc6120.html#security-dos > A deployed server's maximum stanza size MUST NOT be smaller than 10000 bytes

  36. Zash

    Wait that's ~10k

  37. jonasw

    :D

  38. zinid

    and there is no way to check what limit is applied on the server :)

  39. zinid

    we need a XEP

  40. Zash

    Path MTU discovery!

  41. Zash

    Now with eXtensibility! :D

  42. Zash

    MattJ: How did we end up with 10M then?

  43. Zash

    I suppose you could survey peoples vCards and multiply the maximum size by some number out of a hat and call it a day.

  44. jonasw

    Zash, it’s not impossible that I complained a few years ago when my fiancees avatar wouldn’t upload and that made pidgin fail to connect or something. I remotely recall there to be such a problem.

  45. Zash

    jonasw: Not the thing where data goes into a buffer that the network stack isn't paying attention to?

  46. jonasw

    back in the days of google code

  47. jonasw

    not sure, I think it was some limit thing

  48. Zash

    Hm

  49. Zash

    Hey, how do browsers deal with namespaces?

  50. Zash

    Like, if I stupidly insert some random XML tree into my DOM, and there's like a <p xmlns="not xhtml" onclick="evil();"> in there, what happens?

  51. jonasw

    Zash, horribly

  52. jonasw

    they don’t care a lot

  53. jonasw

    and as always, it depends

  54. Zash

    So a thing that sanitizes the xhtml-im namespace but lets anything else thorugh would be useless?

  55. jonasw

    I can imagine that this kind of stuff works because it is hared between XML and SVG handling

  56. jonasw

    maybe

  57. jonasw

    I wouldn’t rely on it

  58. jonasw

    there are funny bugs in browsers with prefixes, too

  59. jonasw

    Kev, +1 to your XHTML-IM mail

  60. jonasw

    you brought to the point what I tried to convey in a few paragraphs of prose elsewhere.

  61. Kev

    I don't have the attention span to write TL;DR mails :)

  62. Ge0rG

    Ha, I tried to make the same point yesterday.

  63. Ge0rG

    Let's see if different framings are going to convince the public

  64. jonasw

    itym the council.

  65. zinid

    guys, what is the agreement on pubsub in push?

  66. Kev

    I don't think the move towards something markdownish is actually stupid, FWIW, and I think it's much much easier to sanitise something that you can write your own parser/serialiser for, than XHTML-IM. So I don't think this is a bad direction. It is much easier for diligent devs to get it right. I'm just not sure I buy the argument that it's going to suddenly make anyone who wants to dump things into a DOM unsanitised safe.

  67. Ge0rG

    I like markdown, but it's impossible to write a parser for that.

  68. jonasw

    I agree with Ge0rG

  69. jonasw

    writing your own markdown parser is a mess, and will yield 1000 different implementations

  70. jonasw

    (this holds for all text-based markups, I’m afraid)

  71. Ge0rG

    It's even less possible to sanitize markdown.

  72. Kev

    Well, we can go with a binary markup if you want, and then base64 it to get it into the stream, but I don't think it helps :p

  73. Kev preempts Dave suggesting ASN.1 encoding of markup.

  74. Ge0rG

    Kev: it's already impossible to write correct markdown _text_, which is rendered in the same way everywhere. How are you going to write a parser?

  75. jonasw

    Kev, I sense buffer overflows there.

  76. Zash

    This is the appropriate reaction: https://pics.zash.se/4c840479.jpeg

  77. jonasw

    using an XML-based markup makes much more sense to me.

  78. Kev

    Ge0rG: That isn't the hard part. Tedious, but not hard, we just need to spec it. And by 'we', I mean that dwd has volunteered, so yay.

  79. zinid

    where to vote for asn.1? :)

  80. Ge0rG

    BER or DER?

  81. jonasw

    hasn’t BER failed?

  82. Zash

    Is server-side cleaning of xhtml-im sane, or would that just let broken clients be broken and then get hacked by evil servers?

  83. Zash

    XER

  84. Ge0rG

    Zash: yes.

  85. Kev

    Abstract Syntax Notation 71.

  86. jonasw

    from what I’ve heard, the general sentiment is that clients need to trust the server anyways to some extent...

  87. Zash

    Yes, trust the server, the server is good.

  88. jonasw

    but I guess it’d break e2ee

  89. Zash

    E2EE is just marketing fluff, did't we establish that?

  90. zinid

    jonasw: +1, I can't understand what's the point in building client-server architecture where there is no trust to server?

  91. jonasw

    Zash, I won’t get into that argument.

  92. zinid

    better off using p2p directly

  93. jonasw

    I’m torn on the e2ee thing. I don’t want certain stuff I discuss with people plaintext on my server in some MAM.

  94. jonasw

    zinid, p2p doesn’t scale

  95. Zash

    p2p doesn't scale *on mobile*

  96. zinid

    jonasw: I wouldn't say that, there are some research going on

  97. Ge0rG

    I really don't get why people hate ASN.1

  98. zinid

    Ge0rG: because it generates lots of boilerplate code for mainstream languages such as C++ or Java

  99. zinid

    for example, in Erlang it's great

  100. jonasw

    not rather because ~every ASN.1 parser is broken somehow?

  101. zinid

    jonasw: but we have PKIX working?

  102. jonasw

    sure, take a look how secure the PKIX libraries are

  103. Ge0rG

    Every browser contains an ASN.1 decoder. We could leverage that and replace JSON, once and for all.

  104. Zash

    Ge0rG: Call it "binary JSON with schemas and namespaces"

  105. Zash

    Make a fancy website on whatever is the hip TLD today.

  106. Ge0rG

    Zash: yeah, marketing is crucial.

  107. Ge0rG

    .io?

  108. zinid

    jonasw: I think that's the problem of the language you're using

  109. jonasw

    zinid, excellent, let’s ignore issues because they only occur in a single language.

  110. jonasw

    then we can stay with XHTML-IM, because javascript/DOM is the actual issue.

  111. zinid

    jonasw: well, we ignore? and what do we have as a result?

  112. zinid

    ASN.1 was a standard and now there are tons of implementation with 0 interop

  113. edhelas

    the XHTML-IM problem can be extended to Pubsub as well, with the usage of Atom

  114. dwd

    Kev, I volunteered to document a "snippets" design, which - I think - covers most of the use cases outside of *bold* /italic/ _underline_ and `preformat`.

  115. Ge0rG

    maybe we need a subset of ASN.1 that is easy to understand and to implement. Let's call it ASN.0. Or maybe ASNdown.

  116. zinid

    Ge0rG: I would rather use protobuff, frankly

  117. zinid

    but it's not a standard

  118. dwd

    zinid, FWIW, I've not come across any of these incompatible ASN.1 implementations, and I've used many of them.

  119. Kev

    dwd: I had completely misunderstood, I thought you'd volunteered to write the thing that's like markdown spec, sorry.

  120. dwd

    zinid, After all, when I worked at Isode, M-Link had about 6 in the code.

  121. edhelas

    but I'd say, maybe we can just add modules on servers to checkup the content of messages when they detect the xhtml-im namespace

  122. edhelas

    it's basically applying a schema and check if it fits

  123. dwd

    Kev, I can probably do that too. But I have a pair of XEPs and a I-D in my pipeline, and adding another one is pushing things enough. (Oh, and I'm trying to shepherd Ash through updateing '314 *and* writing another).

  124. zinid

    dwd: well I'm not talking about incompatible implementations, I think jonasw said that :)

  125. dwd

    edhelas, Really? So I can strip tables then?

  126. jonasw

    zinid, nope, I did not mention incompatibilities.

  127. dwd

    zinid, Then I misunderstood: [09:47:59] ‎zinid‎: ASN.1 was a standard and now there are tons of implementation with 0 interop

  128. zinid

    dwd: I mean there are now: thrift, protobuff, several json serializers, etc

  129. Ge0rG

    but those are all not ASN.1?

  130. zinid

    yes, but they do the same

  131. zinid

    encode/decode lang structures into/from wire format

  132. Ge0rG

    It's funny how SQL injection is still a thing in 2017. And XSS.

  133. Kev

    When I keep talking about markdownish, to be clear, I'm talking about something that is clearly and comprehensively specced, presumably by us. I am not suggesting it's ok to say "use markdown", and then just have everyone pick their own, subtly incompatible, library.

  134. Ge0rG

    Kev: I'm not sure that makes a difference. If it is sufficiently similar to markdown, people will just plug their own markdown library in and end up wth full HTML support.

  135. Kev

    Ge0rG: I'd really like the discussion to move away from "People will do what's easy, not what the spec says", and instead try to work out how to have a spec that a reasonable person is likely to implement without significant issue. XHTML-IM, as it stands right now, is not the latter thing.

  136. jonasw

    Kev, I’d like your opinion on a (possibly audited) JS reference implementation of a sanitiser.

  137. Kev

    I think it's a different question to whether XHTML-IM is sane. I don't think "It's near impossible to get right, but we've already done it, so use our implementation (or port it)" is the right thing to do.

  138. Kev

    If we get to the stage that we *do* have a sane spec, then a reference implementation could be helpful, but at that point is also probably not as necessary.

  139. jonasw

    I think that XHTML-IM is easy to get right, once we drop @style.

  140. jonasw

    (you’re gonna have the problem of sanitizing URLs in any markup which supports URLs)

  141. Ge0rG

    Kev: I'm not sure that it's actually possible for a reasonable person to implement a secure web application.

  142. zinid

    I'm lost, what is required to be sanitized? URLs?

  143. Ge0rG

    Kev: and I think that XHTML-IM is mostly a strawman here.

  144. zinid

    xhtml-im doesn't define scripting, so there should no be XSS, no? (I'm not a web developer)

  145. Ge0rG

    zinid: the problem is that it's insanely hard to sanitize user-controlled strings in a web application. And even more so if those strings contain HTML markup.

  146. Ge0rG

    zinid: change your nickname to `<script src=.../>` and there is a good chance some client will actually load and execute that.

  147. zinid

    I know about web application, but this is mostly due to script execution

  148. zinid

    yes, your example is also about scripting :)

  149. Ge0rG

    zinid: yes, but there are so many ways to include scripts.

  150. Ge0rG

    and developers need to know and filter them all.

  151. zinid

    but xmpp client should not execute scripts?

  152. Ge0rG

    zinid: should not, no. but if the client is running in the browser, the browser well might do

  153. zinid

    ah

  154. jonasw

    zinid, the fact that XHTML-IM doesn’t define scripting does not prevent (a) maliciuos entities to include <script>...</script> and (b) stupid clients to embed the XHTML from the message unsanitised into the browsers DOM

  155. zinid

    jonasw: yes, got it

  156. zinid

    but don't we have the same problem with markdown? how is markdown processed? web clients can pretty much insert <script/> from markdown into DOM as well

  157. zinid

    and the same for raw messages (i.e. <body/>)

  158. Ge0rG

    zinid: that's a very valid point, made multiple times by now.

  159. zinid

    ah, ok

  160. zinid

    sorry, TL;DR :D

  161. Ge0rG

    yeah, that is a common problem :>

  162. pep.

    Ge0rG> Kev: I'm not sure that it's actually possible for a reasonable person to implement a secure web application. < +1

  163. pep.

    "Markdown is not HTML so people will have to write their own parser" what? (*me just read the ml thread*)

  164. pep.

    Or rather, people can't drop that into innerHTML. Don't worry they'll find ways

  165. Ge0rG

    I mean: I'm a professional IT security specialist, and I don't know all the ways that you can inject code into a web app from user input.

  166. pep.

    I'm not even sure how to contribute to that thread. People hear "We need to deprecate XHTML-IM" and already it's "I know $NEW_FANCY_MARKUP that we can use". We're just going in circles.

  167. pep.

    Kev> Ge0rG: I'd really like the discussion to move away from "People will do what's easy, not what the spec says" < That's exactly what's happening at the moment with XHTML-IM.

  168. pep.

    And that's what sam is ranting about

  169. pep.

    If it their implementation were compliant there would be no such issue. (Or we could fix the XEP to answer these issues)

  170. Syndace

    Can you deprecate a XEP, modify it and then make it draft again?

  171. pep.

    If it their implementation was compliant there would be no such issue. (Or we could fix the XEP to answer these issues)

  172. pep.

    Under a different name/number? dunno. That would be silly anyway

  173. pep.

    Might as well reinstate the original XEP

  174. Syndace

    No under same name and number

  175. mathieui

    Syndace, https://xmpp.org/extensions/xep-0001.html#approval-std

  176. Syndace

    Okay thanks

  177. pep.

    Anybody can post to standards@ right?

  178. jonasw

    pep., must be subscribed, but subscription is open

  179. pep.

    I get the emails, so I did that iirc

  180. jonasw

    your mail got through

  181. jonasw

    the list has some delay, in the order of a few minutes

  182. pep.

    Yeah I saw it/them come back :)

  183. pep.

    Yeah I saw it/them go through :)

  184. pep.

    Why do my first emails have to be hate mails :(

  185. jonasw

    it’s not hate, it’s constructive discussion (for now)

  186. Kev

    Uhm.

  187. pep.

    https://www.mail-archive.com/standards@xmpp.org/msg17919.html I like goffi's position here

  188. Kev

    Wasn't the first of those mails "We have to consider people who ignore the spec" and the second mail "Changing the spec will fix it"?

  189. Kev

    I think as long as your position involves the "stupid people" argument, there is no way to find a solution to injecting markup, but there is certainly no way for xhtml-im markup.

  190. pep.

    I'm not of the opinion that changing the spec would fix the issue. It might help a bit

  191. Kev

    Jonas said we should change the spec, you said you strongly agree...

  192. jonasw

    sure, because @style is hard to validate right. everything else can be done.

  193. pep.

    Well, that would help yes.

  194. jonasw

    (even @style can be done, but I don’t think we should be asking people to do that)

  195. pep.

    Kev, also look at my second sentence. "the issue is not here"

  196. Kev

    jonasw: Yes, and that's fine if you agree with my premise that we should be catering to people who want to do the right thing, not to people who ignore the spec and inject HTML directly. If you want to go along with my premise there, then changing the sanitisation rules can help. But if you're on the premise that people will ignore the spec, no amount of changing the spec will help with that.

  197. jonasw

    Kev, I still believe that a working reference implementation will help against people ignoring the spec.

  198. jonasw

    (and a reference implementation would benefit from getting rid of @style, which is my argument there)

  199. Syndace

    I don't even think in a open source environment you have to care about stupid people. If you stumple across an implementation that allows for XSS you open an issue and point them to the reference sanitizer and everything is fine.

  200. Syndace

    If someone writes new client code for fun that only he and his friends use then whatever

  201. jonasw

    I prefer to try to prevent security issues before they happen.

  202. Syndace

    Yeah sure

  203. Kev

    jonasw: I think you're agreeing with my argument, and disagreeing with pep's, that we should be making this easy for people who want to do the right thing.

  204. jonasw

    yes, we definitely agree on that.

  205. jonasw

    I don’t agree that inventing our own markup will help with that.

  206. pep.

    Kev, but the issue at hand is people not doing things right, am I wrong?

  207. jonasw

    it will just open another can of worms, be it security issues or interop issues.

  208. jonasw

    (or probably a mix of both)

  209. Alex

    server plugins could strip out java script and other malicious tags

  210. jonasw

    Alex, that has been proposed, and Zash even drafted an implementation of that for prosody.

  211. jonasw

    I don’t feel that clients should rely on that in any way.

  212. Kev

    Alex: I'm not convinced by that argument, really.

  213. jonasw

    (but it’d be an interesting tool to detect malicious parties)

  214. Alex

    I have done this before, the XHTML XEP lists the allowed tags, any other tag I ignored in the parser

  215. pep.

    Kev, if it's to make things more straightforward for people who follow the spec, I'm all in, and I agree with jonasw. But that's not how I read SamWhited's email.

  216. jonasw

    I also firmly believe that obsoleting XHTML-IM without a replacement which has deployment will achieve nothing, except closing a door for us on fixing things there. See Private XML support.

  217. Alex

    jonasw: agreed on that

  218. Alex

    we really need modern markup to compete with Slack and others these days

  219. jonasw

    I will implement XHTML-IM in my client over the next weeks, no matter the XEP status.

  220. jonasw

    simply to gain interoperability

  221. Alex

    othereise its a step backwards

  222. jonasw

    and I assume that others will do the same

  223. jonasw

    and if they don’t then we’ll end up with a bunch of incompatible tacked-on markups

  224. jonasw

    e.g. clients (not people!) putting markdown in <body/>

  225. jonasw

    (we already have that to some extent with clients interpreting *foo* and /bar/ and such)

  226. pep.

    I see *foo*, _bar_ etc. as historical, coming from IRC. Not sure where IRC got that first though

  227. jonasw

    pep., agreed

  228. jonasw

    even though there are clients which interpret ">", which I haven’t seen used much in IRC except in the last few years.

  229. pep.

    Right, they're all implementing their own markup, using <body>, which is meh

  230. jonasw

    much meh

  231. pep.

    I often rage against Conversations translating ">" at the beginning of a message. It breaks stuff like "><", and messages with a single ">" don't make sense anymore (got this case on prosody@ the other day)

  232. pep.

    I often rage against Conversations converting ">" at the beginning of a message. It breaks stuff like "><", and messages with a single ">" don't make sense anymore (got this case on prosody@ the other day)

  233. Holger

    >< works though.

  234. zinid

    Alex: > we really need modern markup to compete with Slack and others these days Do we really want to compete? I just doubt that this is the goal of XSF

  235. pep.

    Ah it works now indeed. I haven'T checked in a while

  236. dwd

    zinid, I think we should be competitive with things like Slack, yes.

  237. Alex

    zinid: I see many people switching to Slack these days. There is no reason why you can do the same with XMPP. But we lack of modern client and features these days

  238. pep.

    Alex, I think we have most tools to start implementing. I would rather wait and see if UAs ask for more

  239. pep.

    Maybe push them to implement such things if you really want

  240. zinid

    dwd: only like Slack? really, what userbase do XSF target? because from what I see currently it's producing specs for nerds (like e2ee)

  241. dwd

    zinid, Well, not only like Slack. And I don't entirely disagree with your assertions there.

  242. dwd

    zinid, ALthough not all nerds focus on the threat model that OMEMO does.

  243. pep.

    zinid, I think most nerds have their own servers, and e2ee is possibly of less important there

  244. pep.

    But I don't disagree with your assertions either :)

  245. zinid

    I just think maybe it's better to define the target userbase?

  246. zinid

    I mean if this is nerds, then I'm fine and we should go in this direction

  247. zinid

    I don't think we can produce a protocol for every person on the planet

  248. dwd

    zinid, Scalability would be an issue, for sure.

  249. Alex

    the strenght of XMPP was the we always covered a huge variety of use cases an users

  250. pep.

    zinid, protocol maybe, but for the end-users I don't think the protocol really matters anyway.

  251. zinid

    dwd: yes, but if we try to resolve scalability issues we will end up with SIP :)

  252. pep.

    Or rather, for *most end-users, non-tech that is

  253. zinid

    there is sip p2p rfc already

  254. dwd

    zinid, Oh, I do hope not.

  255. zinid

    dwd: well, if you strip shit from sip, it's usable and can be used as building block

  256. Zash

    zinid: the one that also works for xmpp?

  257. zinid

    hehe, ok, I didn't want to go into SIP vs XMPP debate :)

  258. dwd

    zinid, That's not a debate, it's a bloodbath. ;-)

  259. dwd

    zinid, But anyway, I think we have a set of existing target communities, and I agree that defining these would be of benefit to us as protocol designers - however you implied there can only be one, which I think I take issue with.

  260. Alex

    the target communities also changed over the last 10+ years. I like this discussion of defining it

  261. zinid

    dwd: well, their can be several, but I don't think "regular user" class intersects a lot with "nerds" class (intersection is a very basic functionality)

  262. zinid

    I mean, take a look: 1) a girl spending most of the time in instagram and so on 2) a nerd who lives with console

  263. zinid

    how can we target both?

  264. dwd

    zinid, I think the amount of intersection between the sets is actually something we'd need to find out. I suspect it's not nearly as small as you might think.

  265. zinid

    maybe, would be great to understand though at least for making the priorities

  266. Alex

    extensions, give teh nerd a console client without XHTML, and the girl a client where she can like messages, have hundreds of emoticons and share images and glyphys

  267. zinid

    Alex: sounds great in theory, but does it work in practice?

  268. Zash

    Jack of all trades

  269. Alex

    yes it does, I am doing XMPP stuff for close to 15 years now, and have customers which do all that with XMPP with great sucess

  270. Zash

    It does show that a bunch of us are more or less doing stuff for ourselves. Nothing wrong with that.

  271. Holger

    Zash: Nothing wrong with targetting ourselves if we clarify that. Then I can give up trying to sell XMPP to others and then having to explain why stuff breaks.

  272. Zash

    Optimally we'd get instagramming teens into software and standards development

  273. zinid

    nothing wrong of course, the problem I have is that we constantly speak about how to fight with Slack without even defining the target

  274. Zash

    And if the target is everything then it's a lot of work

  275. zinid

    yes, 300+ XEPs for sure :)

  276. zinid

    yet another 300 I mean :)

  277. Alex

    I think case studies and small tutorials on our webpages would help

  278. Zash

    Only? Gotta break that initial zero ;)

  279. Holger

    I think it's a vicious circle. XMPP's niche is mostly nerds, so there's few other users complaining about our stuff, so we concentrate on the nerd stuff because that's more fun to implement.

  280. Zash

    Holger: Typical in most FOSS circles

  281. Alex

    you wanna build something liek Slack, hey this iw what you need, extensions A+B+C+D you wanna build a military grade client, then this is what you need, extensions X+Y+Z

  282. Zash

    Alex: Sounds good

  283. zinid

    Holger: +1

  284. Holger

    Zash: Yes but elsewhere there target audience is more obvious.

  285. Holger

    s/there/the

  286. dwd

    Alex, In my experience, the Military and similar markets actually want something Slack-like anyway.

  287. Holger

    Zash: If you build a tiling window manager, you won't break stuff for non-geeks.

  288. Alex

    you wanna build something like whats app do that you wanna build machine 2 amchien communications do this you need build a system for realtime stick exchange do this you wanna build the next Uber (geoLoc) to that

  289. dwd

    Alex, I mean, they want labelling, sure, but don't think they don't care about emoji support.

  290. Holger

    And a large part of FOSS projects is building server/infrastructure stuff ...

  291. Ge0rG

    Alex: that sounds like a compliance suite.

  292. zinid

    Alex: ok, let me rephrase maybe: who will write the XEPs for Slack audience? Hell, does anyone even know what Slack audience want? :)

  293. Alex

    I suck at typing today, so need a client which supports XEP-0308 :-)

  294. dwd

    zinid, I've used Slack, and I can tell you that Slack themselves don't have a clue.

  295. Ge0rG

    there is a commercial market for corporate (or government) slack-like things self-hosted with data retention, archival, LDAP integration and other enterprisey requirements.

  296. zinid

    we can start doing this, but we will eventually end up working on JET and OMEMO :D

  297. zinid

    dwd: yes, maybe :)

  298. Ge0rG

    zinid: we don't need to target the nerd audience. They will come to us voluntarily.

  299. zinid

    Ge0rG: but we do this

  300. zinid

    JET and OMEMO for whom?

  301. zinid

    a girl from instagram never heard about e2e

  302. Alex

    Ge0rG: yes, we had a compliance suite before at the XSF for servers and client, but somehow died

  303. Ge0rG

    IMO, there are two target groups we should focus on, five years ago: - Slack-like on-premise / hosted services with a good web and mobile UX - slightly nerdy normal users (see Conversations' success)

  304. Ge0rG

    Alex: the current one is defining "mobile" and "IM" use cases. I'm pretty sure that "Slack" would make a good "Multimedia Chat" one or somesuch

  305. Ge0rG

    Alex: actually, there is not much specification missing to pull off a Slack-like thing, it's only a lack of dev power to make a proper web client and a one-button easy-deployment server.

  306. Ge0rG

    okay, web client _and_ mobile client

  307. Ge0rG

    Give me a dozen competent developers, a year and a time machine so I can start in 2012, and I can pull it off.

  308. dwd

    Ge0rG, Actually, Openfire has the latter, for sure. You can install webchat clients just by push-button after Openfire itself is installed.

  309. Ge0rG

    dwd: will Openfire come with AD/LDAP integration and all the Enterprisey checklist features?

  310. dwd

    Ge0rG, It has had AD integration for a decade or something.

  311. Ge0rG

    And will it scale to (tens) thousands of users?

  312. dwd

    Ge0rG, It doesn't scale as well as some servers. Chokes around 20k users or so, I think, until you do clustering.

  313. edhelas

    what about ejabberd ?

  314. dwd

    edhelas, I think that has LDAP integration, I don't know about Active Directory SSO (ie, GSSAPI).

  315. zinid

    edhelas: https://blog.process-one.net/ejabberd-massive-scalability-1node-2-million-concurrent-users/

  316. Ge0rG

    dwd: is it possible to buy an Openfire appliance / virtual machine with around-the-clock tech support?

  317. zinid

    :)

  318. Ge0rG

    dwd: but we are getting off-topic here.

  319. Ge0rG

    There is a German startup, selling enterprise mobile messaging <https://www.teamwire.eu/> - they provide cloud-hosted and on-premise solutions, and ask something like 3€/month/user for a WhatsApp-like experience. And they don't even have federation.

  320. Alex

    zinid: there is hosted.im if you need that

  321. Ge0rG

    But they have a sustainable business for something like five years now.

  322. dwd

    Ge0rG, Sure. We do have a dearth of clients running on Apple-favloured systems.

  323. Ge0rG

    The problem is: nobody will buy an XMPP-based IM solution if the UI isn't Slack-like

  324. zinid

    Alex: me? :) now, thanks, I have my own domain

  325. Ge0rG

    dwd: business clients running openfire on Apple? Or XMPP clients running on macOS?

  326. Ge0rG

    or iOS?

  327. edhelas

    Ge0rG what is "slack like" for you ?

  328. zinid

    damn, last time I checked slack I didn't understand what its buzz is about

  329. dwd

    Ge0rG, Yes.

  330. Ge0rG

    edhelas: easy to use private messages, channels, markup, some integration with websites / web services

  331. dwd

    zinid, It introduces millenials to IRC.

  332. Ge0rG

    edhelas: synchronization across all devices. proper push notifications

  333. dwd

    zinid, That is, pretty much, it. It's IRC with emojis and working file sharing.

  334. Ge0rG

    I actually like Slack. It's easy to use.

  335. zinid

    dwd: then what is a problem to build slack-like using existing XEPs? am I missing something?

  336. Ge0rG

    zinid: lack of developers

  337. dwd

    zinid, No, we're not missing much to build something Slack-like, but federating and with security.

  338. edhelas

    I already have a couple of Movim users that deployed it in their business on top of a XMPP server

  339. edhelas

    you add some bots to integrate with github/jira and you're good no ?

  340. dwd

    I do think that our absolute neutrality does handicap us from showcasing good clients, which in turn reduces the appeal of the platform as a whole.

  341. zinid

    Ge0rG: that's true

  342. zinid

    dwd: so the problem is nobody wants to use XMPP for their apps, ok, we go in circles now :)

  343. dwd

    zinid, Well, sorta. I think people look at the first client or two they see and assume that the UX they encounter is due to restrictions in XMPP.

  344. Alex

    GitHubs Gitter is another example, also getting quite popular these days

  345. Ge0rG

    dwd [13:46]: > I do think that our absolute neutrality does handicap us from showcasing good clients, which in turn reduces the appeal of the platform as a whole. Very sad, and very true.

  346. edhelas

    I was thinking of creating a page that showcase those "good clients" actually

  347. edhelas

    if it's a project that is not officially pushed by the XSF, it could work no ?

  348. zinid

    what good clients? I still use Tkabber...

  349. zinid

    conversations maybe

  350. dwd

    zinid, Nerd. :-P

  351. edhelas

    zinid Dino looks very promissing

  352. zinid

    dwd: but what to use? swift lacks of features, dino is crashing, gajim is buggy (tracebacks are the friends)

  353. dwd

    zinid, I wonder if - and I know this sounds silly - the XSF should have an awards thing for Best XMPP Client for XYZ Platform, etc? Would that help highlight and motivate?

  354. zinid

    dwd: no, Durov puts 1M$/month in telegram for instance, I think other major IM players do the same

  355. zinid

    so if the price will be 1M$ then maybe :)

  356. zinid

    s/price/award

  357. Ge0rG

    You don't need that much for developing a client or two

  358. zinid

    Ge0rG: yes, I understand the most of the money goes into adv, but still there is a lot of guys working on a client

  359. jonasw

    dwd, awards are not so cool

  360. jonasw

    the issue with awards is that only one wins

  361. jonasw

    or let me put it this way: it would require well thought out terms for people to participate

  362. jonasw

    also I’m afraid it might just re-enforce already well-funded (in which way ever) clients

  363. Ge0rG

    dwd: we really need to revive the Jabber Software Foundation

  364. Alex

    putting good software projects under an umbrella like Apache does could help

  365. Alex

    Ge0rG: same idea :-)

  366. pep.

    edhelas, arguably there is no good clients, it's all shapes of bad :)

  367. Alex

    Pandion was this client for windows in the early days of Jabber/XMPP

  368. zinid

    Ge0rG: what will JSF do?

  369. pep.

    marketing? promotion of clients? and the XSF do standards? (wild guess)

  370. zinid

    marketing = $$$

  371. Alex

    $$$ could be raised easily, when there is good software

  372. Zash

    Alex: wrong, when there is good marketing

  373. zinid

    Alex: no

  374. Alex

    Zash: both

  375. Kev

    OK. I have a strong position on XSF Neutrality, because I don't see a way to do things fairly. So perhaps it'd help to persuade people like me that the XSF can do this stuff if someone came up with a concrete proposal of how the XSF could do recommended clients/servers etc., and do it fairly.

  376. zinid

    Alex: tons of Conversations user don't even pay for it

  377. Alex

    zinid: its not easy, but doable

  378. SamWhited

    Catching up… fwiw, I don't have a "position" that we should do markdown that likes like plain text in <body>. I have a position that we should deprecate XHTML-IM and then we should take the time top write a good replacement considering the pros and cons of both approaches. Tentatively I suspect that doing it in the body makes sense, but I'm not pushing for that.

  379. SamWhited

    Similarly, this started because I've tried an XHTML-IM impl that was broken … again. So it's hardly a strawman for "other xss'". If I thought other xss' were caused by a poor spec, I would probably try to obsolete that too.

  380. SamWhited

    Alex: we have a council vote to advance them next week! https://xmpp.org/extensions/xep-0387.html

  381. SamWhited

    Or already did and it's waiting on list votes, I forget.

  382. jonasw

    SamWhited, good luck trying to obsolete .innerHTML and others :)

  383. Kev

    I think Council just approved an LC on 387, and so vote to advance should be the week after, shouldn't it?

  384. SamWhited

    jonasw: exactly, that's why I'm focusing on xhtml-im instead :)

  385. jonasw

    I think the LC needs to be announced properly on the ML first

  386. jonasw

    some editor should do that *cough*

  387. SamWhited

    Ah yah, that sounds tight

  388. SamWhited

    Right, even

  389. jonasw

    I can see if I can get around to do that this weekend

  390. Kev

    Oh, right. The two weeks don't start until that's announced.

  391. Zash

    SamWhited: How is "The Web" handling that? Because it's not just XMPP clients having that problem, right?

  392. SamWhited

    Zash: by not sending raw html around and trusting that developers can implement a white list properly or will do so at all.

  393. jonasw

    Zash, have you looked at the web? it’s injections everywhere.

  394. Zash

    I looked at the web recently. It said "It is inherently impossible to make a secure web thing."

  395. SamWhited

    I assumed we were talking about transmitting formatting over instant messages, but yes, generally it's injections everywhere. I just still fail to see what other problems that aren't xhtml-im have to do with xhtml-im.

  396. Zash

    I'm thinking, what are other standards orgs or such doing about equivalent injection issues?

  397. Zash

    I'm assuming here that there's some overlap between xhtml-im and web apps

  398. SamWhited

    Ah, yah… good idea, someone else must do this.

  399. Zash

    More like "has someone done something already that we can steal?"

  400. pep.

    SamWhited, for me deprecating xhtml-im is just delaying the same kind of issues with another more or less similar XEP. You're complaining about a range of UAs that are either 1. not following the XEP, 2. Not doing their job correctly. I don't think you can't fix 1., and if you see 2. please report it. If you do and and still get no reply, then I don't think we can't do anything either.

  401. pep.

    Replacing XHTML-IM won't fix this

  402. Zash

    The XMPP thing to do is to turn it into XML on the wire. But people will fail at that, whatever we do.

  403. SamWhited

    pep.: it won't fix that, you're right. I am not arguing that a new thing will make developers never have any security issues ever again.

  404. pep.

    Right

  405. SamWhited

    I am arguing that I have never seen an xhtmlim impl that worked the first time and that it is especially easy to get wrong. We *can* make something where the default naive implementation does not commonly lead to badness.

  406. SamWhited

    This is the best you can do in any security issue.

  407. mathieui

    SamWhited, would bringing up the poezio xhtmlim impl be trollong?

  408. mathieui

    SamWhited, would bringing up the poezio xhtmlim impl be trolling?

  409. pep.

    goffi also has an implementation iirc

  410. jonasw

    doesn’t movim have XHTML-IM support?

  411. pep.

    no

  412. SamWhited

    mathieui: sorry, I didn't include it here because phone, but yes, on the emails I think I specifically said "web based"

  413. SamWhited

    :)

  414. jonasw

    I thought they talked about that (at least partial support, I think they strip @style, but maybe I’m confusing things)

  415. mathieui

    that makes sense, np

  416. pep.

    SamWhited, libervia is a web client.

  417. mathieui

    and everything that brings in a webview in a client application too

  418. pep.

    jonasw, no, edhelas doesn't want xhtml-im for some reason

  419. SamWhited

    Right, "things that actually have a javascript engine"

  420. SamWhited

    Getting of the bus… may be slow to respond.

  421. pep.

    SamWhited, also please don't merge markup in <body> :(

  422. SamWhited

    Off… I hate phones.

  423. jonasw

    who doesn’t

  424. SamWhited

    I give up. Why does everyone think I want to push an alternative format? I will probably volunteer to write one if xhtml-im gets deprecated, but I am not pushing for markdown or whatever in body. I haven't done any research yet.

  425. jonasw

    I personally do not think that, but we are going to need an alternative, and the alternatives all look bad.

  426. Ge0rG

    We won't improve our situation by deprecating XHTML-IM without an alternative, and I still don't believe we will be able to come up with an idiot-proof alternative.

  427. Kev

    And if we're not striving for idiot-proof, we should assess whether XHTML-IM can be suitably improved.

  428. Zash

    If you do, the universe will spawn a better idiot.

  429. Zash

    Having an official safe JS reference implementation does sound somewhat promising tho.

  430. Zash

    And and a bigger better security considerations section

  431. Kev

    And blacklisting style.

  432. Zash

    What about the teends that crave colorful messages?

  433. Zash

    Bunch of predefined classes?

  434. Kev

    If we allow style, I'm not at all sure how even a reasonably diligent implementor avoids issues.

  435. Zash

    Instead of <span style="color:red">, there would be <span class="fg-red">

  436. jonasw

    classes seem like not a good idea either

  437. jonasw

    hm

  438. jonasw

    it needs sanitization at least

  439. jonasw

    to avoid that some attacker abusse your clients classes

  440. Zash

    Do they?

  441. Zash

    Hrm

  442. jonasw

    but they’re much easier to sanitise than @style

  443. jonasw

    (split by " ", make a set, check that only things starting with xhtml-im- are in there or so)

  444. jonasw

    alternatively (but Sam will shoot me for that), xhtml-im:color="..."

  445. Zash

    howaboutno

  446. jonasw

    why not?

  447. jonasw

    (hm, still needs sanitisation to prevent injection attacks)

  448. jonasw

    so using @class and defining a set of classes seems most safe for now

  449. mathieui shoots jonasw

  450. Ge0rG

    we should only allow one value for color, which is an integer between `0` and `359` on the XEP-0392 color wheel.

  451. SamWhited

    Amusingly, I just sent a short reply to one of Kev's messages that included the example: *&lt;script&gt;alert(123)&lt;script;&gt;* and FastMail rendered that as bold.

  452. Zash

    Why not hold a public poll where people can suggest names for them

  453. Zash

    SamWhited: /nick <script>alert("everyhing is broken");</script>

  454. Zash

    Especially my typing

  455. Ge0rG

    what happens if you add unquoted HTML to the <body> text?

  456. Zash

    What happens when you encrypt unquoted HTML in OTR?

  457. jonasw

    Ge0rG, you mean, like, <body><b>foo</b></body>?

  458. Zash

    Interesting how <b> isn't in xhtml-im

  459. jonasw

    s/b/strong/

  460. pep.

    Zash, jonasw, reference implementation, and tests also maybe

  461. pep.

    Although I'd like to have more than just JS, because it's not just a web issue and it's not just an xhtml-im issue

  462. pep.

    Basically we need a reference client? :)

  463. mathieui

    16:20:06 Zash> What happens when you encrypt unquoted HTML in OTR? → let’s not talk about OTR

  464. Zash

    jonasw: IIRC <b> was added back into html because nobody cares about semantics

  465. Zash

    And nobody is going to fix all the web that uses it

  466. Ge0rG

    jonasw: yeah

  467. jonasw

    Ge0rG: depends; web clients might joyfully let themselves being XSSed

  468. mathieui

    but they do even without xhtml-im

  469. SamWhited

    > but they do even without xhtml-im I still can't figure out what the argument is there. Other XSS's aren't related to XHTML-IM… what point are people trying to make when they say that "there are other XSS's too"? If it's obvious to everyone else I apologize, but I'm honestly asking. There is some implied ending to that statement that I don't understand.

  470. pep.

    That XHTML-IM is not the issue, there's a deeper issue

  471. SamWhited

    Yes, XSS is a deeper issue, but you can't fix XSS on the web. You can not recommend a spec that actively encourages them though.

  472. SamWhited

    Is that what people are suggesting though? XSS is the underlying issue so there's no point in trying to prevent a subset of them?

  473. pep.

    You can try and improve XEPs all you want, that won't prevent clients from having bugs. I agree XHTML-IM could be improved to try and make people aware of it, but in the end it's mostly reporting bugs to clients

  474. SamWhited

    You won't prevent it, but you can certainly make it less likely that those bugs are catastrophic security issues.

  475. pep.

    Do you have specific examples of these issues btw? And I suppose you also reported them

  476. SamWhited

    Yes, I reported them. I won't go into the most recent one because it's not fixed yet as far as I know, but literally *every* XHTML-IM impl I've tried that was tied to an environment where JavaScript could be executed was either vulnerable at first, or had been vulnerable in the past (there was a CVE or issue about it or something)

  477. SamWhited

    HipChat for instance tried to do things right, but had a handful of bugs in their whitelisting (and I'm sure you could easily find more).

  478. SamWhited

    With XHTML-IM almost *any* simple bug leads to a security issue. We can absolutely write a spec where not every single simple logic issue allows a script to be executed.

  479. dwd

    SamWhited, Quite. The problem with XHTML-IM is that the obvious implementation is the most dangerous one, and insatead you more or less have to add an HTML protocol break in to make it safe.

  480. dwd

    SamWhited, In fact, edhelas suggested doing so in the server (and I thought of doing so in Metre), but the problem there is that XHTML-IM is often silently extended anyway.

  481. SamWhited

    dwd: Indeed. HipChat in theory does things right on the client (whitelist of elements and attributes, don't stick things straight into the DOM), *and* it has server side filtering. Despite that I've found at least two injections in that implementation (both of which are fixed now).

  482. jonasw

    what’s an "HTML protocol break"?

  483. Zash

    jonasw: <bold> mebbe

  484. Zash

    Or markdown

  485. dwd

    jonasw, A protocol break is a security programming technique where you extract out the information into a different, fixed, form and then reconstitute it entirely from scratch. Means that, in our case, a bit of Javascript has no place in the intermediate form so cannot pass through.

  486. Zash

    dwd: And is that even possible while still being XML?

  487. dwd

    Zash, No, you wouldn't do it with XML, you'd do it with something else. Real protocol breaks would break up all the XMPP traffic into an intermediate form (JSON, maybe) and ship it across a wire to the other side, which then puts it back together. Obviously that's a little overkill for XHTML-IM.

  488. jonasw

    You’re saying we can’t use XML for markup, at all.

  489. Zash

    jonasw: Yes. But we should, but we can't. Nice things and unavailability

  490. jonasw

    That’s depressing.

  491. pep.

    Who ever thought web clients would be a good thing :x

  492. SamWhited

    What is the advantage to doing an XML based markup? I'm not convinced that we can't do it, but I do think a non-XML based thing (which I'm assuming means "in the <body>") has a few nice advantages (single source of truth, better fallback behavior, etc.)

  493. dwd

    jonasw, No, I'm not. Just that you can't copy it direct to output without very havey mangling.

  494. dwd

    jonasw, And the level of safety we're talking about in the mangling negates the advantage of it being XML in the first place, IMO.

  495. Zash

    dwd: people will find a way to lazily search and replace that lets trough evil stuff

  496. dwd

    jonasw, I mean, two XMPP servers talking across a heavily secured boundary have all their traffic mangled out, and then back into, XML. It's not the XML itself that's the problem, it's that you cannot do a direct copy and guarantee safety.

  497. jonasw

    SamWhited, whatever we do, not in <body/>.

  498. waqas

    I agree with everything SamWhited said. Not a single client that I reviewed has gotten xhtml-im secure.

  499. SamWhited

    jonasw: what is the advantage of not doing it in the <body/>

  500. jonasw

    dwd, so, I like your HTML protocol break argument. Indeed, based on that argumentation, I think a something-not-XML-based-but-still-structural representation of the semantics of XHTML-IM would make sense.

  501. Zash

    <body type='html'>&lt;script....

  502. SamWhited

    thanks waqas; you're running for council next term right?

  503. jonasw

    SamWhited, doing it in the body ties us to poor plaintext-ish markups like Markdown, Creole or reStructuredText. Those are not extensible, the implementations often vary or are poor in other ways and such.

  504. waqas

    As part of my research I'd written a library that implements XHTML-IM protcol break: https://github.com/zeen/xhtml-im.js — it makes an XML DOM to an HTML DOM with a strict whitelist of elements, attributes and possible attribute values.

  505. Zash

    The xep talks about rtf. Do that

  506. jonasw

    waqas: :-O

  507. waqas

    I need to npm-ify it, to make it easier to use and add docs.

  508. jonasw

    waqas, that sounds like the reference implementation I wanted to see in XEP-0071 which everybody can use.

  509. SamWhited

    Ooh nifty, that's nice to have, thanks

  510. Zash

    So, let's pay for an audit?

  511. SamWhited

    actually I forgot, I think you sent this to me and challenged me to break it a while back and I never did.

  512. SamWhited

    never tried, I mean.

  513. jonasw

    waqas, except that I think it also gets the "replace invalid tags with their children thing" wrong

  514. jonasw

    (i.e. doesn’t implement it)

  515. Zash

    jonasw: let's kill that plz

  516. waqas

    It discards anything invalid first and foremost

  517. waqas

    i.e., it avoids all positives, but may have false-positives for certain attribute values

  518. waqas

    And the unknown element case

  519. jonasw

    Zash, I think it’s a nice-to-have for extensibility.

  520. jonasw

    (but I see how it’s hard to implement in anything which isn’t XSLT)

  521. Zash

    jonasw: you can extend the <message>, it's probably safer

  522. jonasw

    Zash, how’d you extend <message/> with HTML-<video/> elements?

  523. SamWhited

    jonasw: why is a plain text protocol not extensible? If I want to add /italics/ later, what is stopping me?

  524. SamWhited

    for that matter, why are "plaintext-ish markups" poor?

  525. dwd

    SamWhited, It still amuses me that the word italics in your message is rendered in italics for me.

  526. jonasw

    SamWhited, that clients which don’t know that /italics/ is italics won’t escape it

  527. SamWhited

    See, there we go, it works already!

  528. Zash

    Let's talk about /etc/foobar/

  529. SamWhited

    jonasw: Right, and we have a lovely fallback behavior, they still see the exact same message it just looks like someone added /emphasis/ in a different way

  530. waqas

    Extensibility is a secondary concern, that we should be thoughtful about. Security is the primary concern. I'm not sure the 'include the children' approach is always correct in HTML.

  531. pep.

    Zash, :D

  532. jonasw

    so my /path/to/some/file will render italics on your new client supporting italics even though it shouldn’t

  533. dwd

    Zash, Not italics.

  534. SamWhited

    Zash: Yah, I don't know about the specifics of using /, just an example.

  535. jonasw

    SamWhited, it’ll work for anything

  536. pep.

    +1

  537. SamWhited

    *sigh* so pick a different character, it was an example.

  538. dwd

    So /this is italics/ but yet /etc/passwd is not.

  539. jonasw

    SamWhited, I challenge you, which one which doesn’t look super odd when seen without support?

  540. dwd

    I mean, right now, in Gajim, this is the actual case.

  541. waqas

    dwd: Machine learning!

  542. jonasw

    dwd, what if I want to have only a part of a word in italics?

  543. SamWhited

    jonasw: That doesn't look odd to me, _emphasis_, /emphasis/, and *emphasis* all look relatively nice.

  544. SamWhited

    we're diving into specifics that don't matter though. The question is "why isn't it extensible" which you argued was a problem. Implementation details are not relavant at this point.

  545. dwd

    SamWhited, And they all worked in Gajim. They show the markup, mind, as well as the effect. But they work.

  546. jonasw

    SamWhited, but that’s exactly why it isn’t extensible.

  547. SamWhited

    dwd: Oh that's interesting, I've noticed a few web things (not IM) that keep showing the markup and the effect recently and liked it, I wanted to try it in an IM client. Didn't realize gajim already did it.

  548. jonasw

    You are re-defining things which previously were normal characters as meta-characters when extending it.

  549. jonasw

    That simply breaks, always.

  550. jonasw

    anyways, I gotta go for now.

  551. SamWhited

    jonasw: ahh, I see. That's fair.

  552. SamWhited

    I still think it doesn't matter as far as deprecating XHTML-IM, mind. The security concern comes first like waqas said.

  553. SamWhited

    But it's a fair argument if we're discussing alternatives.

  554. SamWhited

    A fair argument that I would love to consider in parallel to deprecating XHTML-IM ;)

  555. pep.

    So you're going to deprecate XHTML-IM, to then try and find a replacement, that is possibly just XHTML-IM 2.0.

  556. Zash

    XHTML-IM 2.0, now 200% more security considerations

  557. pep.

    :)

  558. SamWhited

    pep. yes. I certainly hope we don't come up with something that's just as bad, but we *know* XHTML-IM causes problems, it has been for years, so let's stop recommending new implementations of it. Keep in mind that people will still implement it for compatibility, and all existing implementations won't go away. It just means we don't advertise it as the way to do things.

  559. jonasw

    SamWhited, thanks for seeing my point, that has driven me crazy ;-)

  560. pep.

    So that doesn't find things at all, deprecating it. Fixing the XEP might be a better option?

  561. pep.

    So that doesn't fix things at all, deprecating it. Fixing the XEP might be a better option?

  562. SamWhited

    pep. we can't fix it without a rewrite, the basic idea is fundamentally broken.

  563. pep.

    If there is anything to fix

  564. jonasw

    SamWhited, given the arguments from dwd about protocol breaks and such, I agree that we should do other things. at this point, I’m in favour of something like some simple JSON-based markup or so.

  565. SamWhited

    At least, I don't think we can, if you have a proposal I'd love to be proven wrong.

  566. jonasw

    but I’m out of the discussion for now, I’ll write a list to standards@

  567. SamWhited

    jonasw: thanks, I look forward to reading it.

  568. pep.

    SamWhited, no I don't see how what you want to fix can be fixed, and I don't know if we have to worry about this to then come up with something as bad

  569. SamWhited

    I don't think we'll come up with something as bad. I'm reasonably sure most of us understand the problem.

  570. dwd

    Zash, Incidentally, `/etc/passwd` works in most IM-based Markdown variants as an escape pattern that also switches to monospaced "code" layout. But not in Gajim.

  571. pep.

    dwd, that doesn't change jonasw's point

  572. pep.

    And I agree with him

  573. pep.

    If you want to do something else please don't use <body>

  574. Zash

    dwd: Markdown is a html superset. You are doomed.

  575. dwd

    pep., Oh, I'm somewhat open either way, there.

  576. SamWhited

    I wonder if there's a middle ground, body and a hint about the type of markdown being supported. <body>this is *bold*!</body><formatting version="0.2"/>

  577. dwd

    Zash, I'm not proposing using *full* markdown. That would indeed be insane - nobody needs headers and things in IM messages.

  578. pep.

    SamWhited, so you'd include all different versions?

  579. SamWhited

    pep. you'd just give a hint about what the version of the spec was, then the client could implement all or nothing depending on if it understands the version attribute. I'm not sure this is a good idea mind, just spit balling.

  580. Zash

    dwd: markdown libs are going to pass through html by default

  581. Zash

    Same problem

  582. Zash

    SamWhited: I have this vague feeling that I've seen that proposal before

  583. SamWhited

    Like dwd, I'm rather open to either thing though. I do have a vague sense that doing it in body fixes a lot of little problems, but it has the downside that jonasw pointed out. I'm not sure which is the best tradeoff.

  584. dwd

    Zash, Well, I'm not actually sure most of them do, anymore. And in any case, there are loads of cut-down ones. But I'm merely hinting at a direction rather than wanting to compare it with XHTML-IM. It is, as SamWhited says, more a matter of agreeing we need to deprecate XHTML-IM and wondering what the functionality might be replaced with.

  585. pep.

    SamWhited, right. I don't think this fixes the issue. If the client doesn't handle *foo*, it'll leave the markup here, which is meh, and for each new version you'll just be defining more and more new meta-characters that weren't before. I'm not sure that addresses our issue

  586. pep.

    (As you just said ^)

  587. SamWhited

    I'm pretty okay with leaving the markup there; it may not be ideal, but it's a better fallback behavior than XHTML-IM right now (where the message just doesn't show up if you don't also include a plaintext body, eg. most HipChat extensions)

  588. pep.

    Well then HipChat is not compliant?

  589. pep.

    They should follow the XEP

  590. dwd

    pep., Do you seriously think that anyone using any Internet-based communications medium for the past two decades would be surprised to see *bold* things expressed as such?

  591. pep.

    dwd, not us no, but I'm pretty sure you don't want to target only us nerds with this

  592. SamWhited

    I'm pretty sure that everybody would understand *emphasis*.

  593. dwd

    pep., No, not just us. Any Twitter user, for example. Probably any Facebook user too.

  594. pep.

    Also, you will never be able to have any breaking change

  595. Zash

    Should it be about styling or semantics ? ?

  596. pep.

    I'd prefer it to be semantics

  597. pep.

    But I suppose Slack or Facebook users don't care

  598. SamWhited

    That's an interesting distinction. I think a replacement should just deal with text styling. If you want an image you have sims or something, and the client can decide if and how it wants to display that (maybe with an information XEP about displaying media in clients for guidance).

  599. SamWhited

    and the XML-based SIMS or OOB or whatever gives the client the semantic meaning of whatever the non-text resource is.

  600. Zash

    Someone mentioned push and publish-options being invalid?

  601. Zash

    https://xmpp.org/extensions/xep-0223.html#example-1 has the same issue?

  602. zinid

    Zash: yes, #persist_items is not registered within XEP-0060

  603. zinid

    only #access_model is registered

  604. Zash

    https://xmpp.org/extensions/xep-0222.html#example-5

  605. zinid

    ah, right :)

  606. zinid

    even more

  607. Zash

    Maybe one should do a `grep publish-options xeps/xep-????.xml`

  608. zinid

    sure, PRs are welcome, I'm told

  609. zinid

    but it seems like we just copy attributes from #node_config to #publish-options

  610. zinid

    what's the point? why not using #node_config data form directly?

  611. Zash

    It seems like at the time, people thought that was what it was

  612. Zash

    Like how you can create+configure a node in a single step, but this would be publish+configure (and maybe autocreate)

  613. Zash

    Seems like it'd be weird if you have many clients disagreeing on the options

  614. Zash

    Oh look at what fun issue I'm having. My xep-0071.epub had unescaped HTML like <body/> passed through, breaking things.

  615. zinid

    irony :D

  616. mathieui

    Zash, nice

  617. Zash

    > The root element for including XHTML content within XMPP stanzas is > > .

  618. Zash

    Good job pandoc

  619. Zash

    > The raw HTML is passed through unchanged in HTML, [bunch of formats], EPUB, Markdown, [even more]

  620. Zash

    Maybe I should just generate JSON. That'll solve all problems.

  621. Zash

    {"blocks":[{"t":"Plain","c":[{"t":"Str","c":"The"},{"t":"Space"},{"t":"Str","c":"root"},{"t":"Space"},{"t":"Str","c":"element"},{"t":"Space"},{"t":"Str","c":"for"},{"t":"Space"},{"t":"Str","c":"including"},{"t":"Space"},{"t":"Str","c":"XHTML"},{"t":"Space"},{"t":"Str","c":"content"},{"t":"Space"},{"t":"Str","c":"within"},{"t":"Space"},{"t":"Str","c":"XMPP"},{"t":"Space"},{"t":"Str","c":"stanzas"},{"t":"Space"},{"t":"Str","c":"is"}]},{"t":"RawBlock","c":["html","<html/>"]},{"t":"Para","c":[{"t":"Str","c":"."}]}],"pandoc-api-version":[1,17,0,4],"meta":{}}

  622. dwd

    Zash, Just looks like smiley faces to me.

  623. Zash

    dwd: Please don't use JSON as a markup language. Altho maybe that's the reason it's the only choice.

  624. dwd

    Zash, I wasn't going to suggest JSON at all.

  625. Zash

    Forget about XHTML-IM and markdown, let's do this https://www.oasis-open.org/committees/download.php/60/HM.Primary-Base-Spec-1.0.html

  626. SamWhited

    Embedded SVG, but the version of the spec that didn't end up making it through where it had functionality to open sockets.

  627. SamWhited

    Done.

  628. Syndace

    I really don't get why all examples of XEP-0030: Service Discovery error responses contain the query element mirrored from the request. To me it is as confusing as it looks useless. If a client does not support disco at all it won't know that it has to mirror the query element anyway, so why is it mirrored in all examples and do I really have to mirror it in my implementation? I did not find a MUST or REQUIRED about this in the specification. Do people mirror it? Do people rely on it to exist in error stanzas?

  629. Zash

    Syndace: I believe that's technically allowed by the specifications, but rarely used.

  630. zinid

    It's useful for debugging sometimes

  631. Syndace

    Zash: So, I can ignore it as being historical? Is there any reason it might be helpfull that I'm missing?

  632. Syndace

    zinid, okay I can see that, it's easier than matching ids of outgoing and incoming iqs.

  633. zinid

    I mean when you dump xml on server: you see what exactly your server is replying to with error

  634. zinid

    Syndace: but there is no requirement in the RFC

  635. Syndace

    Okay got it, thanks :)