contrapunctusis working towards either extending an old Common Lisp XMPP client library, or writing a new one
thomaslewis
cl-xmpp?
contrapunctus
thomaslewis: hey 🙃️
contrapunctus
Yes, that one.
thomaslewis
I was looking to update it but didn’t see a reason for what I’m (sometimes) working on.
contrapunctus
I tried connecting using it before, but I was informed that the way it authenticates is no longer supported by modern servers.
thomaslewis
Were you using the TLS connection function?
kikuchiyohas joined
Kevhas left
Kevhas joined
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?
thomaslewis
I think there’s an option/function for STARTTLS. I’d have to look at the code again.
kikuchiyohas left
me9has joined
thomaslewis
Those are just unhandled elements. The connection is created. I try to auth, though, and get an ssl-write syscall error.
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
emushas joined
kikuchiyohas joined
Kevhas left
Kevhas joined
rafasaurushas left
rafasaurushas joined
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
msavoritiashas joined
Kevhas left
Kevhas joined
kikuchiyohas left
Kevhas left
Kevhas joined
kikuchiyohas joined
Kevhas left
Kevhas joined
antranigvhas joined
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
me9has left
Syndacehas joined
wurstsalathas joined
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
pasdesushihas joined
Kevhas left
Kevhas joined
antranigvhas left
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
raghavgururajanhas left
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
kikuchiyohas left
pasdesushihas left
Kevhas left
Kevhas joined
cyrilhas left
kikuchiyohas joined
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
kikuchiyohas left
Kevhas left
Kevhas joined
pulkomandyhas left
pulkomandyhas joined
atomicwatchhas joined
pulkomandyhas left
Kevhas left
Kevhas joined
marc0shas left
marc0shas joined
Alexhas joined
Zashhas joined
Kevhas left
Kevhas joined
pasdesushihas joined
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
contrapunctus
> https://harmonyapp.io/
> Protobuf is the new JSON
https://github.com/harmony-development/protocol/issues/77
Martinhas left
Martinhas joined
emushas left
machas left
emushas joined
Սամուէլhas joined
rafasaurushas left
huhnhas joined
Zashhas left
Zashhas joined
emushas left
emushas joined
rafasaurushas joined
jgarthas left
atomicwatchhas left
atomicwatchhas joined
contrapunctus
lovetox:
> i wonder how many chat apps humanity will build
42 😏️
edhelas
contrapunctus time to release XEP-xxxx: Protobuf over XMPP
contrapunctus
heh
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?
Kev
Quite a lot.
Mjolnir Archonhas joined
Marandahas joined
edhelas
About that much yes
debaclehas joined
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?
marmistrzhas joined
raghavgururajanhas joined
contrapunctus
(I say "hours" to avoid ambiguity, but perhaps "X days/months assuming Y hours a day" would be equally clear.)
Yagizаhas left
Mjolnir Archonhas left
Marandahas left
raghavgururajanhas left
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.
marmistrzhas left
raghavgururajanhas joined
contrapunctus
_shudder_
goffihas joined
inkyhas joined
Wojtekhas joined
rafasaurushas left
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.
Yagizаhas joined
rafasaurushas joined
alhas joined
inkyhas left
inkyhas joined
antranigvhas joined
Yagizаhas left
Yagizаhas joined
marc0shas left
marc0shas joined
debaclehas left
antranigvhas left
antranigvhas joined
marc0shas left
marc0shas joined
spectrumhas left
antranigvhas left
emushas left
emushas joined
debaclehas joined
Mjolnir Archonhas joined
Marandahas joined
antranigvhas joined
jgarthas joined
pulkomandyhas joined
selurveduhas joined
antranigvhas left
spectrumhas joined
antranigvhas joined
marc0shas left
marc0shas joined
antranigvhas left
jgarthas left
rafasaurushas left
inkyhas left
antranigvhas joined
antranigvhas left
lovetoxhas left
paulhas left
Սամուէլhas left
Սամուէլhas joined
rafasaurushas joined
lovetoxhas joined
inkyhas joined
Սամուէլhas left
atomicwatchhas left
atomicwatchhas joined
marc0shas left
marc0shas joined
marc0shas left
marc0shas joined
marc0shas left
marc0shas joined
marc0shas left
marc0shas joined
Zashhas left
Zashhas joined
rafasaurushas left
rafasaurushas joined
COM8has joined
COM8has left
pulkomandyhas left
pulkomandyhas joined
inkyhas left
pulkomandyhas left
pulkomandyhas joined
pulkomandyhas left
alhas left
paulhas joined
marc0shas left
marc0shas joined
dezanthas joined
atomicwatchhas left
atomicwatchhas joined
marc0shas left
marc0shas joined
PapaTutuWawahas joined
hiranhas joined
paulhas left
rafasaurushas left
antranigvhas joined
paulhas joined
antranigvhas left
antranigvhas joined
emushas left
emushas joined
COM8has joined
COM8has left
raghavgururajanhas left
pulkomandyhas joined
pulkomandyhas left
antranigvhas left
Martinhas left
Martinhas joined
antranigvhas joined
PapaTutuWawahas left
Martinhas left
Martinhas joined
Martinhas left
Martinhas joined
Martinhas left
Martinhas joined
rafasaurushas joined
Ingolfhas left
Ingolfhas joined
dezanthas left
COM8has joined
COM8has left
PapaTutuWawahas joined
nephelehas joined
dezanthas joined
pulkomandyhas joined
antranigvhas left
antranigvhas joined
me9has joined
pulkomandyhas left
pulkomandyhas joined
antranigvhas left
marc0shas left
marc0shas joined
marc0shas left
marc0shas joined
marc0shas left
marc0shas joined
antranigvhas joined
antranigvhas left
nephelehas left
raghavgururajanhas joined
antranigvhas joined
COM8has joined
COM8has left
nephelehas joined
dezanthas left
dezanthas joined
marc0shas left
marc0shas joined
debaclehas left
rafasaurushas left
atomicwatchhas left
marc0shas left
marc0shas joined
alhas joined
marc0shas left
marc0shas joined
rafasaurushas joined
kikuchiyohas joined
nephelehas left
sonnyhas left
sonnyhas joined
sonnyhas left
sonnyhas joined
atomicwatchhas joined
PapaTutuWawahas left
Kevhas left
marc0shas left
marc0shas joined
tomhas joined
debaclehas joined
sonnyhas left
sonnyhas joined
sonnyhas left
sonnyhas joined
alhas left
PapaTutuWawahas joined
Kevhas joined
marc0shas left
marc0shas joined
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.
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
Kevhas left
Kevhas joined
homebeachhas left
Matrix Traveler (bot)has left
Matrix Traveler (bot)has joined
homebeachhas joined
test1has joined
Kevhas left
Kevhas joined
test1has left
marc0shas left
marc0shas joined
Zashhas left
marc0shas left
marc0shas joined
Zashhas joined
Zashhas left
marc0shas left
marc0shas joined
Zashhas joined
Zashhas left
contrapunctus
lovetox: thanks for the insight 😶️
Zashhas joined
lovetox
another proble is you need to choose your dependencys wisely
lovetox
choosing the wrong xml lib, and you rewrite the lib again at a later point
sonnyhas left
sonnyhas joined
marc0shas left
marc0shas joined
sonnyhas left
sonnyhas joined
COM8has joined
xeckshas left
xeckshas joined
hiranhas left
COM8has left
hiranhas joined
jgarthas joined
homebeachhas left
Matrix Traveler (bot)has left
Matrix Traveler (bot)has joined
homebeachhas joined
rafasaurushas left
rafasaurushas joined
machas joined
Zashhas left
Zashhas joined
Zashhas left
Zashhas joined
Zashhas left
Zashhas joined
Zashhas left
Zashhas joined
sonnyhas left
sonnyhas joined
sonnyhas left
sonnyhas joined
me9has left
dezanthas left
marc0shas left
marc0shas joined
marc0shas left
marc0shas joined
dezanthas joined
Yagizаhas left
sonnyhas left
sonnyhas joined
sonnyhas left
sonnyhas joined
Wojtekhas left
me9has joined
Zashhas left
Zashhas joined
Zashhas left
marc0shas left
marc0shas joined
Zashhas joined
Zashhas left
Zashhas joined
marc0shas left
marc0shas joined
machas left
9lakeshas left
marc0shas left
marc0shas joined
9lakeshas joined
9lakeshas left
Zashhas left
Zashhas joined
Zashhas left
9lakeshas joined
Zashhas joined
9lakeshas left
9lakeshas joined
sonnyhas left
sonnyhas joined
sonnyhas left
sonnyhas joined
PapaTutuWawahas left
marmistrzhas joined
goffihas left
Zashhas left
Zashhas joined
Zashhas left
Zashhas joined
Zashhas left
pulkomandy
I'd say the XMPP world need better GUIs and not really more libraries or backend implementations, too?
Zashhas joined
Kevhas left
Kevhas joined
MattJ
I think it would certainly be beneficial if there was more code reuse, yes :)
MattJ
I think we average too close to 1 library = 1 client
msavoritiashas left
Kevhas left
Kevhas joined
machas joined
lovetoxhas left
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
Zash
Perhaps that Official SDK wouldn't have been so bad
SouLhas left
moparisthebest
I think there's a good reason for that really
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