News for hackers. Stuff that matters.
Re:Show HN: Hummingbard – decentralized communities built on... by SubGenius on Friday February 26, 2021 @02:41PM (#26278963)
No but in the next couple days. I actually wanted to go with the strictest copyleft license, but there was a discussion earlier about dual-licensing, which left me quite confused. I'm not very knowledgeable at all in these matters and am taking my time to decide.
Re:Show HN: Hummingbard – decentralized communities built on... by southerntofu on Friday February 26, 2021 @03:58PM (#26279780)
It's really a matter of strategy. Do you want the protocol/vocabulary to be used everywhere, but in closed-source implementations with a free/libre ecosystem constantly lagging behind? Or do you want something that will be less friendly to governments and multinationals but will be part of a striving lesser/non-profit ecosystem?

XMPP/Matrix went the first way. Matrix ecosystem has one reference client/server with really good features but hardware requirements that place it out of ordinary folks' reach. Similarly, XMPP has some really good apps built on top (eg. Whatsapp) but the free-software clients (not servers) are lagging behind, though catching up quickly in the past years.

ActivityPub ecosystem went the other way with AGPL everywhere (Mastodon/Epicyon/Funkwhale/Peertube/PixelFed/Funkwhale/Mobilizon/WriteFreely/Lemmy/Plume) with the notable of bookwyrm who has the Anticapitalist Software license. As a consequence of the ecosystem tailoring to users/non-profits/cooperatives not corporations/governments, it's blooming into this amazing and friendly ecosystem where everybody contributes and interoperates. Hell, who would have thought three years ago selfhosting federated/p2p livestreaming video would be become so easy as Peertube?

Personally i'm more on Jabber/XMPP's side (i contribute to joinjabber.org project, and use Jabbber/XMPP daily) mostly for technical reasons (AP/matrix haven't yet caught up with XMPP in many regards) but in my view adopting loose licensing is what almost killed the XMPP ecosystem all these years ago when it had the exact same promises as matrix does today: one universal federated protocol to bridge to all others.

Re:Show HN: Hummingbard – decentralized communities built on... by feanaro on Friday February 26, 2021 @04:45PM (#26280210)
> Matrix ecosystem has one reference client/server with really good features but hardware requirements that place it out of ordinary folks' reach.

Define ordinary folks, please. Matrix isn't really that resource intensive for a small homeserver between family and friends.

Re:Show HN: Hummingbard – decentralized communities built on... by southerntofu on Friday February 26, 2021 @06:34PM (#26281114)
Well client-side there seems to be progress but to my knowledge so far Riot was the only feature-complete client, and it's REALLY heavy/slow especially on high-latency links. Loading app.element.io before logging in is already 9MB. Also element responsiveness in general is really tied to latency and is therefore not pleasant to use on bad connections and/or Tor.

Server-side, many smaller hosting coops went into matrix but later dropped it because of synapse using too much resources. I know individual selfhosters who were really sad to drop it because their raspberry pi didn't have enough RAM (512MB-1GB) for selfhosting synapse.

However someone said in another thread that synapse resource usage is really better these days. Would you recommend it on such low-end hardware? (ActivityPub/XMPP servers fare really well in such conditions)

Re:Show HN: Hummingbard – decentralized communities built on... by feanaro on Saturday February 27, 2021 @06:00AM (#26284015)
The thing that eats the most resources is joining very large, public Matrix rooms. If you don't do this, it won't be resource heavy.

I've heard of people running Synapse on a RPi 3 (see https://old.reddit.com/r/selfhosted/comments/g9h6au/matrixri... for instance) for such use cases. If you want to chat in large 1000+ member rooms, it probably won't be enough. However, even for such a use case, you don't need anything that is out of reach of a common person, just a few gigabytes of RAM. In general, it's hard to make it go over 3 GiB. My server hovers around 2 GiB and I'm in many large rooms, including the beast that is Matrix HQ.

So I would agree that Synapse is not usable on RPi-level hardware in all use cases, but you can definitely run it on such hardware for some use cases. Dendrite is also maturing really quickly and will be less resource hungry.

Re:Show HN: Hummingbard – decentralized communities built on... by ncmncm on Friday February 26, 2021 @09:02PM (#26282001)
Also, element-desktop 1.7.21 SEGFAULTs during startup on my Debian machine. Would rather it didn't. Wow:

  $ ldd `which element-desktop` | wc -l
  102
Re:Show HN: Hummingbard – decentralized communities built on... by CameronNemo on Saturday February 27, 2021 @02:01AM (#26283255)
Is it not just an electron? I would see if you can anbox the APK. Although the stock Debian kernel is not up to task. Need to turn the Android knobs. Binder and ashmem.
Re:Show HN: Hummingbard – decentralized communities built on... by Arathorn on Saturday February 27, 2021 @06:36AM (#26284184)
please file a bug report if you haven’t already so we can hunt the problem; i’m unaware of this.
Re:Show HN: Hummingbard – decentralized communities built on... by smichel17 on Saturday February 27, 2021 @06:50AM (#26284242)
Hey, what smaller hosting coops are out there? I'm a member at hcoop.net, wondering what else like us is out there.
Re:Show HN: Hummingbard – decentralized communities built on... by southerntofu on Monday March 01, 2021 @05:15AM (#26301291)
You could be interested to checkout libreho.st and chatons.org, who are two generic hosting coops federations. tildeverse.org is a third one centered around PUBNIXes, that is servers giving away shell accounts specifically.
Re:Show HN: Hummingbard – decentralized communities built on... by 3np on Saturday February 27, 2021 @05:33AM (#26283916)
We're < 5 users on my synapse server running on a modern mid-range 6c/12t CPU. 4GB DDR4-2966 RAM dedicated to synapse. It has a separate decently fast postgres cluster for the db. Only 2000 rooms.

It's frustratingly slow and heavy, regardless of client.

Re:Show HN: Hummingbard – decentralized communities built on... by Arathorn on Saturday February 27, 2021 @06:32AM (#26284171)
Perf problems arise with Synapse if those 2000 rooms include massive ones with tens or hundreds of thousands of users (or other state events). The number of local users is fairly irrelevant.

If you grep the logs for state-res you will probably see that some room is consistently chewing resources (these days we explicitly log the worst offenders); easiest bet is to ask your users to leave that room or use the shutdown api to remove it from the server.

Otherwise, it may be that there’s so much data flying around due to the busy rooms that the in-memory caches are blowing out. This makes everything slow down as the DB gets hammered, and unintuitively uses more RAM as slow requests stack up. The solution is to increase the cache factor, much as you would on an overloaded db. We’re currently looking at autotuning caches do you don’t have to do this manually.

If it’s still slow, then there’s probably a bug or other weirdness (ancient Python?) - my personal server has about 5 users on a 4 core cpu and uses about 2GB of RAM without a dedicated DB node and is in thousands of rooms (including busy ones).

(Also it hopefully goes without saying that all bets are off if you aren’t on the latest Synapse release - we are constantly landing improvements currently; eg the auth chain cover algorithm eliminates most of the known perf edge cases on state resolution).

Re:Show HN: Hummingbard – decentralized communities built on... by 3np on Saturday February 27, 2021 @07:03AM (#26284298)
Thanks for the pointers - on latest release with Python 3.8 and roughly 2~5 of those rooms are on the larger ends of the spectrum.

Sounds like I should tune some caches then - I have memory to spare if it turns out to make a difference.

BTW, I just noticed there is an option to add a Redis - would that be a significant improvement compared to just using the process caching?

Re:Show HN: Hummingbard – decentralized communities built on... by Arathorn on Saturday February 27, 2021 @07:38AM (#26284466)
So you’ll want to try dialling up the overall cache factor a bit.

Redis is only useful if you split the server into multiple worker processes, which you shouldn’t need to at that size (and even then, doesn’t provide shared caching yet, although there’s a PR in flight for it - we currently just use redis as a pubsub mechanism between the workers).

Highly recommend hooking up prometheus and grafana if you haven’t already, as it will likely show a smoking gun of whatever the failure mode is.

Are the logs stacking up with slow state-res warnings? Stuff like:

    2021-02-25 23:15:26,408 - synapse.state.metrics - 705 - DEBUG - None - 1 biggest rooms for state-res by CPU time: ['!YynUnYHpqlHuoTAjsp:matrix.org (34.6265s)']
    2021-02-25 23:15:26,411 - synapse.state.metrics - 705 - DEBUG - None - 1 biggest rooms for state-res by DB time: ['!YynUnYHpqlHuoTAjsp:matrix.org (148.6s)']
Re:Show HN: Hummingbard – decentralized communities built on... by psychoslave on Saturday February 27, 2021 @04:27AM (#26283696)
>less friendly to governments

Definitely not: https://matrix.org/blog/2018/04/26/matrix-and-riot-confirmed...

And having worked for the last 6 months in a French governmental agency, Tchap[1] is the only internal instant messaging solution I was made aware of. Most people still had an email+phone centred work-flow however.

[1] https://www.tchap.gouv.fr/

Re:Show HN: Hummingbard – decentralized communities built on... by 3np on Saturday February 27, 2021 @05:27AM (#26283892)
GP is saying XMPP/Matrix went in the "more friendly to governments" direction, due to the dual licensing.
Re:Show HN: Hummingbard – decentralized communities built on... by eeZah7Ux on Friday February 26, 2021 @06:07PM (#26280925)
> less friendly to governments

Citation needed. The European Union Public License is copyleft and it's literally written by governmental bodies.

Re:Show HN: Hummingbard – decentralized communities built on... by southerntofu on Friday February 26, 2021 @06:40PM (#26281167)
Yes but not all governments are the EU, and not all governments of the EU publish anything, even loss so under copyleft.

Even a government like france which is involved in strong open-washing campaign has serious Microsoft ties behind the scenes (education & military mostly) and despite all the promises for 100% OPEN, keeps on introducing closed-source algorithm which are paid for with millions of euros of public money and whose results are very sketchy to say the least (i'm looking at you ParcourSup).

So, when i said "less friendly to governments", i did not mean from a legal perspective. I meant AGPL is only one expression of a global approach to software development that is focused on user empowerment. Such software is usually less concerned with problems of big organizations (including governments), and less likely to try and reinforce governmental control (which is something most governments are looking for in a product). Does that make sense?

Re:Show HN: Hummingbard – decentralized communities built on... by psychoslave on Saturday February 27, 2021 @04:33AM (#26283717)
Well, both the mere citizen and government are users who like to have as much control on their digital tools. The difference seems to be more on who this power is expected to be exerted on. Individual themselves in the former, the national population for the later.
Re:Show HN: Hummingbard – decentralized communities built on... by jzer0cool on Saturday February 27, 2021 @04:59AM (#26283821)
could someone share the run downs of open source and the various licenses in a laymen's term way? i never felt quite comfortable when why's of certain licenses.
Re:Show HN: Hummingbard – decentralized communities built on... by kanjus on Saturday February 27, 2021 @12:22PM (#26286303)
These might be helpful to you and Hummingbard's creator:

https://choosealicense.com/licenses/ provides a concise rundown of a few common ones

https://www.gnu.org/licenses/license-list.en.html: a more detailed list

https://github.com/plibither8/licensed: a CLI tool to help choose licenses (we're on HN).

Re:Show HN: Hummingbard – decentralized communities built on... by Taek on Friday February 26, 2021 @02:46PM (#26279017)
If you go with copy-left you automatically disqualify some major institutions from using your software. Especially for a community based project, there may be institutions that want to make proprietary extensions so it can integrate better with their existing infrastructure.

Generally I think MIT is a good default and you should only use a different license if you have a strong case for why MIT doesn't make sense for your project.

Re:Show HN: Hummingbard – decentralized communities built on... by really3452 on Friday February 26, 2021 @04:46PM (#26280223)
As the author you can always re-release the code under MIT but once it's released under MIT corporations can whole sale rip your work off for their own profit. If you keep it closed source or GPL it then you maintain some breathing room from another company just swooping in and monetizing you code for their profit.
Re:Show HN: Hummingbard – decentralized communities built on... by hda2 on Friday February 26, 2021 @09:41PM (#26282138)
On the other hand, if you accept contributions while under a strict license like the AGPL but then decide to go MIT, you'll have to ask each contributor to relicense his or her work or remove that work altogether.

OP, if you see your project switching licenses down the road, you might as well look into CLAs, a whole other can of worms, or just stick with the least restrictive license that achieves your goals. I'd personally use LGPLv3.

Re:Show HN: Hummingbard – decentralized communities built on... by danbolt on Friday February 26, 2021 @04:37PM (#26280115)
> If you go with copy-left you automatically disqualify some major institutions from using your software.

For what it's worth, I think there's reasoning to consider it on a project-by-project basis. An example might be how XMPP more or less became a bunch of walled-garden forks for various messengers like Google Chat and Facebook. I think Linux thrived with the GPLv2's copyleft being a "sweet spot" for them.

Re:Show HN: Hummingbard – decentralized communities built on... by randmeerkat on Friday February 26, 2021 @03:01PM (#26279191)
MIT licensing is also how entities like Amazon get away with pillaging OSS.

I think you have a real product here and would caution you against releasing the source code.

If you do want to open source it, I highly recommend GPLv2 or 3.

Re:Show HN: Hummingbard – decentralized communities built on... by southerntofu on Friday February 26, 2021 @03:59PM (#26279792)
> If you do want to open source it, I highly recommend GPLv2 or 3.

This is solid advice for client software. However for software to run on the server side, AGPL providers better protections to ensure further developments remain free (copyleft).

Re:Show HN: Hummingbard – decentralized communities built on... by hda2 on Friday February 26, 2021 @09:48PM (#26282167)
While the AGPL would ensure that developments remain free, it will also ensure that most entities (commercial and non-commercial) that need tight integration would not touch it with a 10 foot poll.

The choice of license really depends on what the OP aims to achieve with his software.

Re:Show HN: Hummingbard – decentralized communities built on... by southerntofu on Monday March 01, 2021 @05:13AM (#26301277)
> it will also ensure that most entities

That is simply not true. It may be true for huge corporations with legal counsel spreading FUD. But why should we care about these people ruining our lives? They're already destroying the planet and making sure millions of people are enslaved in the mines/factories across the third world, and we should provide free work for them?!

Interesting entities (libraries, schools, associations, workers coops) will not care about the software license.

Re:Show HN: Hummingbard – decentralized communities built on... by hda2 on Monday March 01, 2021 @09:50PM (#26311375)
Unfortunately, it is. The AGPL exposes licensees to the extraordinary risk of having to disclose any private internal/infra code that integrates with it and, more importantly, the legal and technical costs of doing so.

I assure you, even "interesting" entities care about this. Hell, even public institutions I worked for did.

Re:Show HN: Hummingbard – decentralized communities built on... by dariusj18 on Friday February 26, 2021 @03:05PM (#26279244)
In this case, wouldn't it be great if the big dogs picked up the tech and ran with it?
Re:Show HN: Hummingbard – decentralized communities built on... by feanaro on Friday February 26, 2021 @03:30PM (#26279515)
The same way Google and Facebook picked up XMPP and ran with it?
Re:Show HN: Hummingbard – decentralized communities built on... by sodality2 on Friday February 26, 2021 @03:50PM (#26279713)
Remember that they failed though.
Re:Show HN: Hummingbard – decentralized communities built on... by etiam on Friday February 26, 2021 @04:15PM (#26279920)
Looks dead enough to me in practice?
Re:Show HN: Hummingbard – decentralized communities built on... by dariusj18 on Friday February 26, 2021 @04:12PM (#26279896)
From my perspective that was a good thing. I still use Pidgin as my google hangouts client.
Re:Show HN: Hummingbard – decentralized communities built on... by feanaro on Friday February 26, 2021 @04:32PM (#26280068)
It was a good thing until they ruined it after increasing their strangle on the userbase. It would be sad to see the existing big guys get involved in Matrix to make it popular, only to corrupt it and close it off once it's served its purpose.
Re:Show HN: Hummingbard – decentralized communities built on... by eeZah7Ux on Friday February 26, 2021 @06:05PM (#26280910)
> you automatically disqualify some major institutions

No: it's their choice, and if they choose not to use GPL software it is evidence that they do not care about user and developer software freedom. And that they don't want to contribute back.

Also, "some major institutions" is very unclear. Google is ok with GPLv2 but not with GPLv3. Apple has restrictions on their app store.

Both companies are extremely unlikely to support decentralized communities anyways - they outright compete against them.

Re:Show HN: Hummingbard – decentralized communities built on... by webmaven on Friday February 26, 2021 @08:02PM (#26281695)
> If you go with copy-left you automatically disqualify some major institutions from using your software. Especially for a community based project, there may be institutions that want to make proprietary extensions so it can integrate better with their existing infrastructure.

This is still possible with GPL (and the AGPL, for that matter) by granting an exemption to the license for third-party extension software that is in the form of a plugin using a specific API.

It is worth noting that depending on the details of your (and the plugin's) implementation, such an exemption may not even be required.

This is probably a good place to start digging in to the topic: https://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins

But before anyone starts down this rabbit hole (the legal, social, and technical details of which I personally find fascinating, but YMMV), a maintainer should instead think about the things they want to allow, the things they want to forbid, and the things they want to be able to charge for. Also, which of the aforementioned things they want to provide strong guarantees for in the event of a change in ownership and/or a fork (eg. MySQL/Oracle, OpenOffice/LibreOffice, etc.).

But whatever the preferences are for a particular project, there almost certainly is a way to set those boundaries using a FLOSS license, and it is probably possible while using the GPL (but if you're leaning toward 'allow individuals and mega corps to do whatever they want', there isn't much sense in using the GPL as a starting point), though it is possible you might need a few additional tools for some scenarios (requiring a Contributor License Agreement or even copyright assignment for contributions, license exemptions for specific APIs, splitting out some shared libraries and releasing those under a different-but-compatible license, dual licensing, separate licensing for non-code assets, a nonprofit foundation, compatibility testing and associated badging & trademarks, etc.).

Anyway, there are a lot of tools available, and most of them can be grabbed when and as they're needed, if they ever are.

So, start with what you want in terms of permissions and boundaries, then ask for advice on enabling/enforcing that structure with a FLOSS license, and it can probably be done without too much complexity (assuming that it isn't incompatible with FLOSS, like 'This software cannot be used by the military or to support the creation of WMDs').

Re:Show HN: Hummingbard – decentralized communities built on... by tomjen3 on Saturday February 27, 2021 @10:41AM (#26285511)
No you don't. Some institutions are stupid and have bureaucratic rules, but unless you need them it should not be your concern.

I don't know of any copy left license that prevents you from making JSON API calls from any source you want, so you can integrate something like matrix easily enough.