jdev - 2022-02-06


  1. SouL has left
  2. larma has left
  3. abdullahi has left
  4. abdullahi has joined
  5. atomicwatch has left
  6. Alex has left
  7. atomicwatch has joined
  8. paul has left
  9. Vaulor has left
  10. selurvedu has left
  11. Sam I don't think I realized that all the major clients written in python seem to use different libraries. Debating whether it's most beneficial to test against nbxmpp (so that I effectively have integration tests with Gajim) or something else. What other popular clients is it most beneficial to ensure compatibility with?
  12. 9lakes has left
  13. Millesimus has left
  14. moparisthebest don't all non-trivial XMPP clients use their own libraries ?
  15. Sam It really does seem so
  16. Sam I guess I shouldn't have been suprised by this; I think I knew what all these used, it had never really hit me though.
  17. moparisthebest even if they don't start out that way, seems like they always end up that way...
  18. Sam I'd love to know why that is; I wonder if it's something about the protocol or something about the size of the community that uses it, or the type of people, etc.
  19. Millesimus has joined
  20. jubalh has left
  21. wurstsalat has left
  22. marc has left
  23. marc has joined
  24. moparisthebest I only have conjecture... almost all XMPP libraries seem massively over-engineered to the point that you can only use them in a very specific way
  25. moparisthebest making them unsuitable to use in a real non-trivial client with even slightly different needs
  26. Sam Oh, how so? I haven't found that to be the case with aioxmpp or slixmpp which are pretty much the only two I've used outside of my own thing or "libraries" that are built into clients and so are obviously tightly coupled
  27. moparisthebest a common pattern I've seen is needing to "register" another "class"+deserializer+serializer for every even slightly different stanza type that might exist
  28. Sam As opposed to just being handed a generic representation of the XML, you mean?
  29. moparisthebest because the library insists on being XML library independent, and/or pretending stanzas are objects and not XML, that kind of thing
  30. moparisthebest well, at least having that option yea
  31. Sam I dunno, it seems like you'd have to do that otherwise you'd have to dig into some arbitrary deeply nested thing and figure out what it is every time. Registering a callback for "normal message with body" or something seems like it would make the users life easier.
  32. goffi has left
  33. moparisthebest right, it's always "well why would a user of a library ever need to do this? it would be so much easier to do it the-way-i-have-in-my-head" and that never ends up matching with someone's GUI library or whatever
  34. Sam Now that you say that, I did design Mellium specifically to allow "just give me a stream of XML and let me do things with it" too, specifically so that you could write your own router/handler thing. But it doesn't seem unreasonable to just require callback.s
  35. moparisthebest yea, I really think the solution is layers, where the library user gets to pick which layers they want
  36. moparisthebest 1. connect TLS 2. raw stream 3. separate xml stanzas 4. objects or whatever 5. some type of state management
  37. moparisthebest the XML libs I've seen don't let you go lower than 4 ever, and normally not 5
  38. Sam That's exactly how Mellium works, but FWIW it doesn't always end well either. I can't think what off the top of my head, but I know we've had a few things where we want the connection dialer to know about TLS or something, but they're separate and it's a problem.
  39. moparisthebest it's certainly not an easy solution or it'd already be solved hehe
  40. Sam huh, even the javascript clients seem to use different libraries. Pretty sure this client and this other library are maintained by the same person and the client does its own thing and doesn't use the library (or I'm just misunderstanding JavaScripts many config files, which is more likely)
  41. moparisthebest the 3 problems of computer science, naming, cache invalidation, off by one errors, and the perfectly designed universally used XMPP library
  42. Sam Anyways, turns out it's harder than I expected to pick what the best thing to test compatibility with is. Also the situation in terms of re-usability is more dire than I thought. I am not sure if there are any useful conclusions to draw here or anything useful to do.
  43. moparisthebest unfortunately I think the conclusion is not what you want to hear
  44. moparisthebest it's "don't bother writing a generic XMPP library, no one will use it for anything non-trivial"
  45. moparisthebest useful for a sendxmpp clone or a bot, not for a client though
  46. qwestion has joined
  47. Sam I'm not sure that's the conclusion; I think the conclusion is "do write a generic XMPP library if one doesn't already exist in your ecosystem of choice, but if one does exist use and improve it in your client instead of writing a builtin tightly coupled one"
  48. moparisthebest could be, but then you'll end up maintaining it, that seems to be what happened with nbxmpp and gajim
  49. Sam If you follow the advise then hopefully other clients show up to help you maintain it though, even if it becomes abandoned and one of the client devs has to pick it up.
  50. Sam But yah, I really don't know how to encourage that kind of participation.
  51. qwestion has left
  52. qwestion has joined
  53. Sam Maybe it's a problem of discoverability too. I probably wouldn't have started Mellium if I realized there was another library already in Go (not counting the one that most people use which is little more than a Google Talk bot framework, you can't use it for serious work). I looked and never found the FluxxIO one and it was a few years before I realized that it had already been a thing.
  54. debacle has left
  55. Zash has left
  56. marc0s has left
  57. marc0s has joined
  58. sonny has left
  59. sonny has joined
  60. moparisthebest I really think it's just a GUI thing
  61. moparisthebest writing a GUI XMPP client is 9999x harder than writing a server or a library or a command line sendxmpp
  62. moparisthebest and the assumptions all of us who avoid GUI code like the plague make are just wrong when it comes to writing GUI code
  63. Sam I'm not sure that's true, but I definitely don't write a lot of GUI code, so it's quit possible that I'm doing exactly what you're describing. But I don't see why it would be any easier or harder to write Gui stuff with slixmpp vs. nbxmpp vs. aioxmpp, for example (other than difficulties that would apply to anything due to one or the other library generally being harder or easier to use for various reasons, but I don't see what would be specific to GUI stuff)
  64. jgart has left
  65. moparisthebest Sam, have you ever written GUI code and if so what kind?
  66. moparisthebest I have, but long ago, and Java Swing, and I still have nightmares haha
  67. moparisthebest I'm not counting html/javascript I guess...
  68. Sam Oh yah, I've done a decent bit of GTK, some Android stuff, a bit of web stuff, some immediate mode custom GUIs, some TUI stuff. I don't like it much, and avoid it, but I have done it.
  69. Sam I vaguely remember being forced to memorize various Swing APIs in some terrible intro to CS class in college, but I don't think I ever wrote anything with it after that.
  70. moparisthebest oh yea I've done some old android GUI too but also remember it being terrible
  71. Sam Yah, it's pretty bad.
  72. Sam I don't see how a specific library would necessarily be better or worse with it though.
  73. lovetox has left
  74. xnamed has joined
  75. qy Android is nicer now. Try androidx compose
  76. qy No need even for xml
  77. lovetox has joined
  78. jgart has joined
  79. moparisthebest but I like XML !
  80. qy Then you should try xmp-wait
  81. qy Xml i think is the wrong form for android uis, but meh, it does work
  82. qy Compose really is aeons better though, no wonder google absorbed it
  83. dezant has left
  84. Vaulor has joined
  85. marc0s has left
  86. marc0s has joined
  87. dezant has joined
  88. SouL has joined
  89. al has joined
  90. huhn has left
  91. Apollo has left
  92. Millesimus has left
  93. xnamed has left
  94. mac has joined
  95. Apollo has joined
  96. msavoritias has joined
  97. raghavgururajan has joined
  98. raghavgururajan has left
  99. Yagizа has joined
  100. raghavgururajan has joined
  101. mac has left
  102. raghavgururajan has left
  103. Yagizа has left
  104. Yagizа has joined
  105. jgart has left
  106. cedar has left
  107. Millesimus has joined
  108. cedar has joined
  109. atomicwatch has left
  110. atomicwatch has joined
  111. rafasaurus has left
  112. SouL has left
  113. SouL has joined
  114. mac has joined
  115. rafasaurus has joined
  116. Stefan Sam: I have been worked on a generic framework for XMPP. The biggest problem for me: it's not such easy. 😬 Lot of things you have to keep in mind to keep it reusable and flexible.
  117. goffi has joined
  118. tsk has left
  119. tsk has joined
  120. Yagizа has left
  121. Yagizа has joined
  122. qwestion has left
  123. al has left
  124. dezant has left
  125. jubalh has joined
  126. emus has joined
  127. atomicwatch has left
  128. paul has joined
  129. Alex has joined
  130. abdullahi has left
  131. abdullahi has joined
  132. pulkomandy has left
  133. pulkomandy has joined
  134. marmistrz has joined
  135. goffi has left
  136. goffi has joined
  137. goffi has left
  138. pasdesushi has joined
  139. marmistrz has left
  140. abdullahi has left
  141. goffi has joined
  142. rafasaurus has left
  143. rafasaurus has joined
  144. mac has left
  145. COM8 has joined
  146. COM8 has left
  147. COM8 has joined
  148. COM8 has left
  149. selurvedu has joined
  150. goffi has left
  151. pulkomandy has left
  152. pulkomandy has joined
  153. nephele has joined
  154. 9lakes has joined
  155. nephele has left
  156. wurstsalat has joined
  157. mac has joined
  158. goffi has joined
  159. abdullahi has joined
  160. abdullahi has left
  161. debacle has joined
  162. larma has joined
  163. TheCoffeMaker has left
  164. TheCoffeMaker has joined
  165. marc0s has left
  166. marc0s has joined
  167. marc0s has left
  168. marc0s has joined
  169. Syndace has left
  170. Syndace has joined
  171. marc0s has left
  172. marc0s has joined
  173. Yagizа has left
  174. marc0s has left
  175. marc0s has joined
  176. Laura has left
  177. Laura has joined
  178. marc0s has left
  179. marc0s has joined
  180. PapaTutuWawa has joined
  181. marc0s has left
  182. atomicwatch has joined
  183. marc0s has joined
  184. marc0s has left
  185. marc0s has joined
  186. selurvedu has left
  187. selurvedu has joined
  188. selurvedu has left
  189. selurvedu has joined
  190. Yagizа has joined
  191. Syndace has left
  192. Syndace has joined
  193. abdullahi has joined
  194. pulkomandy has left
  195. Mjolnir Archon has left
  196. Maranda has left
  197. pulkomandy has joined
  198. abdullahi has left
  199. rafasaurus has left
  200. abdullahi has joined
  201. Mjolnir Archon has joined
  202. Maranda has joined
  203. rafasaurus has joined
  204. homebeach has left
  205. Matrix Traveler (bot) has left
  206. Matrix Traveler (bot) has joined
  207. homebeach has joined
  208. nephele has joined
  209. debacle has left
  210. marc0s has left
  211. marc0s has joined
  212. goffi has left
  213. goffi has joined
  214. suohua has joined
  215. nephele has left
  216. nephele has joined
  217. syrupthinker has joined
  218. syrupthinker has left
  219. syrupthinker has joined
  220. rafasaurus has left
  221. suohua has left
  222. nephele has left
  223. nephele has joined
  224. goffi has left
  225. rafasaurus has joined
  226. nephele has left
  227. nephele has joined
  228. nephele has left
  229. nephele has joined
  230. nephele has left
  231. tsk has left
  232. huhn has joined
  233. tsk has joined
  234. huhn has left
  235. huhn has joined
  236. cedar has left
  237. Zash has joined
  238. nephele has joined
  239. cedar has joined
  240. marc0s has left
  241. marc0s has joined
  242. nephele has left
  243. mac has left
  244. Millesimus has left
  245. Millesimus has joined
  246. marc0s has left
  247. marc0s has joined
  248. nephele has joined
  249. xnamed has joined
  250. nephele has left
  251. nephele has joined
  252. nephele has left
  253. nephele has joined
  254. Apollo has left
  255. nephele has left
  256. moparisthebest has left
  257. moparisthebest has joined
  258. goffi has joined
  259. inky has left
  260. atomicwatch has left
  261. atomicwatch has joined
  262. TheCoffeMaker has left
  263. xecks has left
  264. syrupthinker has left
  265. nephele has joined
  266. nephele has left
  267. marmistrz has joined
  268. marmistrz has left
  269. nephele has joined
  270. nephele has left
  271. mac has joined
  272. Zash has left
  273. Zash has joined
  274. TheCoffeMaker has joined
  275. suohua has joined
  276. suohua has left
  277. suohua has joined
  278. xnamed has left
  279. mac has left
  280. mac has joined
  281. xnamed has joined
  282. mac has left
  283. mac has joined
  284. sonny has left
  285. TheCoffeMaker has left
  286. xnamed has left
  287. goffi has left
  288. goffi has joined
  289. me9 has joined
  290. J Marinaro has left
  291. J Marinaro has joined
  292. inky has joined
  293. TheCoffeMaker has joined
  294. debacle has joined
  295. larma has left
  296. qwestion has joined
  297. serge90 has left
  298. serge90 has joined
  299. mac has left
  300. mac has joined
  301. suohua has left
  302. xnamed has joined
  303. goffi has left
  304. marc0s has left
  305. marc0s has joined
  306. xecks has joined
  307. nephele has joined
  308. nephele has left
  309. goffi has joined
  310. marc0s has left
  311. marc0s has joined
  312. Apollo has joined
  313. Millesimus has left
  314. sonny has joined
  315. Apollo has left
  316. Millesimus has joined
  317. PapaTutuWawa has left
  318. goffi has left
  319. jgart has joined
  320. Սամուէլ has joined
  321. Yagizа has left
  322. larma has joined
  323. marmistrz has joined
  324. mac has left
  325. Սամուէլ has left
  326. Millesimus has left
  327. Apollo has joined
  328. Millesimus has joined
  329. rubi has left
  330. rubi has joined
  331. marc0s has left
  332. marc0s has joined
  333. COM8 has joined
  334. COM8 has left
  335. selurvedu has left
  336. selurvedu has joined
  337. marmistrz has left
  338. mac has joined
  339. larma has left
  340. Yagizа has joined
  341. PapaTutuWawa has joined
  342. atomicwatch has left
  343. Millesimus has left
  344. qwestion has left
  345. atomicwatch has joined
  346. Millesimus has joined
  347. qwestion has joined
  348. qwestion has left
  349. qwestion has joined
  350. qwestion has left
  351. qwestion has joined
  352. qwestion has left
  353. qwestion has joined
  354. qwestion has left
  355. qwestion has joined
  356. qwestion has left
  357. qwestion has joined
  358. qwestion has left
  359. qwestion has joined
  360. qwestion has left
  361. me9 has left
  362. qwestion has joined
  363. qwestion has left
  364. qwestion has joined
  365. qwestion has left
  366. qwestion has joined
  367. qwestion has left
  368. qwestion has joined
  369. qwestion has left
  370. qwestion has joined
  371. qwestion has left
  372. qwestion has joined
  373. qwestion has left
  374. qwestion has joined
  375. qwestion has left
  376. qwestion has joined
  377. qwestion has left
  378. qwestion has joined
  379. qwestion has left
  380. qwestion has joined
  381. qwestion has left
  382. qwestion has joined
  383. qwestion has left
  384. qwestion has joined
  385. qwestion has left
  386. qwestion has joined
  387. Zash It's almost like there are two kinds of libraries: Those used by exactly one client, and those used by random stuff but no clients.
  388. qwestion has left
  389. qwestion has joined
  390. moparisthebest Zash: exactly what it seems like yes
  391. Zash Smack might be the exception?
  392. abdullahi has left
  393. Zash Unless whatever Yaxim uses counts as its own library by now 🙂
  394. jubalh has left
  395. qy Zash: libstrophe?
  396. Zash Which one? Which clients?
  397. mathieui Zash, slixmpp begs to differ :p
  398. Zash :doubt:
  399. me9 has joined
  400. Zash Make directed graph plz.
  401. Syndace has left
  402. Syndace has joined
  403. mac has left
  404. COM8 has joined
  405. COM8 has left
  406. mac has joined
  407. qy Libstrophe used by profanity, and my weechat client, as well as i think at least one other?
  408. qy Also TIL xep 174
  409. qy Neat
  410. nephele has joined
  411. nephele has left
  412. nephele has joined
  413. thomaslewis has joined
  414. nephele has left
  415. mac has left
  416. nephele has joined
  417. J Marinaro has left
  418. J Marinaro has joined
  419. nephele has left
  420. nephele has joined
  421. thomaslewis has left
  422. syrupthinker has joined
  423. larma has joined
  424. qy has left
  425. nephele has left
  426. nephele has joined
  427. qy has joined
  428. thomaslewis has joined
  429. thomaslewis has left
  430. thomaslewis has joined
  431. nephele has left
  432. nephele has joined
  433. inky has left
  434. alacer has joined
  435. thomaslewis has left
  436. Laura has left
  437. alacer has left
  438. me9 has left
  439. nephele has left
  440. nephele has joined
  441. Laura has joined
  442. J Marinaro has left
  443. Millesimus has left
  444. J Marinaro has joined
  445. nephele has left
  446. qwestion has left
  447. J Marinaro has left
  448. J Marinaro has joined
  449. xnamed has left
  450. marc0s has left
  451. marc0s has joined
  452. larma has left
  453. larma has joined
  454. Millesimus has joined
  455. thomaslewis has joined
  456. mac has joined
  457. thomaslewis has left
  458. xnamed has joined
  459. inky has joined
  460. selurvedu has left
  461. me9 has joined
  462. Apollo has left
  463. msavoritias has left
  464. me9 has left
  465. al has joined
  466. larma has left
  467. larma has joined
  468. Yagizа has left
  469. rafasaurus has left
  470. rafasaurus has joined
  471. Apollo has joined
  472. me9 has joined
  473. goffi has joined
  474. larma has left
  475. SouL has left
  476. Sam has left
  477. Sam has joined
  478. al has left
  479. PapaTutuWawa has left
  480. atomicwatch has left
  481. emus has left
  482. emus has joined
  483. marc0s has left
  484. marc0s has joined
  485. emus has left
  486. emus has joined
  487. goffi has left
  488. Laura has left
  489. Laura has joined
  490. Zash has left
  491. Zash has joined
  492. larma has joined
  493. Millesimus has left
  494. pasdesushi has left
  495. wurstsalat has left
  496. thomaslewis has joined
  497. thomaslewis has left
  498. xnamed has left
  499. Millesimus has joined
  500. xnamed has joined
  501. Millesimus has left
  502. marc0s has left
  503. marc0s has joined
  504. syrupthinker has left
  505. emus has left
  506. Millesimus has joined