Live data from Hacker News

Candidates for Mozilla's IRC Successor

exple.tive.org

91–100 of 219 posts

Re: Candidates for Mozilla's IRC Successor

#92
post #65
post #50

Earlier quoted context omitted.

Everything you dislike about IRC is precisely what I like.

Nothing like firing up google to search for where you might find the chat for the server you happened to connect to so you can see what you missed while you were away or disconnected while waiting for someone in a different timezone to respond.

If you leave a room then you are no longer inside and you can't know what people inside were talking about while you weren't inside. As it should be.

Re: Candidates for Mozilla's IRC Successor

#93

I've read somewhere that matrix server uses too much RAM due to bad design. Personally I'd prefer XMPP.

It's not a bad design, it's just the reference implementation is python based, and, well, a reference implementation; so they don't do too much for optimisations and focus instead on readability.

When Matrix as a protocol settles more, we'll start seeing optimised versions of the server, I'm certain of it.

Re: Candidates for Mozilla's IRC Successor

#94
I'm sad to see Zulip excluded from the list. It solves the #1 issue with large group chats - proper threading.

Nothing worse than waking up to a 1000 message backlog you have to sort through to filter out the information relevant to you. Except for Slack, all of their other choices have very poor threading.

They said they had trouble to get it working behind IAM, but Zulip is just a Django application. Surely there's a Django authenticator for Mozilla IAM? I would be very happy to help set it up.

Re: Candidates for Mozilla's IRC Successor

#95

Really excited to see Discord rejected. Watching Discord take over open source and free culture communities has been disheartening to say the least.

Discord changed the communications of an entire generation, removed ideal low priority messaging and replaced it with a vulnerable and bloated service that now offers to sell you games and track your every move. Everything on Discord is unencrypted by design.

Re: Candidates for Mozilla's IRC Successor

#96
post #73

I have full faith that, if I had left a computer running, in the corner of my home, with an IRC client open, it would have been able to maintain a connection to Freenode (not continuously, but just work) for fifteen or more years. Personally I don't think IRC will ever be replaced. Well, it will, but it'll happen when my generation dies and gets fully replaced with the New Shiny. I _hope_ that some sort of real, prop…

I feel like Matrix is basically the "real standard" here that supports a lot more than IRC. The question for me is about how easy it is to build a client for that (IRC is stupid easy, of course). Ideally you should be able to build a Matrix client in something like a Python REPL and like 20 lines of code with an `input` loop at the end. I don't know if that's the case at the moment.

Ooooh... sounds like a fun challenge :D I've typed this out straight into the HN input box so it almost certainly doesn't work and will be full of typos and escaping bugs, but for illustrative purposes: here's what a ~8 line Matrix client for basic bi-directional chat in a given room could look like (complete with login) in almost-bash, with deps only on curl and jq:

    USERNAME='@whoever:matrix.org'; SERVER='https://matrix.org'; ROOM='#test:matrix.org'
    read -s -p "Password for $USERNAME:" PASSWORD
    TOKEN=`curl -X POST $SERVER/_matrix/client/r0/login --data "{ 'type': 'm.login.password', 'login': '$USERNAME', 'password': '$PASSWORD' }" | jq .access_token`
    ROOM_ID=`curl $SERVER/_matrix/client/r0/directory/room/$ROOM | jq .room_id`; curl "$SERVER/_matrix/client/r0/join/$ROOM_ID?access_token=$TOKEN"
    (while true; do SYNC=`curl -s $SERVER/_matrix/client/r0/sync?access_token=$TOKEN&timeout=30000&since=$SINCE`
     echo $SYNC | jq ".rooms.join.$ROOM_ID.timeline"
     SINCE=`echo $SYNC | jq .next_batch`; done) &
    while true; do read -p " " INPUT; `curl -s -X POST $SERVER/_matrix/client/r0/rooms/$ROOM_ID/m.room.message?access_token=$TOKEN --data "{ 'body': '$INPUT', 'msgtype': 'm.text'}"`; done
Spread out a bit more with comments:

    # set your matrix ID & server URL, and the room you want to chat in:
    USERNAME='@whoever:matrix.org'
    SERVER='https://matrix.org'
    ROOM='#test:matrix.org'

    # prompt for a password; log in and grab an access_token
    read -s -p "Password for $USERNAME:" PASSWORD
    TOKEN=`curl -X POST $SERVER/_matrix/client/r0/login --data "{ 'type': 'm.login.password', 'login': '$USERNAME', 'password': '$PASSWORD' }" | jq .access_token`

    # resolve the room alias (#test:matrix.org) to a room ID (!vfFxDRtZSSdspfTSEr:matrix.org)
    ROOM_ID=`curl $SERVER/_matrix/client/r0/directory/room/$ROOM | jq .room_id`

    # check that you're joined to the room (redundant if you know you're already there)
    curl "$SERVER/_matrix/client/r0/join/$ROOM_ID?access_token=$TOKEN"

    # set a background loop running to receive messages, and use jq to filter out the
    # messages for the room you care about from the sync response.  For now we print them
    # as JSON pretty-printed by jq, but that's not too bad.
    (while true;
        do SYNC=`curl -s $SERVER/_matrix/client/r0/sync?access_token=$TOKEN&timeout=30000&since=$SINCE`
        echo $SYNC | jq ".rooms.join.$ROOM_ID.timeline"
        SINCE=`echo $SYNC | jq .next_batch`
    done) &

    # set a foreground loop running to prompt for your own messages and send them
    # into the room as plaintext.
    while true;
        do read -p " " INPUT;
        `curl -s -X POST $SERVER/_matrix/client/r0/rooms/$ROOM_ID/m.room.message?access_token=$TOKEN --data "{ 'body': '$INPUT', 'msgtype': 'm.text'}"`
    done
If I have time I'll actually try running & debugging this to be usable and edit the post (but got to run into a meeting now :( ).

Needless to say, this'd be much prettier on Python - and you'd prolly want to use a nice SDK like https://github.com/poljar/matrix-nio (see https://matrix.org/blog/2019/07/03/usage-of-matrix-nio/) so you get things like E2E Encryption for free. But doing it in plain bash hopefully gives more of an idea.

Re: Candidates for Mozilla's IRC Successor

#100
post #54

It's great to see 3/4 of the options are open source! Whatever happens, I really hope the community get behind the open source options and don't let more things get eaten up by commercial silos cough slack cough. I'm partial towards Matrix/Riot.im - the progress made on those projects is awesome and they really have a highly usable product, with bonuses such as e2e encryption and federation.

> they really have a highly usable product Setting up a Matrix server is a lot harder than you might think, especially when you start talking about federation and identity management. The mxisd[1] project has recently disbanded due to what I believe to be philosophical differences with the Matrix maintainers vision of identity management. I like a lot of things about Riot/Synapse, but I would suggest you try setting…

Yeah that sucks. I wanted to integrate matrix to our community but no, it would be a bad decision at this time
Post reply on HN