jdev - 2020-10-05


  1. sonny has left
  2. sonny has joined
  3. alex-a-soto has left
  4. alex-a-soto has joined
  5. sonny has left
  6. sonny has joined
  7. sonny has left
  8. sonny has joined
  9. sonny has left
  10. sonny has joined
  11. marmistrz has left
  12. marmistrz has joined
  13. marmistrz has left
  14. marmistrz has joined
  15. Neustradamus has left
  16. sonny has left
  17. sonny has joined
  18. waqas has left
  19. moparisthebest has left
  20. moparisthebest has joined
  21. sonny has left
  22. sonny has joined
  23. sonny has left
  24. sonny has joined
  25. mac has joined
  26. kikuchiyo has left
  27. kikuchiyo has joined
  28. Yagizа has joined
  29. mac has left
  30. sonny has left
  31. sonny has joined
  32. sonny has left
  33. sonny has joined
  34. sonny has left
  35. sonny has joined
  36. Holger has left
  37. sonny has left
  38. sonny has joined
  39. sonny has left
  40. sonny has joined
  41. sonny has left
  42. sonny has joined
  43. sonny has left
  44. sonny has joined
  45. floretta has left
  46. sonny has left
  47. Alex has joined
  48. sonny has joined
  49. sonny has left
  50. sonny has joined
  51. Holger has joined
  52. sonny has left
  53. sonny has joined
  54. sonny has left
  55. sonny has joined
  56. sonny has left
  57. sonny has joined
  58. pulkomandy has left
  59. pulkomandy has joined
  60. sonny has left
  61. sonny has joined
  62. sonny has left
  63. sonny has joined
  64. sonny has left
  65. sonny has joined
  66. sonny has left
  67. sonny has joined
  68. debacle has joined
  69. DebXWoody has joined
  70. test2 has joined
  71. test2 has left
  72. test2 has joined
  73. kikuchiyo has left
  74. kikuchiyo has joined
  75. test2 has left
  76. o2 has left
  77. floretta has joined
  78. debacle has left
  79. jonnj has left
  80. jonnj has joined
  81. larma has joined
  82. kikuchiyo has left
  83. debacle has joined
  84. kikuchiyo has joined
  85. kikuchiyo has left
  86. kikuchiyo has joined
  87. marmistrz has left
  88. marmistrz has joined
  89. chr has joined
  90. chr hi guys, can any one help me on best xmpp client to use in react native application?
  91. chr has left
  92. chr has joined
  93. lovetox has joined
  94. kikuchiyo has left
  95. Ge0rG chr: there is no ready-made client with UI, but you can use xmpp.js
  96. kikuchiyo has joined
  97. bala has joined
  98. bala hi can we add xmpp to laravel 5+?
  99. bala or we want to use any nodejs and react js only?
  100. marmistrz I might've asked, is there anything on par with xmpp.js for typescript?
  101. Ge0rG marmistrz: I'm not aware.
  102. Zash https://github.com/legastero/stanza mayhaps
  103. Beherit has left
  104. edhelas bala to Laravel ?
  105. Beherit has joined
  106. kikuchiyo has left
  107. goffi has joined
  108. sonny (author of xmpp.js here) xmpp.js has the best RN support AFAIK but is very low level compared to stanza https://github.com/legastero/stanza/blob/master/docs/React_Native.md
  109. sonny if you're not that familiar with xmpp or need builtin TypeScript I'd recommend stanza
  110. bala has left
  111. sonny some people have shared their TypeScript definition for xmpp.js https://github.com/xmppjs/xmpp.js/issues/542
  112. lovetox hm is just a localpart a valid JID?
  113. lovetox hm my parsing logic says JID("asd")
  114. lovetox is a valid jid
  115. lovetox what JID parsing rule should prevent that?
  116. Zash lovetox: not
  117. lovetox ah i think its recognized as domainpart
  118. lovetox and IDN2008 allows that?
  119. sonny a domain is a valid jid
  120. lovetox hm yes seems its a valid domain
  121. lovetox yes is know
  122. lovetox but i didnt think "asd" is a valid domain
  123. lovetox seems i was wrong
  124. jonas’ why wouldn’t it be?
  125. lovetox because a rule exists that says otherwise
  126. Ge0rG with the ICANN going wild with gTLDs, you can't sensibly restrict what a domain name is.
  127. Ge0rG Also you can have local hostnames without a TLD
  128. Ge0rG and things like xmpp.server.local
  129. Zash or localhost
  130. Ge0rG and IP addresses.
  131. Ge0rG IP addresses are legitimate XMPP domains.
  132. flow lovetox> but i didnt think "asd" is a valid domain it is a valid DNS name
  133. flow it's mapped to "asd." fwiw
  134. bala has joined
  135. bala yes edhelas
  136. bala laravel
  137. edhelas bala laravel is mostly an async framework, good for rest and stuff like that
  138. edhelas if you want to do XMPP stuff in PHP there's not a lot of choices afaik
  139. bala okay edhelas thank you very much.
  140. edhelas where do you want your XMPP connection to sit ? server side or browser side ?
  141. kikuchiyo has joined
  142. kikuchiyo has left
  143. bala edhelas need both
  144. edhelas 🤔
  145. bala We need to integrate chat feature on our mobile app.
  146. bala How can we get started with XMPP?
  147. edhelas what is your mobile app architecture ?
  148. bala We are going to have iOS and android apps. What do you mean by architecture in specific?
  149. edhelas well, so two native apps, with a REST backend ?
  150. bala Yes,Its a Rest backend
  151. bala the app is an enterprise one, with different types of users.
  152. bala We need to enable chat among users.
  153. edhelas and the android app and ios app are writen in Java/Kotlin/Swift/ObjectiveC ?
  154. bala Yes, exactly. Java for Android and Swift for iOS
  155. edhelas well, then I advise you to use native Java and Swift XMPP libraries then :)
  156. edhelas you'll have to figure out how to create accounts/authenticate them in sync with your REST accounts ones
  157. alex-a-soto has left
  158. alex-a-soto has joined
  159. bala Well.We need to integrate XMPP on our backend, right?
  160. edhelas why ?
  161. bala Well.We need to integrate XMPP on our backend, right?
  162. edhelas is you backend connecting with other XMPP servers ?
  163. edhelas what is the goal of XMPP here for you ?
  164. bala nope. We need an XMPP server which can be used for iOS and Android apps, right
  165. bala For user creation, maintaining chat history and all
  166. bala how can we configure our XMPP server?
  167. waqas has joined
  168. edhelas so this xmpp server will be standalone, and it's only for those app users to communicate together
  169. edhelas then you setup the XMPP server next to your REST app, with ejabberd you can create/configure accounts using their internal REST API directly https://docs.ejabberd.im/developer/ejabberd-api/
  170. edhelas and you add a native XMPP lib in your mobile apps to connect to those accounts
  171. edhelas the only big thing I see is to figure out how to authenticate properly using server generated accounts
  172. bala okay thank you very much edhelas
  173. sonny on the backend, you can use ejabberd with https://github.com/processone/ejabberd-contrib/tree/master/ejabberd_auth_http or an other xmpp server supporting some kind of similar integration
  174. alex-a-soto has left
  175. edhelas sonny 👍
  176. alex-a-soto has joined
  177. sonny edhelas 👍
  178. DebXWoody has left
  179. DebXWoody has joined
  180. kikuchiyo has joined
  181. kikuchiyo has left
  182. kikuchiyo has joined
  183. kikuchiyo has left
  184. DebXWoody has left
  185. kikuchiyo has joined
  186. kikuchiyo has left
  187. Yagizа has left
  188. chr has left
  189. Guus has left
  190. Guus has joined
  191. larma has left
  192. DebXWoody has joined
  193. lovetox so domain.org is a bare jid?
  194. jonas’ lovetox, yes
  195. jonas’ domain.org/foo is a full-jid
  196. lovetox ok do we have a name for localpart@domainpart ?
  197. jonas’ that’s also a bare jid
  198. lovetox yeah, but library wise, if i want to test for localpart@domainpart, what would i call that method
  199. lovetox is_bare_with_domain sounds a bit long
  200. jonas’ has_local_part?
  201. jonas’ (what do you need that test for, anyway?)
  202. Zash And http://www.example.com/ is a horror (host="xmpp:",resource="/www.example.com/")
  203. lovetox that does not exclude that it has a resource part..
  204. Zash And http://www.example.com/ is a horror (host="http:",resource="/www.example.com/")
  205. lovetox sometimes for example for bookmarks
  206. jonas’ what do bookmarks have to do with that?
  207. lovetox it makes no sense if a jid as a resource, or is only domainpart
  208. lovetox a bookmark should be localpart@domainpart
  209. jonas’ why?
  210. lovetox because thats how it is, only domain can not be a room
  211. lovetox and resource describes a certain resource
  212. jonas’ that’s wrong
  213. jonas’ a domain can be a room
  214. Zash XEP-0045 forbids it IIRC?
  215. lovetox Each room is identified as a "room JID" <room@service>
  216. jonas’ either way, I don’t think it’s the job of clients to enforce that, unless it makes things more complicated to *not* enforce it
  217. jonas’ and I think in this case, it might be more complicated to enforce it that not enforcing it
  218. lovetox as i said i was talking from a library standpoint
  219. lovetox i just wanted a name for a property that reflects that this
  220. jonas’ I was curious and asking because I haven’t had use for such a property yet
  221. jonas’ I think I’d just use jid.is_bare and not jid.has_localpart or something like that
  222. jonas’ it seems like a rare use case
  223. Zash is_bare := not has_resource ?
  224. lovetox yeah, thats what i was using, just was curious if there is a technical name for that
  225. Zash or .. :-?
  226. lovetox but it seem it is not
  227. jonas’ Zash, yes
  228. flow lovetox, here are the terms that jxmpp uses: https://github.com/igniterealtime/jxmpp#jxmpp-jid beware, you may not like them
  229. flow http://jxmpp.org/releases/1.0.1/javadoc/org/jxmpp/jid/Jid.html has some examples
  230. Wojtek has joined
  231. lovetox thanks flow
  232. pep. jid-rs uses only FullJid and BareJid (and Jid { Full(FullJid), Bare(BareJid) })
  233. BRAYAN LUIS has joined
  234. BRAYAN LUIS has left
  235. flow pep., then your API methods can't express that they require a full jid with localpart as argument, right?
  236. pep. Not for the moment no, because we haven't found a place where it's necessary yet
  237. pep. But also the xmpp library on top isn't really much used..
  238. flow > because we haven't found a place where it's necessary yet MUC room addresses?
  239. pep. I don't think it's necessary there
  240. pep. I don't really want to enforce this weird restriction
  241. flow (that was bascially one the motivation behind jxmpp's jid types)
  242. flow (that was bascially one major motivation behind jxmpp's jid types)
  243. flow which weird restriction?
  244. flow bbl
  245. pep. flow, I'm not sure why there should be a MUC component on top of a room, for example. You can disco the room itself and be just fine
  246. pep. (that is, not sure why you'd require a localpart to a room)
  247. jonas’ I also think that semantically, there is little difference between foo@bar and bar
  248. jonas’ not enough to enforce it on the type system level anyways
  249. pep. yeah
  250. pep. When I got xmpp.rs I wanted to have both chat@xmpp.rs (MUC room) and bot@xmpp.rs (user account, and other accounts), because it's cool and I don't see why I shouldn't be allowed to. And while it's technically possible I've seen pain around chat@dino.im and.. :x
  251. pep. Technically it's only really an issue for me operator. there's no issue as long as I control what gets into this namespace (xmpp.rs)
  252. pep. Note that this is not exactly the issue described above, but it's the kind of things that people are afraid to do because it doesn't fit exactly what the protocol mandates for weird reasons
  253. jonas’ well, there is a reason why that doesn’t work
  254. jonas’ or why it’s painful
  255. jonas’ it boils down to "how should clients discover rooms"
  256. jonas’ the written-down protocol is that it queries via disco#items and disco#info until it finds a MUC service associated with a domain, and then it uses disco#items to find rooms
  257. jonas’ subdomains are cheap, hence there’s no problem with that
  258. pep. "it boils down to "how should clients discover rooms" < that feels like UX straight from the 90s
  259. pep. with /list
  260. jonas’ all of MUC is UX from the 90ies
  261. pep. Yeah, so by nowadays' standards some things are weird :)
  262. jonas’ fair enough
  263. pep. It's not like xmpp.rs was going to host real users anyway, mostly utilities or contributors. You don't end up on chat@xmpp.rs because you found it with /list :p
  264. pep. Same for dino.im really
  265. jonas’ "not real users […], mostly […] contributors"
  266. pep. Welll, only a few select, not like, users you want to give proper care to because they don't understand anything to the protocol :)
  267. Zash Will clients refuse to talk to user@host if host advertises the muc feature?
  268. pep. Welll, only a few select, not like, users you want to give proper care to because they don't understand anything about the protocol :)
  269. pep. jonas’, we all know developers are not real users
  270. jonas’ Zash, I hear that poezio does strange things w.r.t. muc feature
  271. pep. Look at their clients
  272. jonas’ pep., hah
  273. pep. hmm I think the thing has been fixed in poezio(?)
  274. pep. Ah wait, no I don't remember anything about this
  275. pep. There was stuff related to carbons and muc lately but that's about it
  276. pep. (because detecting PMs is meh)
  277. jonas’ yeah, that was based on disco#info on the domain (incorrectly)
  278. pep. yes
  279. pep. Exactly this :)
  280. pep. The one place I'd see requiring a MUC service is when a client wants to create new rooms
  281. Wojtek quick question - should we be concerned with lenght of the stanza id? from what I gather schema doesn't limit it...
  282. pep. I think it's profanity that has immensely long IDs. Some kind of HMAC iirc
  283. jonas’ Wojtek, there is no specified limit beyond the limit of th eoverall stanza
  284. jonas’ I suggest to limit it to 1023 utf-8 bytes (or codepoints, if that’s easier for you) if you have to place a limit
  285. jonas’ it’s the same limit as resource and localpart have
  286. Wojtek yeah, but that's not specified, and someone may decide well I wannna have longer IDs. would have been nice to have this in the specs IMHO
  287. Wojtek > it’s the same limit as resource and localpart have yeah, that seems reasonable
  288. pep. Which spec?
  289. pep. 6120?
  290. jonas’ Wojtek, yeah, it would be nice to have a limit written down in '6120
  291. Wojtek yup
  292. o2 has joined
  293. Yagizа has joined
  294. lovetox has left
  295. sonny has left
  296. sonny has joined
  297. lovetox has joined
  298. marmistrz > https://github.com/legastero/stanza mayhaps thanks!
  299. debacle has left
  300. lovetox has left
  301. lovetox has joined
  302. xecks has left
  303. xecks has joined
  304. Wojtek has left
  305. shachontal has joined
  306. sonny has left
  307. sonny has joined
  308. lovetox has left
  309. Wojtek has joined
  310. debacle has joined
  311. flow > When I got xmpp.rs I wanted to have both chat@xmpp.rs (MUC room) and bot@xmpp.rs (user account, and other accounts) I also like that, but I don't see how this is related to a MUC address being a bare jid with a localpart
  312. flow Wojtek> yeah, but that's not specified, and someone may decide well I wannna have longer IDs. Then you should be worried about pub sub item IDs and (pubsub/xep30/…) node name length too
  313. Zash Just say 1023 octets
  314. Zash like JID parts
  315. flow Zash, note sure that simply saying it helps if we don't specify it
  316. Zash Someone once mentioned this issue wrt 'node' in disco and/or pubsub
  317. flow we could start with recommending size limits for xep359 IDs, pubsub item IDs, and node names
  318. flow we could, at least, start with recommending size limits for xep359 IDs, pubsub item IDs, and node names
  319. Zash and lack of normalization specs
  320. flow a lack of unicode normalization specs?
  321. Zash yes
  322. flow aren't there like, a dozen of them
  323. kikuchiyo has joined
  324. lovetox has joined
  325. Zash I mean, for stanza ids, nodes etc
  326. kikuchiyo has left
  327. Beherit has left
  328. flow apply NFC and ensure that length in codepoints is less than X?
  329. kikuchiyo has joined
  330. kikuchiyo has left
  331. Zash for example
  332. flow leaves the question what X sould be
  333. Zash 1023 octets!
  334. flow is there an argument for less?
  335. kikuchiyo has joined
  336. flow where do 1023 come from anyway?
  337. kikuchiyo has left
  338. Zash The parts of a JID
  339. flow (i know it's in the jid rfc, but where does that come from?)
  340. Zash 🤷
  341. Zash historical raisins?
  342. flow so cargo cult at its finest
  343. kikuchiyo has joined
  344. Zash I prefer to call it Consistency
  345. kikuchiyo has left
  346. Zash You could also argue that the limit should be 37
  347. flow sure, and if nobody comes up with an argument that the limit should be different, i'd also go with conistency
  348. Zash which iirc is the size of the textual form of an UUID
  349. flow but I could imagine that database people may have a strong feeling about the length of the primary key type
  350. Zash In the case of MySQL it's 20
  351. kikuchiyo has joined
  352. kikuchiyo has left
  353. Zash Or 700 something.
  354. flow 37 seems to low, at least for node names and item IDs, as these are sometimes used to carry a little bit of text with them
  355. Zash are node names meant to be human-readable?
  356. Beherit has joined
  357. Zash If so then fun concerns apply
  358. flow duno, but there where at least two people who worked on a filesystem in pubsub
  359. flow so it does not appear to be far fetched that node names are user entered strings
  360. flow in some use-cases
  361. kikuchiyo has joined
  362. flow and we don't want to be the DOS of instant messaging
  363. flow cmon, no one?
  364. Zash Filenames on Linux are limited to 256 octets
  365. Zash ... and can contain arbitrary binary except NUL and '/'
  366. bala has left
  367. sonny has left
  368. sonny has joined
  369. Zash Or just ignore the whole thing and if you need to store arbitrary-sized IDs in your database you jam them trough a hash function
  370. flow sure, but meh
  371. sonny has left
  372. sonny has joined
  373. Yagizа has left
  374. larma has joined
  375. jonas’ effectively what jabbercat does
  376. jonas’ because of the aforementioned limit
  377. sonny has left
  378. sonny has joined
  379. test2 has joined
  380. larma has left
  381. larma has joined
  382. DebXWoody has left
  383. sonny has left
  384. mac has joined
  385. shachontal has left
  386. mac has left
  387. shachontal has joined
  388. mac has joined
  389. lovetox has left
  390. sonny has joined
  391. mac has left
  392. kikuchiyo has left
  393. sonny has left
  394. kikuchiyo has joined
  395. sonny has joined
  396. sonny has left
  397. sonny has joined
  398. shachontal has left
  399. sonny has left
  400. kikuchiyo has left
  401. kikuchiyo has joined
  402. Wojtek has left
  403. sonny has joined
  404. sonny has left
  405. paul has left
  406. goffi has left
  407. sonny has joined
  408. sonny has left
  409. SouL has left
  410. paul has joined
  411. test2 has left
  412. debacle has left
  413. kikuchiyo has left
  414. kikuchiyo has joined
  415. sonny has joined