-
matlag
Yes, and apparently the take away for the moment is someone does not like your mascote
-
Arc
mascote?
-
edhelas
yup saw that, I answered on the discussion already
-
edhelas
at least people are not talking about Matrix :p
-
Zash
Great success
-
zinid
is matrix still alive?
-
zinid
I still remember the claim "Insanely scalable and performant next-generation server (Dendrite) on the horizon" and waiting patiently
-
edhelas
soon
-
Zash
You get a ruby thing that needs 2 gigs of memory for a few users
-
edhelas
RAM is meant to be used
-
zinid
nah
-
zinid
it's in Go
-
Zash
I mean the current server
-
zinid
the current is in python
-
Zash
Same same :P
-
zinid
yes, crap
-
zinid
and then they chose another crap
-
zinid
every server in Go I used is leaking and unstable as hell
-
zinid
damn, I cannot even read the MIX XEP, yet I have to implement it, wtf...
-
edhelas
I know that feeling
-
dwd
zinid, You're implementing MIX? Our implementation still doesn't entirely match the XEP. Too many things don't work well in practise.
-
zinid
dwd: I implemented the very first version, it's outdated of course
-
zinid
and looking at the current XEP I'm losing motivation, it's overly complex
-
Ge0rG
Maybe we can just fix MUC.
-
dwd
zinid, Some parts are fine. Others get a bit weird, mostly around proxy vs real jids.
-
Zash
Ge0rG: Make me motivated to work on mod_minimix or whatever I called it. Makes you join MUCs with your bare JID. I forget what parts got weird.
-
zinid
Ge0rG: I also tend to think it's easier to fix MUC
-
zinid
or implement "simple" muc
-
Ge0rG
Zash: write to standards@!
-
Zash
Ge0rG: Implementation first!
-
Zash
Ge0rG: Technically not requiring any standards yet. Protocol doesn't change.
-
Ge0rG
Zash: joining with a bare JID is a protocol change.
-
Zash
Does MUC forbid that?
-
Ge0rG
I'm pretty sure it does
-
zinid
really?
-
Ge0rG
okay, I'm not sure.
-
Zash
Arbitrary JID limitations should go away
-
dwd
No, it doesn't.
-
Zash
What if a server wants to join a room that doesn't have a node? :)
-
dwd
Oh, room jids have to be of specific forms.
-
Ge0rG
what if a server wants to join a room that runs at the bare JID of the server?
-
Ge0rG
dwd: you can join chat.yax.im as a MUC.
-
dwd
Ge0rG, You're not making the argument you think you are there.
-
Ge0rG
dwd: I'm not sure I wanted to make an argument at all
-
dwd
Ge0rG, First bullet-point in XEP-0045§3.
-
Ge0rG
dwd: that is not normative
-
dwd
Ge0rG, What? Why not?
-
Zash
> For the sake of backwards-compatibility [with] groupchat 1.0
-
dwd
Zash, That is indeed the rationale for the requirement stated.
-
Ge0rG
dwd: it merely states a result of some historical quirks, it doesn't require that a MUC MUST have that form.
-
Zash
dwd: How does that translate into bare host rooms being forbidden?
-
dwd
Ge0rG, You think unless it uses a mystical incantation of RFC 2119 you can ignore it?
-
Ge0rG
dwd: I think that "well written" and "XEP 0045" don't belong into the same sentence.
-
dwd
Zash, It says they're requirements. Seems they're probably required. Whether that's a good idea or not is an entirely different matter.
-
Zash
dwd: What, and here I was just grepping for MUST and ignored everything else! :)
-
zinid
yeah, this is very important problem: should a room have node part? it should be resolved asap!
-
Zash
dwd: But does that mean you need to support room@host or *only* room@host?
- Zash mumbles on about ambiguity
-
Ge0rG
dwd: there is no requirement that the room name must be non-empty
-
dwd
Zash, It's there as a statement of fact: "Each room is identified as a "room JID" <room@service>", so I'd say if a room cannot be so identified it's not conformant to the spec.
-
dwd
Ge0rG, Yes there is, the local-part of a jid cannot be zero-length.
-
dwd
Zash, I'm not saying this is a sensible requirement, or that it wouldn't work any other way. I'm merely saying that this is what the XEP says.
-
Ge0rG
except the XEP is not very clear in its wording
-
zinid
Ge0rG: "each room is identified"
-
zinid
isn't this clear?
-
dwd
Zash, But anyway. It says nothing I can find on the subject of what the occupant's real jids are (though it infers they're full jids a few times, it never states this as a requirement).
-
Zash
So MUC at bare host aren't rooms, but special magical hidden places for cool people only! :)
-
zinid
of course, "MUST be of <room@server>" would be clearly, but XEP authors prefer very long sentence with cryptic words :)
-
Zash
dwd: Shiny
-
Ge0rG
Zash: XEP authors are people, too
-
Zash
dwd: So nothing prevents a server from just sending one join stanza, then keeping track of which local resources have joined, forking incoming groupchats as needed
-
Ge0rG
Zash: so you are moving MSN from the MUC to the user's server
-
dwd
zinid, "Each room MUST be identified as" would be longer, not shorter. But FWIW, I really hate littering a document with RFC 2119 language, and prefer to use it more sparingly to highlight more subtle cases.
-
Zash
Which also means it can easily do MAM without a mess
-
Zash
Ge0rG: Pretty much, yes
-
Ge0rG
Zash: and MUC-PMs
-
Ge0rG
But it would probably break biboumi in surprising ways
-
dwd
Zash, More or less. But presence would remain a mess. And if you avoided that, you're getting very close to MIX.
-
Zash
dwd: Why I called my draft code "minimix" :)
-
Ge0rG
Zash: write it in a way that you can plug it into MUC or into the server, and fix nick changes etc.
-
Ge0rG
and presence priority.
-
zinid
dwd: I just wanted to say that would be great to have shorter sentences with simplier words, think about non-native speakers
-
zinid
dwd: I recall there is even RFC stating that
-
Ge0rG
zinid: there is a reason for so many Shakespeare references in the XEPs.
-
dwd
zinid, Yes, I agree simple sentences are better.
-
zinid
Ge0rG: to promote English culture?
-
dwd
zinid, Even though its an American doing so, most of the time.
-
dwd
zinid, I'd be tempted, myself, to use Tolstoy. More characters, for a start.
-
zinid
dwd: but this is clearly your move :P In other RFCs are just used Bob and Alice
-
Ge0rG
dwd: that reminds me of http://idlewords.com/talks/website_obesity.htm
-
dwd
zinid, Also, I read War and Peace (and various other Tolstoy, Chekov, Dostoyevsky) back in my teens and cannot remember the characters anymore.
-
zinid
dwd: lol, I didn't even read them :D
-
dwd
zinid, Well, I did read them in English, in fairness.
-
SamWhited
I think I skipped War and Peace in highschool, but Anna Karenina is still one of my favorite books.
-
SamWhited
zinid: what servers in Go gave you trouble? One of Go's features is that it makes resource leaks hard, so that surprises me.
-
zinid
SamWhited: ipfs
-
zinid
https://github.com/ipfs/go-ipfs/issues/4312
-
zinid
one of the point is memory leaking
-
zinid
gc performance sucks also
-
SamWhited
How did they manage that? Go's gc can correct a 50 gig heap in under 10ms in most cases
-
SamWhited
*collect
-
zinid
is it from Google's advertisement? :)
-
Holger
Complex systems run into memory leaks more or less easily no matter what the language, no?
-
SamWhited
No, it's from data I've seen in prod.
-
zinid
Holger: we have ejabberd with several month uptime without leaking for example
-
zinid
yes, the consumption might be high, but not leaking
-
Holger
zinid: Yes sure, I'm not saying all complex systems are leaking :-)
-
Ge0rG
All complex systems are leaking, just at different speeds ;)
-
Holger
But if you get something wrong, i.e. if you accumulate references to blobs over time, no GC in the world will save you from that.
-
SamWhited
I'm reasonably sure none of these things have anything to do with the language though; you can't have a traditional memory leak in go because there's gc, but if you always add things to an append only list and keep a reverence forever then obviously there's nothing the language can do
-
SamWhited
You can leak resources in Go, eg. forget to close a file descriptor or have an infinitely looping coroutine, but defer/close makes that pretty hard to do.
-
zinid
the point is that it doesn't matter how you leak it
-
zinid
also, would be great to have tools
-
zinid
to see where is leaking
-
zinid
and looking at IPFS guys there are no such tools :)
-
SamWhited
It does if you're going to blame the language, because if it's a bug I'd like to fix it. What kind of tools?
-
SamWhited
There is extensive tooling for that
-
zinid
https://github.com/ipfs/go-ipfs/issues/3532
-
zinid
one year already, with several duplicates
-
zinid
you might want to suggest them the tool :)
-
Zash
Tooling for what, exactly?
-
SamWhited
I will, that sounds like the ipfs people just don't know what they're doing. Pprof can ve used to monitor the heap size, and all Go binaries have built in gc logging (you can set an environment variable and they'll dump runtime statistics)
-
Holger
I'm not sure Go servers will typically use goroutines in a similar way to Erlang processes. If so I'd want tools to query resource usage and state of individual goroutines (or groups of them), to modify the state, to kill them; or I'll return to Erlang :-)
-
Zash
I want tools too
-
SamWhited
Holger: I don't think it makes sense to do that, they're much lighter weight and you might have multiple per task, but you could.
-
Holger
Zash: Says the Lua programmer ... :-)
-
Holger
SamWhited: Much leighter weight than what? It makes a *lot* of sense in Erlang.
-
SamWhited
It doesn't make sense in Go, I mean. Go's coroutines are lighter weight.
-
Holger
Than what :-)
-
Holger
If you're a server, would you typically use a goroutine to handle a client connection?
-
SamWhited
Yes, maybe several.
-
Holger
If so you will of course take advantage of being able to introspect that at runtime.
-
SamWhited
Yes, it's certainly not as easy as in a dynamic language, but there are process monitoring tools to show you long running goroutines
-
SamWhited
Monitoring is common, manually killing or changing the state isn't, it's not a dynamic language. Although there are debuggers that can do that, I guess.
-
SamWhited
Well, monitoring is as easy, mutating isn't.
-
zinid
supervision can be implemented in any language
-
zinid
but seems like everyone copies idea of "goroutines" and think they got Erlang
-
Ge0rG
But everbody knows that you need overpriced special experts for Erlang and C++ projects.
-
zinid
lack of runtime introspection is the stopper factor for me in any such fancy language
-
Holger
They have hype. Go is a bit like Matrix :-)
-
Holger
(Well except that Go is actually successful.)
-
zinid
lol
-
zinid
fair remark :D
-
edhelas
Matrix is successfull, there's thousands of subscribers on their chatrooms
-
Zash
Shun the hype!
-
zinid
edhelas: they have even me there!
-
zinid
but I don't use Matrix...
-
Zash
edhelas: Is that an accurate indicator of success?
-
edhelas
zinid you're a spy on cover sent by the XSF ?
-
zinid
edhelas: I used to be a spy once (or twice)
-
SamWhited
I really wanted to like matrix, but the basic premise of the protocol is crap and they built it in an unsustainable way (and then were surprised when the money dried up)
-
Zash
SamWhited: Why did you want to like it?
-
zinid
"unsustainable way"? what do you mean? like they don't have enough resources to develop/promote/etc it?
-
SamWhited
Zash: So that I could have something that was an interoperable and federated standard that wasn't our broken crap, unfortunately it never became the alternative I hoped it would
-
SamWhited
zinid: they had enough resources, until they didn't. It's unsustainable because they expected one company to pay them for full time developers forever
-
zinid
Ah
-
SamWhited
And we saw how that works out… not that they couldn't continue it in a more sustainable way now, but they seem to expect to still be able to be paid full time for it.
-
Guus
What irks me is that it's just one implementation - done by the same people that develop the standards.
-
zinid
well the idea that a single company controls a *federated* protocol is broken
-
Guus
not sure if it's broken - but it does not bode well.
-
SamWhited
Yah, I hoped they'd get other implementations later, but it wasn't a healthy ecosystem
-
edhelas
what about OStatus/ActivityPub ?
-
zinid
from innovative perspective I used to find Tox even more interesting than Matrix, but it's dead too
-
zinid
There is Ring.cx, but buggy as hell
-
edhelas
Ring is interesting but unfortunately their architecture prevent them to have advanced features
-
edhelas
like history, sync and profiles
-
edhelas
you cannot compare apples and oranges
-
zinid
edhelas: I think it's possible with dumb servers
-
zinid
Aka backup servers
-
edhelas
WhatsApp like
-
zinid
Well it scales good
-
Zash
Talking about p2p with servers?
-
edhelas
nah
-
zinid
Zash: hybrid
-
zinid
But more p2pish
-
edhelas
the whatsapp accounts are bound to the devices
-
edhelas
so to sync history between devices, or migrating them they use "backup servers"
-
Zash
Like Skype?
-
zinid
You see, if you have several devices you can synchronize yourself, you don't even need backups
-
edhelas
Skype is now a dumb centralized service since Microsoft bought them
-
Zash
Any client dev interested in doing client to client MAM?
-
edhelas
but why :D
-
zinid
And if all your devices offline and someone sent you a message, you will request it on login (via Delta from the contact)
-
Zash
edhelas: IIRC they switched it to the MSN infrastructure
-
zinid
So backups might not even be needed, at least for everyone
-
zinid
There is a problem with conferences in such system tho
-
dwd
As edhelas says, Skype centralized a while back, mostly because of mobile devices.
-
zinid
dwd: yes, mobile complicates everything, especially ios restrictions