Hacker Newsnew | past | comments | ask | show | jobs | submit | jssfr's commentslogin

The Compliance Suites (also linked on the top of the page you linked) are intended to provide some guidance about what's important.

The current edition of those can be found in XEP-0459: https://xmpp.org/extensions/xep-0459.html


You may or may not like https://snikket.org.

It's a bunch of XMPP software (Conversations, Siskin, Prosody), with minor patches, under a common branding (the Snikket parrot), plus a web portal.

It's aimed at the friends&family use case, with an easy invitation-based onboarding workflow. You can either self-host a Snikket Server (= Prosody + TURN + certificate automation) or sign up for the hosted beta (which is either bring-your-own-domain or a domain under snikket.chat).

Note that snikket.org is not, by itself, an XMPP service where you can just sign up. You either need to run your own instance, or you need to sign up for hosting.


I will give it a go, cheers


I switched over from irssi to poezio a few years ago (with a self-hosted biboumi as XMPP<->IRC gateway) and I don't miss irssi (anymore).

Of course, the transition was a bit bumpy, but I think that'd go both ways. As someone else said, it's not a direct replica. Yet, it feels close enough and not too close for the uncanny valley.


Possibly not for "political" reasons, but it gets increasingly harder to be an independent mail operator. I've been running my own email cluster for over a decade, privately.

Some mail providers require you to contact them to get on an allowlist to even be able to deliver email at all. Others do not formally require that, but you may have to enroll in a postmaster programme in order to track your deliverability. Yet others there's no hope at all, except running after the most recent fad in spam fighting (like DKIM/DMARC/SPF etc.), only to find that even fully and correctly configured DKIM (which I don't like on my private email for many reasons) is by far no guarantee for not getting your email marked as spam (and thus, on some providers, hidden by default), even from IPs and domains which have had no spam emitted from them for many years.

So... Yeah. It's not heard of in the public media because those affected most by this don't have any leverage. The big mail service providers (MSPs) presumably have their agreements among one another to protect their business, but if you're just doing friends&family, good luck getting anything except an autoresponder when you run into troubles.

(To offset some of the criticism here, I have had very positive experiences with contacting postmasters of some large German email providers when issues happened, so there's that.)


Who would be operating that server? For how many people? With which privacy policy and which SLAs? Is it just one server (= centralisation and SPOF) or many servers?

The idea behind Snikket (as I understand it) is more along the lines of having a tech-savvy person in your environment who’ll set up a Snikket instance for you and where they all invite the folks important to them.

That means reduced centralisation while providing a lean user experience. The invites are (especially on android) super low-friction (you are presented with a nearly-complete signup after app install; you only have to enter a username (not a domain name, that’s included in the invite; just a username)).

Thanks to being federated with the entire XMPP ecosystem, it can still interoperate with users who are on Quicksy or any other XMPP service out there, which is nice.

I think an invite-based approach is a good middle-way to avoid encouraging centralisation (think matrix.org, jabber.org, or worse) and keeping the onboarding friction as low as possible.


I didn't say it was easy :) I think you could sign up across a set of servers, whoever is willing to put their server in the list. But you are correct, there are a host of issues, since it's all decentralized. That's the cost of decentralization, but there are solutions. One would be to be put on the list your SLA/privacy policies/etc must meet some min. standards(1) exist 2) be found at a .well-known/ etc. that way the client can easily show them to the curious user.

The problem with just a username, is that's not what you need to converse with ANYONE in XMPP land, you need the full XMPP address, and last I checked, no client makes that easy for you to figure out. The full XMPP address should be easy to find as that's what you actually need. Just a username doesn't work, give up on only a username being all you need, it isn't.

I think doing invites from a tech savvy snikket server instance makes sense FOR THAT USE CASE.

For Tito's Grandma, where Tito & Grandma are not tech savvy people.. that's not easy. Tito gets setup on server Y and Grandma gets setup on server Z, and neither of them can talk to each other because the client only shows the 'username'.

Again, I haven't knowingly used Snikket, but last time I played in XMPP, it was non-trivial, even for a tech savvy person.


That's why Snikket has a focus on easy invites that automate on-boarding and contact creation.

Other parts of the XMPP ecosystem also have easy invites that can be shared via QR code, SMS or any other messenger. Example: https://yax.im/i/#user@example.com or https://conversations.im/i/user@example.com See also https://yaxim.org/blog/2020/01/31/yaxim-0-dot-9-9-fosdem-edi...


neat! It's seems my client doesn't understand these though. YAY for federated protocols! :)


Author of xmpp-echo-bot here.

> echoz.sh also uses cut, base64, stdbuf, tr, mkfifo, tee and sort.

tee can be eliminated if needed be, the others should probably be added to the list of dependencies, thanks.

> echoz.sh does not seem to have any "bashisms" so perhaps one does not actually need bash and other sh will suffice.

Indeed, there is a PR which I have to review which fixes that.

> The uses of cut to isolate substrings and tr to replace characters can also be acomplished using sed.

I would be interested how you would do especially the tr part in sed, given that sed, even unbufferedly, operates on "lines". I use tr to replace '>' (XML delimiter) with a line ending recognized by sed to be able to operate on individual XML elements.

The uses of cut could be replaced by sed in the script indeed, although it can’t be moved into the main sed script. I made an issue for that: https://github.com/horazont/xmpp-echo-bot/issues/6

<spoiler>

> "All you have is openssl, bash, dig, stdbuf and sed?"

I hope it is clear that this entire thing is ironic and the long list of dependencies -- especially given that bash could reasonably be used to replace sed here -- is supposed to underline that. I’ll gladly add more :).

</spoiler>


"I would be interested in how you would do especially the tr part in sed..."

There is more than one tr part. :) I tried to be careful to refer only to where the task is replacing characters.

As for joining lines, I have used the same tr -d '\12' technique quite often in the past if the input is not contained in a file. For files I would sometimes use ed scripts.

IME, sed is one of the most ubiquitous programs in UNIX-like OS. I use it daily. However when sed cannot do the job or cannot do it fast enough, I use flex to write relatively small, single-purpose programs quickly. There is a good chance they will compile cleanly on a variety of OS. Perhaps flex is as available to the user as tr, mkfifo, openssl, etc., i.e., when the user has access to all those programs she also probably has access to flex, cpp, as, ld and cc.

I would be happy to provide an example directed at the xmpp-echo-bot solution if you can provide some sample input and the desired output, ICPC-style.


In processing HTML, XML or JSON with sed I have often used tr (e.g., delete newlines, add non-printable delimiter, then replace delimiter with newline) to reformat into sed-friendly input. However, an easy alternative to using tr for this is flex.

As an example, below is a one-off/reusable HTML/XML reformatter in flex. This makes HTML/XML easier for me to read. It also makes it very easy to process with sed and other line-based utilities.

    ftp -4o 1.xml http://web.archive.org/web/20130814000845/http://zombofant.net/blog/ |a.out |less

    flex -8iCrfa 038.l 
    cc -static lex.yy.c

    cat 038.l

    #define echo ECHO
    #define jmp BEGIN
    #define nl putchar(10)
    #define ind fputs("\40\40\40",stdout)
   %s xa xb 
   xa \11|\40 
   %%
   ^\x0d\x0a jmp xb;
   \<{xa}*script nl;ind;echo;jmp xa;
   <xa>\<{xa}*\/script{xa}*\> echo;jmp xb;
   <xa>{xa}{xa}* putchar(32);
   <xa>. echo;
   <xb>\< nl;ind;echo;
   <xb>\> echo;
   <xb>{xa}{xa}* putchar(32);
   <xb>. echo;
   .|\n
   %%
   int main(){ yylex();}
   int yywrap(){ nl;}


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: