Threads for erlend_sh

  1. 3

    Even though Nakama bills itself as multiplayer game engine, I think it is actually a much more than that.

    It could be a replacement for Firebase, maybe.

    But unlike Firebase it can be self hosted (the source is open, as long as you do not try to create same SaaS services as Nakama the company, in my understanding). The opensource version does not include their CRDT-based session replication though.

    Nakama’s ‘match’ facility is like an near-realtime aggregation engine (with customizable behavior through Go or Lua plugins). When used, in what they call ‘server-authorative multiplayer’ mode.

    Each match is a ‘session’ on Nakama’s server. Participating clients basically publish updates into the session, or read the session’s state.

    There is an event loop that ‘examines’ the session every say 0.5 seconds. These plugin-implemented examination can change the state of the session, and publish the updates to all the subscribed clients (via broadcast_message(op_code, data, presences, sender) ).

    This is, therefore, a pretty general system for near-realtime event aggregation.

    It also includes things like user management, authorization and other stuff… but one does not need to use that if you have your own notion of users/clients/etc (you can create a couple of ‘technical user accounts’ and just use them as proxy to the sessions I mentioned above).

    I think there are ways to expand the ‘surface’ of the applications for this thing beyond games – into systems in financial services, advertisements, IoT 4.0 and so on.

    1. 2

      Thanks for this insightful answer! It’s worth noting that Nakama’s narrow focus on games infrastructure is an important part of what makes it better for the games use case than general-purpose tools like Firebase.

      But it’s certainly possible that a wholly better alternative to Firebase for near-realtime event aggregation can indeed be built through this inside-out approach.

    1. 4

      Does Discourse have an aversion to the term Free Software even though it’s licensed under GPLv2?

      1. 2

        Not really, but the company never strictly favored one ideology over the other.

      1. 4

        Man I know this feel all too well. Was working on indie stuff for so long and was resisting fulltime employment for a really long time but didn’t realize the many benefits it brings

        1. 1

          Glad it resonated! For the past 3 years I’ve been working for a company with an open source product (Discourse) and it’s been eye-opening to get paid to work on an OSS project I’m passionate about.

        1. 2

          Open software and the open internet have been the two greatest economic engines the world has ever seen.

          There are the obvious immediate benefits: a free, high-quality operating system or editor or compiler or whatever. A communications medium that gives your message the same reach as Microsoft’s or Apple’s.

          And then there’s the enormous intangible benefits. The vast majority of my computing knowledge comes from using, studying, inspecting, and writing software. If Linux and GCC and Perl and Python hadn’t been trivially available to me to tinker with and study and learn and write programs with, there’s no way I’d be where I am today. Not even close.

          Same with Wikipedia, for that matter.

          1. 5

            In my licensing essay, I pointed out a proprietary license can be constructed with every benefit you just described. Even free distribution and modification. The only difference is commercial or profit-generating use past a certain point requires a paid license to support core developers who must maintain and support the software in return. Recently, some have added a convert-to-OSS/FOSS option if they don’t want to support it any longer.

            That matches your goals of building, inspecting, and freely acquiring software as an individual. Anything else bother you about it that I might try to mitigate with extra provisions?

            1. 2

              Anything else bother you about it that I might try to mitigate with extra provisions?

              Yes, that it isn’t free software. It doesn’t follow the four freedoms. It doesn’t give people the right to use it for any purpose.

              requires a paid license to support core developers who must maintain and support the software in return.

              No. You’re under no obligation to work on the software. You’re under no obligation to maintain and support it. Nobody is forcing you to do so. A company using software you’ve written are free to maintain it themselves, that’s the whole point.

              1. 3

                “Yes, that it isn’t free software. It doesn’t follow the four freedoms. It doesn’t give people the right to use it for any purpose.”

                It starts out with them preserving most of their benefit. Then, it modifies them to fix the problem of for-profit freeloading without giving back. Quite the opposite of how a commons is supposed to work. That’s where payment comes in. Let me get right to details, though. In my model, paying customers or those with free licenses can use, inspect, modify, and distribute among licensees as they please. The licenses might even be given out for free for non-commercial use or commercial use under a certain revenue/profit. Let’s talk the latter with it free under $1,000,000 a year.

                So, a company under $1,000,000 a year or non-commercial user gets to use it for free, they get the source, they can do mods/forks they share with other customers, and so on. Any changes go back to the owner so they can optionally put them in the main product. If not, the forked copies still exist and are permitted in use by licensees. Payment kicks in only when the company using it is making over a million dollars doing it while giving nothing in return. If you insist on four freedoms, it appears you’re drawing the line in the sand at letting millionaires or just profitable companies get something for nothing from developers putting lots of free labor in.

                I don’t think that’s morally defensible if we want contributions going back somehow given freeloading ratio and fledgling projects that currently exist in FOSS. I think making folks who profit massively off of others work give something back, what being definable by the authors/owners, makes a lot more since then helping all the benefits go one or a few ways away from author/owner. Unless the owner specifically wants their work to primarily profit others. Some do. FOSS licenses for them. Lots of people want widespread benefit of the masses while hopefully getting something in return from those really benefiting from it. If they give nothing, they’re just being greedy assholes. Not forcing them to give back protects greedy assholes at altruistic peoples’ expense. In those situations, better to remedy that somehow. hence these experiments.

                “No. You’re under no obligation to work on the software. “

                In my comment, I said it was a paid offering with payment leading to maintenance and support that paying customers will expect. So, yes, the people getting paid to work on the software have an obligation to work on the software or decline payment. With F/OSS, there’s no obligation since there’s no payment and/or agreement for them to work on the software. However, some individuals and companies enter into voluntary agreements to work on the FOSS for money. That’s the proprietary model with free-er results. Dual licensing and/or charging businesses directly for F/OSS is the current path I recommend until something better is determined. There’s also Open Core but it’s incentives are sketchier. I recommend it for enterprises where you can be sure features like Active Directory integration probably won’t hurt majority of individuals, small businesses, or FOSS-using companies that would use the software.

            2. 1

              I agree, I think? Not sure what exactly you’re trying to get across here.

              1. 1

                I was agreeing with you, in my usual, unnecessarily verbose way. :)

            1. 14

              It’s a little bit like forming one major workers’ union for open source maintainers.

              It’s not at all like that. It’s a de-productized Glassdoor (which does sound good) glued to some sort of coop/corporation/nonprofit.

              Virtual penny for your thoughts.

              It seems like all this is re-inventing “taxes” and “regulation” but with less teeth and more computers. If we instead forced these companies to pay just amounts of taxes, made the companies worker-controlled, and provided social services such that people didn’t need a job just to exist, all these problems would also be solved. And, as a bonus, it’ll be solved for people that aren’t professional computer botherers.

              1. 3

                Well sure, let’s take it all the way to Universal Basic Income while we’re at it, I’m with you all the way! But that’s no doubt decades away still. Don’t dismiss a solution viable in the short-term just because there’s a better way to solve it in the long-term.

                1. 4

                  Don’t dismiss a solution viable in the short-term just because there’s a better way to solve it in the long-term.

                  I’d hesitate to call it a “solution” when I don’t see it as engaging with the real problem, namely extracting value from a de-commoditized commons. Getting compliance with the scheme would be a huge lift with a fairly narrow focus. The political infrastructure required (unions, guilds, activism, etc) needs to be built in both the private governance model and the “traditional” governance model, so why not embark on the project that has a larger pool of people to draw from?

                  1. 2

                    If it’s decades away then solving the problem is decades away. It gets further away every time someone dismisses it in favour of some short-term ‘solution’ that doesn’t solve anything.

                    Don’t dismiss a solution viable in the short-term just because there’s a better way to solve it in the long-term.

                    I don’t think this solves anything. I think it makes everything worse, just like everything that isn’t actually free software.

                  2. 3

                    made the companies worker-controlled

                    Let’s not…most workers have the business sense of a stoned rabbit.

                  1. 2

                    hi @erlend_sh, I did fill in the form, but just noticed you’re the author of this.. do you think I can get free hosting for a tiny discourse for a community project - not specifically focussed on OSS, so doesn’t score well on github ( ?

                    1. 2


                      I assume you’re currently self-hosted somewhere. Digital Ocean?

                      I suggest checking back in with me in 2+ months. We’ll have lived with this pilot program for a while then and will know better to what extent we can widen the net.

                      1. 1

                        yep, self hosted. ok, will check back, thanks!

                    1. 13

                      A new and exciting way for devs to donate more free labor to businesses.

                      1. 11

                        … instead of just contributing to the existing documentation for the projects…

                        1. 3

                          Yeah - I have a hard time imagining the documentation staying up to date for the projects that actually need it. Popular projects already have documentation. Projects with few users won’t have any incentive to keep the SO docs up to date.

                          Examples and walkthroughs are a good middle ground between asking questions on Stackoverflow and the API documentation given as an example in the original post (other posters talk about examples as a possibility).

                          Providing a curated, relevant set of examples for a project might be achievable and is actually in SO’s wheelhouse - they already do this, more or less.

                          The contribution process and tools can be inhibitive so having a place to contribute outside the project is useful.

                          1. 1

                            It could work for smaller projects though, eg. if one of my projects ever became popular I could move all the documentation from the source code folder or a website into Stack Overflow and either delete the original documentation or make it a mirror of the Stack Overflow content. If I could get help writing documentation for my projects I would gladly accept it. If I putting on Stack Overflow means more/anyone contributes anything at all then is an improvement on what I have currently :)

                          2. 5

                            The labor doesn’t just help Stack Overflow. All user-submitted Stack Overflow content is Creative Commons licensed, so anyone can read it, share it, or even create a commercial competitor with the data (as long as attribution is given).

                            1. 2

                              The attribution required is quite strange, it require a link to Stack Overflow even for a single content from a specific user.

                              1. 1

                                I think the primary reason for this is to discourage people taking the Q&A data and creating spammy search hits with it.

                                1. 1

                                  I think the primary reason for this is to add incoming link to this for profit website.

                              2. 1

                                And I didn’t claim it did.

                              3. 1

                                Give it some time to find its place. I don’t think they should try to compete with the likes of I think open source solutions like Jekyll (-as a wiki), Sphinx and GitBook are making more important headway in that regard.

                                But the “community powered examples” sounds very appealing. If they build this out in a way that it can neatly accommodate existing documentation as opposed to compete with it, this could work.