XSF Discussion - 2019-02-25


  1. Holger

    I know I'm late to the party but I don't agree arguing vs. Matrix is bad and counter-productive. As a user I may well be interested in the pros and cons as seen by those involved in the protocols.

  2. zinid

    Holger: πŸ‘

  3. Zash

    Know thy bias

  4. Holger

    It's quite common that participants in discussions are biased :-)

  5. zinid

    I also don't understand this: several XMPP folks walk around and try to convince some communities to install XMPP instead of Matrix (KDE is such an example, I think Seve tried to convince them, I also recall that Licaon_Kter were trying the same in another community). So, if we don't "fight", let's just give up and let them installing Matrix? So those XMPP folks are just wasting time?

  6. Ge0rG

    Holger: I think it's all about being polite and open to feedback and insights from the other side.

  7. Ge0rG

    Also I'm ashamed about how some of "us" are bashing "them" on every possible occasion

  8. zinid

    yeah, people are obsessed with politeness

  9. zinid

    facts don't matter anymore even in high-tech community, you just need to be polite

  10. Ge0rG

    zinid: facts don't matter as long as you are impolite, in any community, since ever. Except when you are the dictator and can just ignore people's feelings.

  11. zinid

    how does the fact relates to politeness?

  12. zinid

    the earth is not flat, whatever you like it to be

  13. Holger

    Ge0rG: That's just not true. Different people, different tone, in any community, since ever. I feel it's a more recent-ish fashion to discuss tone all day, but you won't change it no matter how much energy you put into such meta discussions.

  14. zinid

    I also find it strange to focus on the tone endlessly

  15. Guus

    We focus on tone as yours is actively scaring people away. I understand that you don't consider your tone to be offensive. However, it is to a lot of people that do not share your background. This is how you can do damage to the community as a whole, even when your intentions are nobel. When discussing in a group of people with mixed backgrounds, it is best to err on the side of caution.

  16. zinid

    you see, again this πŸ˜€

  17. Guus

    Yes, and I will, as long as I feel that you are hurting the community.

  18. Ge0rG

    Guus: thanks, that's exactly what I wanted to say, but lacked the right words for

  19. zinid

    Guus, who is the community?

  20. zinid

    this room?

  21. Guus

    A mix of people of varied backgrounds.

  22. zinid

    yeah, very precise definition

  23. Ge0rG

    "the people who want to make XMPP more successful" would be a better one.

  24. Holger

    So this was just all about tone. I'm sorry I stirred this up.

  25. zinid

    Guus, btw, did you think that Matrix did more harm to our community by attracting them to Matrix?

  26. Ge0rG

    zinid: Matrix didn't do harm to our community. We did that harm by not providing the same perceived quality as Matrix.

  27. zinid

    we...

  28. Ge0rG

    (part of that is also yelling at our users)

  29. Guus

    I think XMPP was very complacent before Matrix. Now that they're around, we are more motivated to get things up to spec.

  30. zinid

    Ge0rG, I never heard that someone switched to Matrix because XMPP community is agressive

  31. pep.

    Guus, you mean forced? :P

  32. Guus

    zinid, I've had various talks with people that think XMPP people are acting like dicks.

  33. zinid

    Guus, and I didn't

  34. zinid

    I mean I never heard that

  35. Guus

    zinid, I have been trying to tell you over and over and over.

  36. Ge0rG

    zinid: maybe because you've got a reputation?

  37. Holger

    Guus: "Now that they're around, we are more motivated to get things up to spec." Really? I argued against someone making that statement just this morning. You feel XEP or software development is pushed by the competition from Matrix?

  38. zinid

    Ge0rG, so it's "you" but "we"?

  39. zinid

    Ge0rG, so it's "me" who hurt the community, but hypothetical "we" when you want to describe your failure?

  40. Guus

    Holger I didn't see that disccussion (was it here), but I do think that it, for instance, Matrix has shown what the effect is of XMPP clients generally offering bad UX/UI.

  41. Zash

    I sure don't feel like we're chasing Matrix. I just wanna sit in my corner and make things better.

  42. Guus

    Holger I didn't see that disccussion (was it here?), but I do think that it, for instance, Matrix has shown what the effect is of XMPP clients generally offering bad UX/UI.

  43. zinid

    note that I'm silent at all outside of these few rooms, I don't see how I can hurt the community

  44. Ge0rG

    zinid: you have a very aggressive tone on HN, and in discussions here and in the other MUCs

  45. Holger

    Guus: Not sure we needed Matrix to show that, even less sure we improved anything due to Matrix :-)

  46. zinid

    Ge0rG, I have 3 posts at HN, and I'm joined 3 rooms (one of them is ejabberd and I don't hurt anyone there at all)

  47. Guus

    Holger: we _knew_ it, but we didn't act on it. "since matrix", I've been trying harder to improve things.

  48. Andrew Nenakhov

    First, matrix official client riot is quite a piece of something not very good. Slow, blinking and often crashing.

  49. Guus

    so maybe it's just me πŸ™‚

  50. zinid

    Ge0rG, so I ruined everything by 3 posts?

  51. Guus

    (but I think it's more than just me)

  52. Andrew Nenakhov

    So I don't know about what perceived quality you are talking

  53. Zash

    Skype was a terrible client too. Yet percieved as better than XMPP.

  54. Andrew Nenakhov

    Second, on zinid's tone. I think he did (and does) more for xmpp than most. Ejabberd is great server.

  55. Zash

    Something something marketing

  56. Zash

    And network effect

  57. Seve

    Thing is, you are not looking with your average user eyes

  58. zinid

    Guus, indeed, maybe it's just you? Maybe it's something not related to the tone?

  59. Holger

    Andrew Nenakhov: πŸ‘

  60. Ge0rG

    Andrew Nenakhov: doing good things for the community isn't a permit to behave like an asshole, though.

  61. Guus

    but, it's not just UX: it also follows things like funding, marketing, getting your foot behind the door of larger organizations - there's much that we can learn from them.

  62. Ge0rG

    Guus: ...having a good easy-to-deploy coroprate setup.

  63. Guus

    (Note that there's much that they can learn from us too - but more interested in learning from them πŸ™‚ )

  64. Holger

    Ge0rG: Awesome tone of yours.

  65. zinid

    Ge0rG, maybe then the XSF will remove those pages where they describe XMPP usages because of my tone? The majority of use cases are ejabberd

  66. Zash

    Seve: Yeah, I don't have the same requirements or preferences as your average user. Often the excat inverse actually :)

  67. zinid

    Ge0rG, and maybe the XSF will put the usages created by people from the XMPP "community"?

  68. Ge0rG

    zinid: what's your point, again?

  69. zinid

    Ge0rG, my point is that you need to be consistent

  70. zinid

    at one hand I'm hurting the community, at another hand you use my product to promote XMPP

  71. Ge0rG

    zinid: I am. I appreciate you doing good development work for the community, while disliking your tone in public discussions.

  72. Guus

    I need to go -- be back in about an hour

  73. Ge0rG

    zinid: I'm interested in your professsional opinion on protocol matters, and that even includes ranting about XEP ugliness.

  74. zinid

    Ge0rG, me too, but your tone is not that great at all

  75. zinid

    so it's not you who should tell me about the tone

  76. pep.

    "Andrew Nenakhov> Second, on zinid's tone. I think he did (and does) more for xmpp than most. Ejabberd is great server.", This is just like saying "My husband beats me but he also buys me everything I want he's a great husband", (sorry zinid I didn't have any other comparison in mind :p)

  77. Ge0rG

    zinid: I'm guilty of a good share of ranting myself, yeah. But I try to rant about things I know about, like XMPP, in the respective community, including this place.

  78. Andrew Nenakhov

    I remember recently we shared an alpha build to our upcoming grrreat xmpp client for iOS, and certain member of community started concentrating on incomplete add contact screen imstead of marvelling at consistent work with message archive, beautiful chat interface, beautiful vcards, capabilities to send files and media...

  79. Ge0rG

    zinid: and I also tend to adapt my tone to the "incoming" tone, which is not the best of practices.

  80. Andrew Nenakhov

    Calling it a 'mockup' of an app. 😐

  81. Ge0rG

    Andrew Nenakhov: you can call me out.

  82. Zash

    Linus parallells?

  83. Wiktor

    Riot is ugly and slow indeed, but it's still more usable than anything I've seen on desktop for average user (read: looks like normal messaging app). I didn't check stuff recently though.

  84. Ge0rG

    Andrew Nenakhov: I tried to login with Xabber/iOS, it went from "Authenticating" to "Offline" immediately, with no error message. I wasn't able to add contacts, nor to send or receive messages. What other conclusion should I make than that it's a mockup?

  85. zinid

    pep., I don't find the comparison correct, but okay πŸ˜›

  86. Andrew Nenakhov

    You had to try harder, I guess. It does not go offline for us with our server

  87. Seve

    I think you guys are mixing topics :)

  88. zinid

    Seve, that happens all the time when you start discussing "tone" πŸ˜€

  89. Ge0rG

    Andrew Nenakhov: I entered the wrong JID, but it didn't tell me that.

  90. Ge0rG

    Andrew Nenakhov: on the other hand, I was just using your own words, which you used to describe another iOS client, that actually works in my experience... so there is _really_ no need to feel offended ;)

  91. Andrew Nenakhov

    I'm not the one here preaching politeness and ethics.

  92. Ge0rG

    > and I also tend to adapt my tone to the "incoming" tone, which is not the best of practices.

  93. Andrew Nenakhov

    I'm actually ok with criticism. Especially when it is aimed at released products

  94. Ge0rG

    Andrew Nenakhov: so you didn't release the beta to obtain feedback, but ...?

  95. zinid

    Ge0rG, we also don't release betas btw

  96. Andrew Nenakhov

    We have access to builds cause people were asking

  97. zinid

    nobody use betas

  98. Andrew Nenakhov

    *We gave

  99. zinid

    XMPP software has too small user base for betas

  100. Andrew Nenakhov

    And we are open to a constructive feedback and bug reports. Stress on constructive.

  101. Ge0rG

    Andrew Nenakhov: what about this? > I tried to login with Xabber/iOS, it went from "Authenticating" to "Offline" immediately, with no error message. I wasn't able to add contacts, nor to send or receive messages.

  102. Andrew Nenakhov

    Like, filed issues on GitHub. "I can't connect to xabber.org server, app immediately goes offline".

  103. Ge0rG

    Issues: 0

  104. Ge0rG

    Andrew Nenakhov: is https://github.com/redsolution/xabber-ios/issues the right place?

  105. Andrew Nenakhov

    That's not a constructive feedback but whining on a muc channel that I rarely visit in my spare time.

  106. Andrew Nenakhov

    Yes, that's the place

  107. zinid

    Andrew Nenakhov, Ge0rG is too proud to create issues, he only can make such advices, double standards, that is

  108. Zash

    Ge0rG doesn't report issues?

  109. Wiktor

    I just tested Xabber Web, works and looks really nice, this is not open-source though? (thinking about self-hosting and adding support for HTTP Upload)

  110. Zash

    So those 61 issues in our issue tracker is an illusion then? :)

  111. zinid

    Zash, yeah, he only creates issues in "right" software projects

  112. zinid

    double standards again

  113. Andrew Nenakhov

    Wiktor, it's agpl and not only it does support sending files, but probably does it im a very advanced way

  114. pep.

    Why do you have to use superlatives all the time :x

  115. Holger

    Wiktor: The problem is no MUC support.

  116. Wiktor

    Andrew Nenakhov, oh, I didn't spot the link to source, I found that xabber accounts have file upload but my own that supports http upload :0 didn't work

  117. Wiktor

    Holger, oh, I didn't go as far as that in my tests, thanks for input

  118. Wiktor

    for the record here's the source: https://github.com/redsolution/xabber-web

  119. Holger

    Wiktor: They do a custom MUC replacement.

  120. Wiktor

    ah, yep, now I recalled that, got it

  121. Zash

    pep.: superlatives is the key to the reality distortion field, don't you know?

  122. Ge0rG

    zinid: https://github.com/processone/ejabberd/issues?utf8=βœ“&q=is%3Aissue+author%3Age0rg is not as impressive as with other projects, but I'm not even a user of ejabberd.

  123. zinid

    Ge0rG, I'm aware of those, yes

  124. Ge0rG

    zinid: I'm with Guus here. Please tone down.

  125. zinid

    Ge0rG, my tone is fine, please back off

  126. Ge0rG

    zinid: "Ge0rG is too proud to create issues, he only can make such advices, double standards, that is"

  127. Ge0rG

    zinid: oh, wait. I didn't see the </s>

  128. Zash

    Is this going to end with a CoC?

  129. Ge0rG

    Zash: only if it's St. Benedicts.

  130. zinid

    nah, they don't need CoC to ban XMPP developers πŸ˜‰

  131. Ge0rG

    Andrew Nenakhov: also in the past, I've had some questionable experience with reporting issues to xabber-* projects. https://github.com/redsolution/xabber-android/issues/839 is the less controversial one.

  132. MattJ

    Andrew Nenakhov, what XMPP servers don't support MAM pagination?

  133. MattJ

    (re https://play.google.com/store/apps/details?id=com.xabber.android&reviewId=gp%3AAOqpTOHSQsuOQ0KIwNFHOY0ECYRaQZ4PVHpQppwVRTmXr8z06YGRbaP5M32yrq9RericFG1i3UlA4cMhN9SJE8M )

  134. pep.

    Even our own community members are spreading FUD, yay

  135. Andrew Nenakhov

    > Why do you have to use superlatives all the time :x How many clients you know that can send several images at once and present a niiice gallery to view them? Or send voice messages?

  136. Andrew Nenakhov

    Ge0rG, if you are that bothered by our vCard handling you can send us a pull request.

  137. Ge0rG

    Andrew Nenakhov: is that your answer to all my issues?

  138. Ge0rG

    Andrew Nenakhov: I will be glad to send you pull requests for everything you ask me to, you just need to pay my employer our standard consulting fee.

  139. Andrew Nenakhov

    MattJ, you are out of context about pagination. Guy was asking why we load many messages - but we load only 1 (one) message from every conversation.

  140. Andrew Nenakhov

    And there is no way to load all recent conversations but by polling all contacts I roster

  141. Andrew Nenakhov

    And since answers on Google play are limited to just 350characters there is no much space for details

  142. Andrew Nenakhov

    Because per our customer service policy we also have to insult jerky entitled commenters

  143. zinid

    πŸ˜€

  144. pep.

    First the "You know nothing!" is nice, and then I understood it exactly as MattJ did. It's really badly explained in that answer. "XMPP servers DO NOT support pagination" can mean quite a few things

  145. Alex

    memberbot is online and will accept your votes for the Q1-2019 membership applications

  146. Wiktor

    You know nothing, Jon Snow. :)

  147. Andrew Nenakhov

    Ge0rG, oh so we have to fix your problems with our app for free then, but you are willing to change us your standard consulting fee, uh oh

  148. pep.

    Alex, thanks!

  149. intosi

    Thanks Alex.

  150. Andrew Nenakhov

    pep., Yes, technically you are right. We should have been more technically precise

  151. Ge0rG

    Andrew Nenakhov: I report problems with your app for free, and I expect that you at least fix protocol violations.

  152. Ge0rG

    Andrew Nenakhov: you are paying your developers to write the app, so why shouldn't I expect you to pay me to fix your code, if you want me to do it for you? :P

  153. Andrew Nenakhov

    There was a guy somewhere here who was running around GitHub and spamming all the projects with nonsense issues like compatibility suite. I think he was thinking that he was doing a great community service.

  154. pep.

    A votΓ© !

  155. Andrew Nenakhov

    Just saying.

  156. Andrew Nenakhov

    Ge0rG, if you are having a problem with our code, I don't expect you to fix it, but to wait till we get to fixing it. If you are really impatient you may send us a fix, we rarely turn down PRs

  157. zinid

    Andrew Nenakhov, he is right now ranting in ejabberd@ room πŸ˜€

  158. zinid

    we don't want to support his precious SCRAM-SHA-256 πŸ™

  159. Andrew Nenakhov

    Lazy developer asses you are!

  160. zinid

    Andrew Nenakhov, hum, I thought XMPP is all about endless discussions and meetings, no? Should we implement something? I'm confused πŸ€”

  161. Andrew Nenakhov

    Have you read a post-meritocracy manifesto?

  162. zinid

    no

  163. Andrew Nenakhov

    These core values and principles are: We do not believe that our value as human beings is intrinsically tied to our value as knowledge workers. Our professions do not define us; we are more than the work we do. We believe that interpersonal skills are at least as important as technical skills. We can add the most value as professionals by drawing on the diversity of our identities, backgrounds, experiences, and perspectives. Homogeneity is an antipattern.

  164. Andrew Nenakhov

    https://postmeritocracy.org/

  165. zinid

    how does this relate? stop confusing me, plz

  166. Andrew Nenakhov

    I mean, we are doing everything wrong by trying to build something.

  167. Andrew Nenakhov

    We must be friendly and open an inclusive

  168. Andrew Nenakhov

    And then things will somehow get themselves done

  169. Andrew Nenakhov

    By our welcoming community.

  170. pep.

    I think we haven't addressed the elephant in the room that is the language barrier

  171. zinid

    Andrew Nenakhov, we also need to attract those pissed minority, they will do the job for us πŸ˜€

  172. Andrew Nenakhov

    zinid, so now you plan to EXPLOIT offended minorities??! You monster.

  173. zinid

    I just suggest the solutions

  174. zinid

    and you only criticize me

  175. Andrew Nenakhov

    Ok guys jokes aside, have to go off chat. Need to oversee updates to three xmpp clients and some more projects. Unfortunately so far we don't have any minorities in our team (though gender diversity is pretty high, 40% of our developer team are females!)

  176. pep.

    out of?

  177. Andrew Nenakhov

    Currently, there are 5 developers plus one sysamin and me

  178. pep.

    Cool :)

  179. Andrew Nenakhov

    Also one fringe member who works on designing required protocol extensions

  180. Ge0rG

    Andrew Nenakhov: it would be great if you could triage incoming bug requests and say whether you are going to fix them or not, and if yes then on which time frame

  181. Andrew Nenakhov

    Actually we have trouble keeping up with GitHubs tracker. We treat is a public backlog for now, and we rely on internal redmine tracker for real development.

  182. Andrew Nenakhov

    Problem with GitHub is that it gets spammed all to quickly with all sorts of request, so it takes a lot of time just to sort it,

  183. Wiktor

    Andrew Nenakhov, I agree, I've seen this problem with another project I've been involved with, too much noise

  184. zinid

    +1, and if you don't address that spam your bugtracker looks like a pile of πŸ’©

  185. Ge0rG

    Just close down the tracker then?

  186. zinid

    just cut off the head, yeah

  187. Andrew Nenakhov

    Some day in the future we'll hire a support team and will probably retain issue creation for team only.

  188. Andrew Nenakhov

    So to file bug report users will need to email their problem to us and we'll publish only verified issues.

  189. Andrew Nenakhov

    But this may also work bad. So for the time being we're mostly treating GitHub issues like a toxic dump and try to avoid it :(

  190. Ge0rG

    Andrew Nenakhov: let me try to find a better phrasing for my point: if you want people to report more issues, you should have a process where reported issues are at least categorized on a somewhat timely scale.

  191. Ge0rG

    Andrew Nenakhov: some hours ago, you asked me to report my issues on github.

  192. Andrew Nenakhov

    They actually are. I add labels to them!

  193. Andrew Nenakhov

    Xabber for Web GitHub tracker so far had zero issues, so it was less dreadful 😁

  194. Ge0rG

    Andrew Nenakhov: so you only want me to report on github about xabber-web and xabber-ios but not about xabber-android? :D

  195. Andrew Nenakhov

    Also, your bug reports are pointless and wasteful.

  196. Ge0rG

    Andrew Nenakhov: okay, so you don't want me to report issues at all?

  197. Andrew Nenakhov

    This is an incomplete portion of app, so it just works for us. What is the point reacting on it when we know we'll rebuild everything there?

  198. Ge0rG

    Andrew Nenakhov: so you admit it's just a mockup? 😁

  199. Andrew Nenakhov

    Probably yes, Georg, you better not report issues to us. Use some Dino or Gajim or Conversations or even Yaxim.

  200. Andrew Nenakhov

    Ge0rG, no, it's a very functional xmpp client that has a couple of incomplete interfaces, both of which are truly trivial.

  201. Ge0rG

    Andrew Nenakhov: point taken.

  202. Andrew Nenakhov

    You see, what's the point making beautiful login interface for an app if we suspect there will be some trouble down the road that we might not be able to solve?

  203. Andrew Nenakhov

    So we concentrate on hard things first. Trivial things and polish later.

  204. Guus

    Zash a couple of weeks ago you were about to test something in Openfire - there was a breakdown of s2s somewhere halfway in our conversation - were you able to reproduce that issue?

  205. Guus

    initial presence echo, I think was what the issue related to.

  206. Zash

    Guus: Hmm, can you provide more hints to help me remember?

  207. Zash

    Ah. I think I found that to be working now.

  208. Guus

    \o/

  209. Guus

    Thanks

  210. Guus

    edhelas - that's one of your issues with Openfire, btw.

  211. Guus

    so hopefully, that's gone now.

  212. Zash

    Guus: If you want a project for the day, try getting scansion ( MattJs test runner) up and running :)

  213. Guus

    Zash I'm actually interested - but it's one of a long list of awesome stuff I want do get done πŸ™‚

  214. Guus

    > Guus: ...having a good easy-to-deploy coroprate setup. You mentioned that earlier, Ge0rG - that's actually something that Openfire strives to do. Any thoughts/pointers there?

  215. Zash

    Hold on, I'm under the impression that that's already a strong point of Openfire, leave some for us too ;)

  216. Ge0rG

    Guus: I haven't run openfire yet, but having a short introduction article on how to host it with all mobile features enabled, and integrate it with your AD and stay compliant to GDPR, would be great.

  217. Guus

    Zash you get _all other_ stuff πŸ™‚

  218. Guus

    GDPR is something we haven't touched on

  219. Guus

    LDAP (AD?) integration you get out of the box

  220. Guus

    'all mobile features' likely means enabling some plugins, that we're planning to ship as a default set in the future.

  221. Ge0rG

    Guus [13:48]: > GDPR is something we haven't touched on That's a tough sell in the EU

  222. Guus

    Ge0rG - if you think that 'easy corporate setup' fills an important gap in what we have for XMPP, I'd love for you to look at Openfire for that - see if we can improve it more in just that (I think, like Zash suggests, its already pretty well on its way in that direction). I do see value for Openfire to specialize there.

  223. Guus

    Yeah, you're absolutely right.

  224. dele

    Guus I hope XEP-0357: Push Notifications is in your long list of awesomeness. It will help reduce the battery power drain when using Conversations with Openfire

  225. Guus

    dele yes, yes

  226. dele

    πŸ™‚

  227. Zash

    Got CSI?

  228. Guus

    Zash, I have working code that advertises the feature, but as I couldn't find anything that would actually benefit from CSI without breaking spec (mostly the out-of-order restriction, iirc), I've never pushed that.

  229. MattJ

    Guus, in theory a significant benefit comes from just witholding unimportant stanzas for $time and sending them together in batches

  230. Zash

    Yeah, messing with the ordering is just ... icky.

  231. Zash types "xep" and 3 random digits into a search engine and gets https://xmpp.org/extensions/xep-0286.html

  232. MattJ

    If you do more than that you're in dangerous territory, and even doing just that requires some work to get right

  233. Guus

    MattJ It's all a bit further away in my memory, but if I recall correctly, I thought that, practically, there wouldn't be to much value to it.

  234. Guus

    (I might be very wrong)

  235. Zash

    https://xmpp.org/extensions/xep-0286.html#sect-idm45485296239888 > 4.1 Transmit no data > 4.2 When transmitting, transmit as much as you can

  236. Zash

    That sums up a good strategy.

  237. Zash

    Harder to quantify that tho

  238. Guus

    Yeah - I was basically wondering if it effectively is worth the added complexity of CSI, in practice. That's why I held off.

  239. MattJ

    Guus, look up the study that found the Pandora music streaming client used 90% of its battery consumption on 2% of the traffic (because it downloaded all the track at the start [good], and then sent periodic pings back to the server [bad])

  240. Guus

    MattJ but doesn't SM affect that more than CSI?

  241. flow

    I think it is possible that even a trival CSI server implementation just withholding presence stanzas would have an measurable impact on battery life

  242. Zash

    Wasn't that part of SM removed?

  243. Guus

    flow if that's true, then I sit here corrected.

  244. Guus

    my completely uneducated guess was that that's not a meaningful change

  245. Guus

    (as there's plenty of traffic that would cause the buffer to flush)

  246. Zash

    Plenty of presence can be bunched up in batches

  247. flow

    Guus, well it clearly depends on the exact use case. But you could possiblly easly measure the longest idle time for the connection and compare the values with and without CSI

  248. flow

    or s/use case/user/

  249. Guus

    Yeah, that's a thought.

  250. Guus

    Also, I'm not saying that there's absolutely no merit in CSI

  251. Zash

    Measuring would be good tho

  252. Guus

    but the discussion I had at the time made me re-evaluate the priority of that added to Openfire

  253. Guus

    so I kicked that can down the road

  254. Guus

    So, yeah, GDPR, possibly CSI... what more enterprisy stuff is XMPP lacking? (or do you think is lacking because you've not tried our most awesome server)?

  255. Zash

    As a self-hosting proponent I'd prefer to see CSI prioritized over push notifications, since that ties into Google and Apple.

  256. Guus

    _completely_ unrelated: when tailing a logfile, it's easy to put in a marker by hitting enter, which introduces a blank line. Can you do something similar when following in less?

  257. Guus

    Zash, I don't think that there are self-hosted alternatives to clients running on Google and Apple (apart from web clients that don't have particularly good UX on mobile phones)?

  258. Guus

    In other words: adding Push Notifications doesn't hurt self-hosting?

  259. Zash

    It doesn't help with mobile OSes killing your app, but it does help with power usage.

  260. Zash

    CSI doesn't help with mobile OSes killing your app, but it does help with power usage.

  261. Guus

    I'm not saying CSI is useless - I just wondered how you compared it against push notifications. Support for either XEP would benefit the exact same clients, I think.

  262. Wiktor

    Guus, CSI doesn't help if your app is killed, push is handled by system and will start your app if it's not running (e.g. killed by aggressive battery optimization).

  263. Guus

    Wiktor, that sounds about right

  264. pep.

    Android clients should all implement VoIP to get past the push business :P

  265. Wiktor

    Both are useful, it's just their use-case areas do not overlap perfectly :)

  266. Guus

    I think I'm confusing people. I didn't want to say either CSI or Push is better or worse than the other. I only didn't understand the argument to prefer Push _as that's better for self-hosting_

  267. Guus

    doesn't really matter anyways

  268. Guus

    I was just curious

  269. pep.

    Conversations has really worked fine for me without any push support (I run the fdroid build)

  270. Zash

    But then need for agressive murderous battery savings can be mitigated somewhat by CSI

  271. pep.

    Guus, no that's the opposite, **to prefer CSI

  272. Guus

    pep. err, right - but my question remains: I'm not seeing that there's a difference for the _self-hosted_ aspect of things.

  273. pep.

    Using push means I am dependent on the developer's Push server

  274. Wiktor

    for self-hosting? push is no problem for server operators, rather to client developers (as they need to operate push proxy server). Or maybe I misunderstood what you meant

  275. pep.

    If I decide to self-host that push server, that means I have to rebuild the app, and register that to google(?), provide it in the play store etc.

  276. Zash

    Guus: I don't get no push notifications. So I personally don't directly benefit from push. Mostly it annoys me with implying that XMPP isn't push already.

  277. Guus

    Zash ok, sure - if you'd not use it even if the feature was available, then it makes sense to want to have a different feature first πŸ™‚

  278. Guus

    Wiktor no, you did not misunderstand me. That exactly was my confusion.

  279. Wiktor

    Okay!

  280. Guus

    (and I naively assumed that 'self-hosting' only applied to the XMPP server itself)

  281. Wiktor

    Yeah, well, I wouldn't use "self-hosting" to describe running your own push node, just like I wouldn't use it to describe forking a client, but that's just semantics I guess

  282. Zash

    No push notifications in my phone OS that I know of either.

  283. Guus

    Zash sure, but then you're running something that the vast, vast majority of corporate users isn't running.

  284. Wiktor

    for the record there are alternative push services to google, random example: https://developer.huawei.com/consumer/en/devservice/doc/20102

  285. Zash

    Fun fact: the first implementation of push notifications for prosody was tested against an SMS API

  286. Guus

    Which says more about the developer than the intended use case, I think πŸ™‚

  287. Guus

    intended/expected

  288. Zash

    :)

  289. Zash

    The part that sits in the XMPP server doesn't need to know anything about the push server, so why not

  290. Seve

    MattJ, you mentioned that if XMPP started today, it would not use XML. What do you think would it be, and why?

  291. MattJ

    A good question :)

  292. Zash

    Probably depends on who started it

  293. MattJ

    The thing is, I personally believe XML was, and still is, a great fit for XMPP

  294. pep.

    The X in XMPP stands for XML right, there's no way we use something else

  295. MattJ

    The reason is that it has namespaces right there

  296. MattJ

    Namespaces in most formats tend to end up pretty ugly at the end of the day

  297. Zash

    JSON with namespaces and schema isn't really nicer than XML

  298. zinid

    this is not a technical question, but marketing

  299. pep.

    But why use namespaces when you can have everything included (!! No I'm not trying to revive the discussion :p)

  300. zinid

    XML has bad reputation already

  301. Zash

    XML got a bad reputation because it was popular and used for things where it wasn't a good fit

  302. zinid

    Zash, does it matter why?

  303. Zash

    JSON is used for things today where it's not a good fit.

  304. Zash

    zinid: Does anything matter?

  305. zinid

    Zash, yes, something definitely matters

  306. Guus

    fwiw, I've found that standardizing anything on XML is easier than doing the same on JSON.

  307. zinid

    but not why XML got "outdated"

  308. MattJ

    Everything gets outdated

  309. Guus

    and I agree with zinid, XML has a bad reputation - I think that's primarily caused by the fact that it's hard to use for people that use it in a usecase where json is a better fit.

  310. Zash

    Bring back ASN.1!

  311. zinid

    Zash, yes!111

  312. zinid

    let's call it ASN.2

  313. zinid

    new exciting thingy

  314. Guus

    ASN.2.0 <-- you need the marketing thingy!

  315. Zash

    Is binary, has schema, namespaces, all the bells and whistles anyone could want

  316. Zash

    Or well, ASN.1 is ... the schema?

  317. zinid

    Zash, I think it's schema + encoding, no?

  318. MattJ

    Seve, none of this answers your question. The answer is probably "HTTP+JSON" and because that's what people use for everything today...

  319. zinid

    MattJ, yeah, but HTTP+JSON is a very rigid construction, it doesn't fit everything

  320. Guus

    I would call JSON many things, but not 'rigid'. πŸ™‚

  321. MattJ

    zinid, it's k->v pairs + arrays, it does fit everything :)

  322. MattJ

    Maybe not optimally, but it can be done

  323. MattJ

    Note that I'm not saying it would be a good idea

  324. Zash

    MattJ: Did you see the thing I played with this morning? It failed sometimes because of the order of keys in JSON objects.

  325. MattJ

    Fun

  326. zinid

    well, they invented CBOR, which has 1:1 mapping with JSON, why?

  327. Zash

    CBOR is nice

  328. zinid

    btw, CBOR is even more compact than ASN.1

  329. Zash

    zinid: That doesn't make sense

  330. zinid

    Zash, what exactly?

  331. Seve

    MattJ, I didn't say anything because I'm interested on the topic and wanted to know what people say. I was just wondering when you mentioned that, if you had some other solution for it that could replace XML today for XMPP or if you had in mind the popularity JSON has these days. Very appreciated :)

  332. MattJ

    Seve, no, I have no better solution in mind

  333. Zash

    zinid: Is CBOR more compact than PER or the one I forget the name of that's ΓΌltra-compact bit packing?

  334. zinid

    Zash, I think there is comparison with DER in RFC 7049

  335. Zash

    I wrote a CBOR lib, so I think CBOR is nice. It can fit Lua tables natively, as opposed to JSON.

  336. zinid

    ah, BER!!!

  337. zinid

    https://tools.ietf.org/html/rfc7049#appendix-E

  338. Zash

    CBOR is pretty compact for something that is self-describing

  339. Zash

    BER & co is also self-describing

  340. zinid

    > 3. no schema description needed That's a moot advantage of CBOR, tbh

  341. Zash

    But I imagine schema-aware magic like https://en.wikipedia.org/wiki/Packed_Encoding_Rules#Packed_Encoding_Rules can be more compact

  342. zinid

    Zash, indeed, I think PER is more compact than BER

  343. Zash

    But then you you lose the self-describingness and need the schema to decode

  344. zinid

    schemas are awesome

  345. zinid

    ejabberd internally uses schemas only, no XML parsing

  346. Wiktor

    Yep, CBOR is nice, every time I see base64 used nowadays I cry a little as this is just a workaround for the inability to directly store binary...

  347. zinid

    I still think ASN.1 is the best! Except maybe Cobol'ish syntax, but I can live with that

  348. Zash

    Can haz CBOR encoding rules

  349. zinid

    Zash, ah, true

  350. pep.

    zinid, what kind of schemas do you use in ejabberd exactly?

  351. zinid

    pep., hand-made

  352. pep.

    I mean, what schemas, what tech, XML schemas?

  353. pep.

    schemas doing what

  354. zinid

    pep., no, erlang'ish, https://github.com/processone/xmpp/blob/master/specs/xmpp_codec.spec

  355. zinid

    pep., the schema tells the codec how to decode/encode XML into internal Erlang structures

  356. zinid

    so basically same stuff as ASN.1

  357. pep.

    interesting

  358. pep.

    That also builds parsers etc.?

  359. zinid

    really? Link Mauve is working on the same for Rust, I thought it's already well recognized approach

  360. zinid

    pep., yes

  361. Wiktor

    for the record stanza.io does something similar: https://github.com/legastero/stanza.io/blob/master/src/protocol/stanzas/bookmarks.js#L6-L28

  362. pep.

    zinid, yes, and I'm also working on it, but we have an XML parser in there

  363. pep.

    Well, we expect parsed structures already, we don't handle raw strings

  364. zinid

    pep., well, yes, an XML parser translates into internal XML Erlang representation, then the codec converts the representation into valid Erlang records (kinda structures in C)

  365. pep.

    Ok. I was confused for a sec

  366. zinid

    so it has two passes, which is of course not very efficient

  367. pep.

    But you gain a lot more with that anyway. And it's already way more efficient than doing the same in python, hands down..

  368. zinid

    pep., <message/> -> #xml{} -> #message{}

  369. pep.

    Okay

  370. zinid

    think of #foo{} as a C structure

  371. Wiktor

    too bad this can't be derived automatically from schema in xeps :)

  372. pep.

    Wiktor, indeed

  373. pep.

    zinid, yeah I get it

  374. zinid

    yes, so stanza.io guys, myself and Link Mauve are reinventing it from scratch

  375. pep.

    We do the same in xmpp-parsers anyway

  376. zinid

    what surprized me, is that ejabberd became faster with such approach

  377. Zash

    Wiktor: Was this because of the schemas being incomplete or XML schema itself not being capable of expressing things sufficiently?

  378. Link Mauve

    Completely unsurprised. ^^

  379. pep.

    Zash, both? I guess, mostly the latter

  380. Wiktor

    I remember schemas being incomplete when I tried parsing XSD -> TypeScript using a library (just a PoC), then there were issues with the library not supporting all constructs of XSD correctly

  381. zinid

    Link Mauve, maybe for you πŸ™‚ but I had doubts back then, I was thinking about slowing a bit

  382. zinid

    the problem with XML schemas is that you cannot build structures for your language from them

  383. zinid

    at least I don't know how to do that

  384. Wiktor

    Zash, e.g. https://github.com/spreeuwers/xsd2ts/issues/1

  385. zinid

    I'm not proud of inventing my own schema at all

  386. Link Mauve

    Yeah, me neither.

  387. Link Mauve

    But it was mandatory given xsd doesn’t help with internal structs.

  388. Wiktor

    well you can build structures but you need to write the xsd -> target language translator first, and that wouldn't be a weekend project, probably with a lot of bugs etc.

  389. zinid

    Wiktor, yeah

  390. Wiktor

    and then write that translator for every Nth language... etc. so making a small DSL now is less work it seems

  391. Ge0rG

    Aww, now I missed all the ordered JSON and DER discussion, so it's too late to come up with Canonical JSON <https://matrix.org/docs/spec/appendices.html#canonical-json>

  392. Maranda

    "Canonical" πŸ€”πŸ€”

  393. Maranda

    ?

  394. Maranda

    Huhuhu

  395. Maranda just opened that link

  396. ralphm

    also no floats

  397. pep.

    https://bouah.net/2019/02/slixmpp-gets-omemo-support/ !

  398. zinid

    pep.: you too 😁

  399. pep.

    I know right

  400. vanitasvitae

    pep.: great!

  401. pep.

    https://news.ycombinator.com/item?id=19247856 for HN clickers

  402. Guus

    Despite Alex's mail, I'm not getting a response from memberbot

  403. Guus

    is it online?

  404. pep.

    It was earlier

  405. Alex

    lemme check

  406. Guus

    ah, it started to respond now

  407. Alex

    just restarted the bot

  408. Guus

    it responded to my message that I sent 6 minutes earlier

  409. Guus

    unsure where that got stuck

  410. Guus

    well, I voted. πŸ™‚

  411. Guus

    Thanks Alex

  412. Alex

    (Y)