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