jdev - 2021-12-16

  1. contrapunctus is working towards either extending an old Common Lisp XMPP client library, or writing a new one

  2. thomaslewis


  3. contrapunctus

    thomaslewis: hey 🙃️

  4. contrapunctus

    Yes, that one.

  5. thomaslewis

    I was looking to update it but didn’t see a reason for what I’m (sometimes) working on.

  6. contrapunctus

    I tried connecting using it before, but I was informed that the way it authenticates is no longer supported by modern servers.

  7. thomaslewis

    Were you using the TLS connection function?

  8. contrapunctus

    Not sure if I was, so I tried again.... ```cl * (ql:quickload :cl-xmpp-tls) * (defvar *connection* (xmpp:connect-tls :hostname "616.pub")) <?xml version='1.0' ?><stream:stream to='616.pub' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'> UNHANDLED: #<xml-element stream:stream (6attr:0child:0data) {1007952EE3}> UNHANDLED: #<xml-element stream:features (0attr:1child:0data) {10043953C3}> <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/> UNHANDLED: #<xml-element proceed (1attr:0child:0data) {10044FA8B3}> ; Evaluation aborted on #<simple-error "Unexpected reply from TLS negotiation: ~a." {10044FBBA3}>. ``` ...task failed successfully?

  9. thomaslewis

    I think there’s an option/function for STARTTLS. I’d have to look at the code again.

  10. thomaslewis

    Those are just unhandled elements. The connection is created. I try to auth, though, and get an ssl-write syscall error.

  11. contrapunctus

    > https://harmonyapp.io/ > Protobuf is the new JSON https://github.com/harmony-development/protocol/issues/77

  12. contrapunctus

    lovetox: > i wonder how many chat apps humanity will build 42 😏️

  13. edhelas

    contrapunctus time to release XEP-xxxx: Protobuf over XMPP

  14. contrapunctus


  15. contrapunctus

    So, as someone who's never worked on XMPP anything before...how much work can an XMPP library take away from writing an XMPP client?

  16. Kev

    Quite a lot.

  17. edhelas

    About that much yes

  18. contrapunctus

    I mean...how many hours would it take a single developer to write a client (compliant with the advanced client compliance suite) starting with an XMPP library vs starting with a DNS, TLS, and XML library?

  19. contrapunctus

    (I say "hours" to avoid ambiguity, but perhaps "X days/months assuming Y hours a day" would be equally clear.)

  20. defanor

    That'd vary depending on one's familiarity with XMPP, the DNS/TLS/XML libraries (and whether alternative ones are to be supported), perhaps the used programming language, on whether you're going to implement additional/generic bits that aren't in the compliance suite, perhaps whether some WebRTC library is going to be used, or you'll deal with ICE/DTLS/SRTP/audio manually. I think it may be something in the vicinity of a couple of months working full-time to make a compliant library alone, but estimates are hard even for better defined projects. Could be a couple of years or decades as well.

  21. contrapunctus


  22. defanor

    I find that generally it works fine to use additional libraries at least for a prototype, then handle alternative libraries and/or make them optional. A lazy/delayed version of yak shaving.

  23. lovetox

    contrapunctus, i rewrote a library from scratch, and this is a big project. It depends very much on your familiarity with xmpp, and how experienced you are a software developer and there especially with library design. If you have no experience you probably write the library 3 times. If you have no experience with xmpp you often need to rewrite parts, because without knowing what specs there are, and knowing them indepth, its very hard to make good decisions about your library design.

  24. lovetox

    also if you dont have a good lib to begin with you spend very much time on the lib, very little on the client GUI, which means after months of work, you have nothing really to show, under the hood it may look good, your client UI still looks like shit and does not work half of the time

  25. contrapunctus

    lovetox: thanks for the insight 😶️

  26. lovetox

    another proble is you need to choose your dependencys wisely

  27. lovetox

    choosing the wrong xml lib, and you rewrite the lib again at a later point

  28. pulkomandy

    I'd say the XMPP world need better GUIs and not really more libraries or backend implementations, too?

  29. MattJ

    I think it would certainly be beneficial if there was more code reuse, yes :)

  30. MattJ

    I think we average too close to 1 library = 1 client

  31. Zash

    Perhaps that Official SDK wouldn't have been so bad

  32. moparisthebest

    I think there's a good reason for that really

  33. moparisthebest

    The way a library author structures the library often defines what kind of UI you can make etc, also most try to do... Too much? To the point that implementing a new XML element requires you jumping through so many hoops you give up and go with your own library

  34. Sam