1. 6

    I agree with parts. GMail is definitely a trap, but after some tweaking I did get mbsync working fine. It only is broken if I need to restore mails into GMail, and the fault lies with GMail. There is a bit that seems to suggest you need postfix to send, but you only need mstp to relay out via GMail. I haven’t seen a need for a local IMAP server… I like that my emails are stored in flat files because I’ve done some things that really needed that before. I only wish I could go back in time and have chosen Fastmail for email.

    The spam issue is correct. Most of it is either companies relentlessly emailing me and making it hard to subscribe (I particularly want to shame Hanes and Mack Weldon. No one needs almost daily emails from Hanes.), or cold calling marketers, who have taken to ‘this is the last email I will send’ shortly followed by more emails. I basically never see my email shared with partners–and I use unique addresses for each registration. I get a lot of unwanted mail because I am not motivated enough to fight it and it is easier to just delete it in mutt in weekly cleanup sessions, and then those deletes get pushed to GMail. That is one habit I’ve developed–skimming email for urgent things and then handling less urgent stuff in batches. I’m not sure I need linkedin anymore, but they are very chatty. I have to have Facebook, but they are maddening with friend suggestions to my phone and email that just are not even good guesses.

    The problem is that leaving email migrates me farther from sources of information that survive over time. Usenet has only a few active communities, forums are even dying in favor of things like slack and discord that are extremely hard to export data from if it is possible at all–knowledge just disappears now. Scrolling to the top of a slack channel is so very slow, and then they only preserve things for a while. I had an immediate negative response to discord, so I am not authoritative on it other than it never showing in search results. Things don’t get indexed and search engines think they are smarter than me and then may require you to use just the right phrasing to find what you want. It has turned me into a link hoarder.

    I do however have emails and list emails from the early 2000s (it would go back to the 90s, but there was an incident.)… And lists are great at providing web archives.

    I am not very confident that things sent over a Gemini inspired mail system will persist over time or not end up in the same email spam war if at all successful.

    I think really that what the internet is has just evolved over time, and I’m getting old. Just like my music collection stagnated mostly, my tastes in how I use the internet have not kept up with how it has changed. I have respect in Gemini as an enclave for some, but it also has NIH problems. I think the lower stress solution to email is to just do it in batches and not stress over inbox 0. And actually, as some online communities disappear and I am sad, I also do find new stuff that I like or double down on old haunts.

    I guess that’s my rant response to a rant about email.

    1. 5

      I think really that what the internet is has just evolved over time, and I’m getting old. Just like my music collection stagnated mostly, my tastes in how I use the internet have not kept up with how it has changed. I have respect in Gemini as an enclave for some, but it also has NIH problems. I think the lower stress solution to email is to just do it in batches and not stress over inbox 0. And actually, as some online communities disappear and I am sad, I also do find new stuff that I like or double down on old haunts.

      Just want to gently push back a bit on this. I personally think there is WAY too much “Meh” going on in tech right now.

      E-mail has problems as it currently exists mostly due to the way things evolved over time. If someone is actually thinking about making a fresh start and potentially fixing some of these problems, why not support them?

      1. 5

        If someone is actually thinking about making a fresh start and potentially fixing some of these problems, why not support them?

        If the plan is to fix things for everyone, then the effort is doomed to fail because of path dependence and network effects, and I’m therefore uninterested. If the plan is to fix things for a few nerds who are willing to pour a lot of effort into their communication stack, then I’m uninterested because that group doesn’t include me.

        Either way, I’m unaffected. And I think that is, more or less, how most people feel.

        1. 5

          You’re making the assumption that SUCCESS == widespread adoption.

          I would argue that even an attempt at fixing some of the larger issues is a success whether or not it sees wide adoption because even in failure we gain anti-patterns and counter-examples we can use when we enact an actual fix further down the line.

          Tech has a negativity addiction, and I think it’s both unhealthy and counter-productive.

          1. 3

            That’s fair. To be clear, I wish all of these people well, I’m just not holding my breath that I’ll ever actually be able to use any of the stuff they’re building.

          2. 5

            If you are unaffected and uninterested either way, why not just look away and move on? Why make a point of saying you think it’s going to fail or is uninteresting?

          3. 5

            Just want to gently push back a bit on this. I personally think there is WAY too much “Meh” going on in tech right now.

            Too much “meh”? Every other post on every tech news aggregator I’m on is talking about how tech is destroying the world.

            I think the true answer here is that, the mindshare behind Email is gone. Valuable content is being created on places like Slack, Discord, Matrix, Discourse, Zulip, Reddit, and Twitter. From the start, these platforms cut these problems out of the solution space, so most folks don’t have to think about these problems. As @b1twise mentioned

            I think really that what the internet is has just evolved over time, and I’m getting old. Just like my music collection stagnated mostly, my tastes in how I use the internet have not kept up with how it has changed.

            To some extent, I think an effort at “reviving” email for email’s sake is really an attempt to fix a social problem with a technical solution, without meaningfully addressing email’s competitors/descendants. I think https://delta.chat/ takes a more reasonable approach here in solving a specific subset of usecases via Email.

            1. 2

              Respectfully, I reject the assertion that E-mail isn’t worth saving because chat, reddit, and Twitter.

              These are fundamentally different technologies with different characteristics and use case, and I’ll also note that each of the services you cite are:

              • Not decentrailzed
              • Not open source
              • are all, except for Slack, struggling to monetize themselves.

              E-mail is distributed, open standards compliant and not reliant on a single source server platform which will cause the entire thing to vanish if a company goes under.

              Saying “None of the cool kids are using it so it’s irrelevant” is not a particularly compelling argument to me.

              Also, this argument in my mind anyway has VERY little to do with judging the merit of an alternative technology that shares some of E-mails goals but learns from its mistakes.

              1. 3

                I did refer to Matrix, Discourse, and Zulip in the list all of which are open-source, and Matrix is actually decentralized! Discourse does support Email as a first-class way to read and reply to posts, although there’s no way to search through the protocol itself for older messages.

                I didn’t mean to say that E-mail isn’t worth saving. I think it’s the rare example of a decentralized protocol that still has a lot of mindshare. What I mean to say is that, it’s worth taking a focused use-case and using Email as the substrate for that. A lot of decentralized projects like, say ActivityPub, are focused on creating and promoting the actual substrate protocol, instead of creating a “product” for a user to use. It took Mastodon to really create and popularize the experience around ActivityPub (well kinda, the protocol evolution is a bit messy and there’s lots of prior art here before Mastodon) before ActivityPub itself had worth as a communications protocol. I find that Delta Chat actually focuses on a product experience end-to-end and by doing so gives a compelling user story to use Email. Matrix is also focusing on an end-to-end experience and is developing their protocol alongside their product experience so that there’s a useful product for end-users first and a synchronization and update protocol second. Focusing on the networking and the decentralization is cool for us hackers, but it’s not that useful for actually communicating. What I meant to say was that trying to popularize Email as the “next thing to use” is trying to tackle the social problem of “facilitating communication” and apply a technical solution “use Email” as a result, when what’s needed is a focused application atop Email. Hope that makes some more sense.

                1. 2

                  Matrix is both decentralised and open source

                  1. 1

                    It is! However it isn’t easy to maintain long term archives of Matrix traffic that I know of, and also @GrayGnome didn’t cite Matrix in his post :)

                    Matrix is awesome, but it’s not the same kind of animal as Email or a modern Email alternative.

            2. 1

              I recently got a full CLI email client working for gmail with mbsync, fdm and some other stuff. Works brilliantly on macOS. Documented here: https://github.com/elobdog/mailhelp

            1. 1

              TLDR? (Wow! A blue car!)

              1. 19

                Unfortunately, being nice won’t get you a lot of money in the modern corporate workplace.

                Being nice means some people will think you are a weakling.

                It’s really important to know how and when to be nice and how and when to be assertive (or whatever opposite is of nice is in this context…).

                For every “guide to being nice” there’s a career article in the vein of “how to get what you want: step 1. stop saying yes all the time”

                Just as different programming languages can be suited for different jobs. Different personality is suited for dealing with different incarnation of the corporation/society. A friendly personality is great for making friends. But that should not be your primary goal in a workplace.

                Developers who don’t have social skills and usually seem upset or angry.

                This has nothing to do with being nice. Telling people who don’t have social skills to ‘just be nice’ is like telling starving people to ‘just be rich’

                Developers who undermine each other at every turn.

                Necessary in many modern workplaces in order to compete for limited upward potential.

                Generally defensive developers.

                This has more to do with culture around mistakes. Not the fault of the individual.

                Developers who think that other departments of the company are stupid, that they don’t know what they want.

                They are stupid. At least for this limited domain. If you are a knowledge worker you rely on other people being stupid in your domain. So to assume that they are not would just not make any sense.

                1. 38

                  I think a point of this blog post was to be polite when talking to and about your colleagues. Doing that does not imply in any way that you are a weakling. It makes the conversation better and you are more likely to come up with good solutions, in my experience.

                  1. 9

                    My experience in the corporate workplace matches @LibertarianLlama’s’s post very much, albeit in a somewhat nuanced way (which I suspect is just a matter of how you present your ideas at the end of the day?).

                    For example, being polite when talking to and about your colleagues is important, primarily for reasons of basic human decency. (Also because “being professional” is very much a high-strung nerve game, where everyone tries to get the other to blink first and lose it but that, and how “professional” now means pretty much anything you want it to mean, is a whole other story.)

                    However, there are plenty of people who, for various reasons, will be able to be jerks without any kind of consequences (usually anyone who’s a manager and on good terms with either their manager, or someone who wants to undercut their manager). These people will take any good-faith attempt to keep things nice even in the face of unwarranted assholeness as a license to bring on the abuse. Being polite only makes things worse, and at that point you either step up your own asshole game, or – if that’s an option – you scramble for another job (which may or may not be worse, you never know…).

                    Also, all sorts of things, including this, can be taken as a sign of weakness under some circumstances. Promotions aren’t particularly affected by that. While plenty of incompetent people benefit from favoritism, everyone who’s in an authority position (and therefore also depends on other people’s work to move further up) needs at least some competent underlings in order to keep their job. So they will promote people they perceive as “smart” whether they are also perceived as “weak” or not. But it does affect how your ideas are treated and how much influence you can have. I’ve seen plenty of projects where “product owners” (their actual title varied but you get the point) trusted the advice of certain developers – some of them in different teams, or different departments altogether – to the point where they took various decisions against the advice of the lead developers in said projects,sometimes with disastrous consequences. It’s remarkably easy to have the boat drift against your commands, and then get stuck with the bill when it starts taking water.

                    Basically, I think all this stuff the blog post mentions works only in organisations where politeness, common sense etc. are the modus operandi throughout the hierarchy, or at least through enough layers of the hierarchy to matter. In most modern corporate workplaces, applying this advice will just make you look like that one weirdo who talks like a nerd.

                    (inb4: yes yes, I know your experience at {Microsoft|Google|Apple|Facebook|Amazon|Netflix|whatever} wasn’t like that at all. My experience at exactly one corporate workplace wasn’t like that either, but I knew plenty of people in other departments who were racking up therapy bills working for the same company. Also, my experience at pretty much all other corporate workplaces was exactly like that, and the only reason I didn’t rack up on therapy bills is that, while I hate playing office politics because it gets in the way of my programming time, if someone messes with me just to play office politics or to take it out on someone, I will absolutely leave that job and fuck them up and torch their corporate carcass in the process just for the fun of it).

                    Edit: I guess what I’m saying is, we all have a limited ability to be nice while working under pressure and all, and you shouldn’t waste it on people who will make a point of weaponizing it against you, even if it looks like the decent thing to do. Be nice but don’t be the office punching bag, that doesn’t do you any good.

                    1. 3

                      I mean, in the case you’re describing, I think it’s still valuable to act nice, like this post describes. You definitely gain more support and generate valuable rapport by being nice, rather than being an asshole. Oftentimes, being able to do something large that cuts across many orgs requires that you have contacts in those other orgs, and people are much more willing to work with you if you’re nice.

                      Nice should be the default. However, when you have to work with an asshole, I think it’s important to understand that the dynamic has changed and that you may need to interact with them differently from other coworkers. Maybe this means starting nice, seeing that they will exploit that, and then engaging far more firmly in the future. Maybe you start with trying to empathize with their position (I don’t mean saying something like “I see where you’re coming from and I feel blah blah,” but by speaking their language, “Yeah dude, this shit sucks, but we have to play ball” or whatever).

                      In general, the default should always be nice, but nice does not mean necessarily not being firm when it’s required (someone wants to explore a new technology, but your team is not staffed for it and you have other priorities that the team needs to meet), and nice does not mean you should put on social blinders and interact with everyone the same way. Part of social interaction is meeting people where they are.

                      1. 4

                        Nice should be the default.

                        Oh, yeah, no disagreement here. We have a word to describe people who aren’t nice by default and that word is “asshole”. You shouldn’t be an asshole. Some people are, and deserve to be treated as such. Whether they’re assholes because they just have a shit soul or they’re pre-emptively being nasty to everyone defensively, or for, um, libertarian reasons, makes very little difference IMHO.

                    2. 14

                      The benefits of being nice find no purchase in the libertarian’s mentality. Keep this in mind when you encounter them. Adjust your approach and expectations accordingly. More generally, try to practice what I call “impedance matching” with them (and with all people). What I mean by that is (1) understand their personality’s API and (2) customize your interface accordingly. Meet them where they are. Then there will be fewer internal reflections in your signaling. Of course, if they proudly undermine you, don’t think you can change them. You’ll have to just keep your chin up and route around that damage somehow.

                      1. 1

                        This corresponds to a very personal and painful lesson that I have recently learned. I would caution against stereotypes, but I’m a bit beaten down by the experience.

                    3. 30

                      Hard no. I’ve tried to be nice in my 35-year career (at least, never tried to undermine or hurt others) and have nevertheless accumulated what many would see a “a lot of money”. (And I’d have a lot more if I hadn’t kept selling Apple stock options as soon as they vested, in the ‘00s…) Plenty of “nice” co-workers have made out well too.

                      Telling people who don’t have social skills to ‘just be nice’ is like telling starving people to ‘just be rich’

                      The advice in that article is directly teaching social skills.

                      Necessary in many modern workplaces in order to compete for limited upward potential.

                      Funny, I’ve always used productivity, intelligence and social skills to compete. If one has to use nastiness, then either one is lacking in more positive attributes, or at least is in a seriously f’ed up workplace that should be escaped from ASAP.

                      1. 19

                        Unfortunately, being nice won’t get you a lot of money in the modern corporate workplace.

                        I’ve been at a workplace like yours but at my current one most of the most-senior and presumably best-paid folk are incredibly nice and I aspire and struggle to be like them. I’ve learned a lot trying to do so and frankly not being nicer is one of the things holding me back. Consider changing yourself or workplaces, I think you’ll be surprised. I’m disappointed by the “but I have to be an asshole” discourse here, part of growing up professionally for me was leaving that behind.

                        Unfortunately that version of me also wouldn’t have listened to this advice and would fall into this what’s with all the unnecessary verbosity? trap so I don’t know that this will actually land for anybody.

                        1. 9

                          I did not expect you to be a fan of the modern corporate workplace.

                          I recall one time at a former employer where I pissed off my managers by pointing out to an upper executive that it was illegal, under USA labor laws, to instruct employees to not discuss salaries. I was polite and nice, but I’m sure you can imagine that my managers did not consider my politeness to be beneficial given that I had caught them giving unlawful advice.

                          If you want to be assertive, learn when employers cannot retaliate against employees. I have written confident letters to CEOs, asking them to dissolve their PACs and stop interfering in democracy. This is safe because it is illegal for employers to directly retaliate; federal election laws protect such opinions.

                          It is true that such employers can find pretexts for dismissal later, but the truth is that I don’t want to be employed by folks who routinely break labor or election laws.

                          1. 12

                            It is true that such employers can find pretexts for dismissal later, but the truth is that I don’t want to be employed by folks who routinely break labor or election laws.

                            This is one of the best pieces of advice that a young tech worker can receive, and I want to second this a million times, and not just with regard to PACs and federal election laws. Just a few other examples:

                            • Don’t cope with a toxic workplace, leave and find a place where you won’t have to sacrifice 16 hours a day to make it through the other 8.
                            • Don’t “cope with difficult managers”, to quote one of the worst LinkedIn posts I’ve seen. Help them get their shit together (that’s basic human decency, yes, if they’re going through a tough patch and unwittingly taking it out on others, by all means lend a hand if you can) but if they don’t, leave the team, or leave the company and don’t sugar coat it in the exit interview (edit: but obviously be nice about it!). Let the higher-ups figure out how they’ll meet their quarterly objectives with nobody other than the “difficult managers” that nobody wants to work with and the developers who can’t find another job.
                            • Don’t tolerate shabby workplace health and safety conditions any more than companies tolerate shabby employee work.
                            • Don’t tolerate illegal workplace regulations and actions (including things like not discussing your salary) any more than companies tolerate employees’ illegal behaviour.

                            Everyone who drank the recruiting/HR Kool-Aid blabbers about missing opportunities when they hear this but it’s all bullshit, there are no opportunities worth taking in companies like these. Do you really think you’ll have a successful career building amazing things and get rich working in a company that can’t even get its people to not throw tantrums like a ten year-old – or, worse, rewards people who do? In a company that’s so screwed up that even people who don’t work there anymore have difficulty concentrating at work? In a company that will go to any lengths – including breaking the law! – to prevent you from negotiating a fair deal?

                            I mean yes, some people do get rich working for companies like these, but if you’re a smart, passionate programmer, why not get rich doing that instead of playing office politics? The sheer fact that there are more people getting treatment for anxiety and PTSD than people with senior management titles at these companies should be enough to realize that success in these places is a statistical anomaly, not something baked in their DNA.

                            Obviously, there are exceptions. By all means put up with all that if it pays your spouse’s cancer treatment or your mortgage or whatever. But don’t believe the people who tell you there’s no other way to success. It’s no coincidence that most of the people who tell you that are recruiters – people whose jobs literally depend on convincing other people to join their company, but have no means to enact substantial change so as to make that company more attractive.

                        1. 9

                          I had a similar experience: Android to iPhone, recently used a new Android and was pleasantly surprised. Even the low end Androids work way better than flagship phones from 2015 when I switched. But there’s a killer app in the Apple ecosystem for me: applications. Mail, Photos, Music, Notes, Calendar, Contacts, Files: all apps on iOS and applications on MacOS.

                          Google’s SPAs don’t cut if for me. I don’t necessarily use offline access, but I need to open an application without enormous first load times and more load times after backgrounding for a few minutes. Apple Photos in particular demolishes the Google Photos experience purely by having the photos stored locally, especially if I’m away from my gigabit home internet.

                          1. 4

                            Yeah, the Apple built in apps are just so good. The notes app alone is such an amazing information capture system. It just sucks that it’s such a pain to develop for it unless you pay. Also apparently my Flutter development efforts are futile on iOS because I use an M1 macbook and cocoapods apparently doesn’t work on M1.

                            1. 3

                              I switched off iOS a long time ago, so I may not be up to date on the Notes app — when I last used it, it was fairly bare-bones. What makes it better than say, Google Keep?

                              1. 4

                                They’ve added a lot to it in the meantime, it’s basically a full OneNote competitor now. I have several years of daily notes in it. The real killer feature is how it integrates into iMessage and the like so you can share notes with people.

                                1. 1

                                  And even more improvements are coming this fall in iOS/iPadOS 15 and Monterey - hashtags for note tagging support, ability to tag/mention people in notes and the new omnipresent quick note interface, all of those are amazing additions that are well worth the upgrade. Can’t wait for the stable versions to ship in September.

                                  1. 1

                                    Can you read/edit those notes via a non-macOS computer? I noticed that if I can only use it on the phone it’s 100% useless to me.

                                    1. 2

                                      You can use iCloud web yeah, but it’s kinda crap. I only really use the web version to read things.

                              2. 4

                                Apple Photos in particular demolishes the Google Photos experience purely by having the photos stored locally, especially if I’m away from my gigabit home internet.

                                If you use iCloud, Photos on iOS will offload older pictures to it and fetch them only when needed. That’s a killer feature too imho has you never need to care if this is local or not, or to manage your space.

                                1. 2

                                  I too moved from Android to iPhone. But google photos is one of the apps I kept. A lot of fun features in it, and I can share photos with friends and family regardless of their platform.

                                  1. 1

                                    The killer feature of Google Photos for me is the expansive timeline stretching back multiple devices. First load isn’t a major concern for me because I’m just going to use the scroll bar to scrub back to 2011, anyway.

                                  1. 2

                                    I like the illustration on page 6. The cat and mouse chase between better hardware and bloated software. :)

                                    1. 1

                                      I have a hard time figuring out how to get matrix setup and working. Like what the backend and frontend are and how they work. Am I not understanding what it is?

                                      1. 10

                                        TL;DR: If you want to try it out, download the Element client and let it walk you through making an account.

                                        You’ll have to choose a Matrix homeserver (like an email provider). If you won’t use it that frequently, the free matrix.org homeserver is good but slow. For more serious use, consider a subscription to Element Matrix Services, where they host a homeserver for you. Or you can try to self-host synapse. I wouldn’t.

                                        Other homeservers are being developed right now (Conduit is pretty cool). But none are ready for production just yet. And unfortunately the choice of homeserver is still important because your account will be tied to it. In the future, the “multi-homed accounts” feature will make this initial choice less important (hopefully).


                                        There are two basic components to understand if you’re just getting into Matrix, and the two components are best understood as an analog to email, which is really the only popular federated protocol today.

                                        There’s the Matrix homeserver, which is like your email provider. It’s where the messages and account information are stored. It’s what actually takes care of sending and receiving your messages. It’s where you sign up. Multiple people can have an account on the same homeserver. Synapse is the most popular homeserver right now, it’s developed by the team that founded Matrix, and it’s considered to be slow (Python) and is slated to be replaced.

                                        Then there’s Matrix clients. Just like email, Matrix is standardized. You can use any email client to get/send your Gmail, and you can use any Matrix client to get/send Matrix messages. Element is the most popular Matrix client (again made by the team that created Matrix). It’s the most feature-complete by far. It’s written in Electron, so it’s bloated. But it works fairly well.

                                        1. 3

                                          I wouldn’t.

                                          Can you elaborate ? We use a synapse server at work and it works.

                                          1. 1

                                            I should have been clearer. I meant that I don’t advise trying to self-host the homeserver at all. Self-hosting anything is a ton of work if done properly. Timely security updates, migrations, frequent (and tested) backups, and reliability all come to mind as things I personally don’t want to have to worry about. Element Matrix Services seems like a good deal for just a few people.

                                            1. 3

                                              But these challanges aren’t at all Synapse-specific, are they? Updates. migrations and proper backups are something you have to do with any server that you self-host. And after running a homeserver for a few years, the only migration I ever had to do is from an older to a newer PostgreSQL version by simply dumping the whole database and reading it back in. All schema migrations are done automatically by Synapse and I never had any problems with that. Hosting a Matrix server with Synapse is so easy if you compare it e.g. to hosting your own email server. And Synapse really is battle-tested because it’s dogfooded at the huge matrix.org homeserver instance.

                                              1. 1

                                                No they’re definitely not specific to Synapse. That was pretty much my point.

                                                And I know Synapse has put a ton of work into being easy to deploy. But I still won’t ever recommend managing infrastructure to anyone. It’s awesome that Synapse makes it as easy as possible for people like us to self-host it, but $5/month is probably well worth the lack of headache for most people.

                                          2. 2

                                            As far as I can tell, none of the homeserver implementations are ready for self-hosting – unless you disable federation, and then what’s the point?

                                            1. 3

                                              I’m not sure where you’re getting that impression. I’m hosting two different Synapse instances myself. I just update them when new releases come out; it’s been relatively painless.

                                              1. 1

                                                Can you please give a reason why you don’t think Synapse is ready for self-hosting? I’ve been doing it for years with enabled federation and I never had any serious problems.

                                                1. 1

                                                  Sure. I’ve heard again and again that if you enable federation on Synapse and someone joins a large room, the server bogs down and starts chewing through resources. Has that changed?

                                                  Also note that I’d be running it on an old laptop or a raspberry pi, just like I would run any chat server – IRC, Jabber, etc.

                                            2. 1

                                              .. I mean, probably? What exactly are you struggling with?

                                              1. 2

                                                Uh oh, now I feel even dumber. The main website has information about something called Synapse and there is “element” which is a frontend I believe, but how do you install a matrix server and start using it?

                                                1. 13

                                                  My attempt at clarification:

                                                  • Matrix is a protocol for a federated database, currently primarily used for chat
                                                  • Synapse is the reference home server (dendrite, conduit, construct etc. are other alternatives)
                                                  • Element is the reference client (there are versions of element for the web (electron), android and ios)
                                                  • A user account is (currently) local to a home server
                                                  • A chat room is federated and not located on a specific home server. The state is shared across home servers of all users that have joined the room.
                                                  • There are P2P tests where the client and home server are bundled together on e.g. a mobile phone
                                                  • Spaces are a way to organize rooms. Spaces are just a special case of a room and can include other rooms and spaces.
                                                  1. 4

                                                    Thank you! That clarifies a lot. I was stuck thinking Matrix is the server. So, Matrix is a protocol for a federated database, that’s very interesting and cool.

                                                    1. 1

                                                      Is it legitimate for me, as a user rather than someone who’s interested in the infrastructure, to just think of Matrix being like a finer-grained version of IRC, where instead of (mainly) a few big networks there are more smaller networks and instead of joining e.g. #linux on freenode, I’d join e.g. #linux:somewhere …

                                                      Would I now discover ‘rooms’ by starting from a project’s website, for example, rather than just joining some set of federated servers and looking for rooms with appropriate names?

                                                      I just searched for ‘linux room matrix’ and the top hit was an Arch Linux room #archlinux:archlinux.org

                                                      (I don’t really want to join a general Linux room - just using it as an example)

                                                      1. 3

                                                        Well, generally NO. Most all matrix home servers are all joined together via the federated protocol. So if you join #archlinux:archlinux.org on homeserver A, and your BFF uses homeserver B, you will still see each other and communicate with each other in that room like if you were both on homeserver A.

                                                        One COULD create a non-federated home server, but that’s not the typical use case, and the reasons to do so would be odd. If you are doing for example a chat server for internal chat @ $WORK, using Matrix is probably a terrible idea. Zulip, Mattermost, etc are all better solutions for that use-case.

                                                        1. 2

                                                          Discovering rooms is currently a bit problematic, as room directories are per server. But a client can query room directories from any server (that allows public queries). Spaces will probably help a lot with room discovery, as they can form deep hierarchies.

                                                      2. 8

                                                        I did a video to try to explain it last year (which i should update, but it’s still usable, even if it calls Element by its old name of Riot): https://www.youtube.com/watch?v=dDddKmdLEdg

                                                        1. 3

                                                          I recommend starting off by just creating an account at app.element.io and using the default homeserver so you don’t have to host anything youself

                                                          1. 2

                                                            Synapse is a server implementation and Element is one of the clients.

                                                            Installing Synapse: https://matrix.org/docs/guides/installing-synapse

                                                            1. 1

                                                              Uh oh, now I feel even dumber.

                                                              Don’t. The Matrix project is pretty terrible at both naming and the new user experience.

                                                              1. 2

                                                                Not trying to hate on them or anything. @ptman ‘s comment above really helped.

                                                                1. 1

                                                                  Yeah, I wish them every success - but what I guess I’ll call the introductory surface of the system is fairly painful.

                                                        1. 2

                                                          What really annoys me is how everybody has gone over to writing stuff like “25 hours ago” instead of the time and date of the comment or post. Am I the only one?

                                                          1. 1

                                                            At least this site (and me, where appropriate) has the full timestamp (in RFC 3339 format) visible as a tooltip if you hover over it.

                                                            I’m kinda torn, I prefer relative times up until ~1 month but absolute datetimes after that.

                                                          1. 1

                                                            Assuming you already have a network and you’re not in the network recruiting process (and that your goal is social and not technical here), I would suggest something simple like a TiddlyWiki. Dead simple to setup and host, and unless your neighborhood is extremely large, very easy to get going. It might not have the ACLs/moderator tools you’re looking for though.

                                                            1. 1

                                                              Yea, the network is there. So it’s about writing down information about what exists in the community. Sports clubs, shops, cultural events, hiking possibilities and such. TiddlyWiki looks nice. I’ll give it a look. The navigation was a little confusing to begin with tough.

                                                              1. 2

                                                                Navigation is a bit weird before you have a few Tiddlers made, but once you do I found it becoming easier. Happy to share tips if you’d like.

                                                            1. 3

                                                              Nextcloud may be a good solution. It has a calendar and a WYSIWYG document editor. It seems to have a graphical installer too, or a Docker image that uses SQLite by default.

                                                              I couldn’t find a marketplace app, though I guess you could make one if you wanted to.

                                                              I haven’t explored it much to be honest, and wouldn’t host it myself as I’m not the target audience, but it seems to cover most of what you need.

                                                              1. 2

                                                                I suppose the visitors will have to make accounts in order to see those documents then? I’d prefer the static pages/documents to be publicly open. But thanks!

                                                              1. 5

                                                                I’m always referring back to awesome self-hosting https://github.com/awesome-selfhosted/awesome-selfhosted There is many collaborative software platforms to check-out.

                                                                1. 1

                                                                  Thank you. That’s a great list. I haven’t found my poison in there yet, but I’ll keep it for future reference!

                                                                1. 7

                                                                  How about MediaWiki - https://www.mediawiki.org? The pitch would be simple, “it’s like Wikipedia, but for our neighbourhood!”

                                                                  There are calendar plugins available too: https://www.mediawiki.org/wiki/Calendars

                                                                  Don’t listen to the folks advising you use Facebook ;-P @james is right, in that if you need to get something up fast with maximum reach (both of which I took to be implied by “doing the thing”) then FB is the go.

                                                                  But I submit that if you’re not dealing with an emergency (“rapid startup of several corona mutual aid groups”), that doesn’t matter.

                                                                  1. 2

                                                                    Thanks. Setting up MediaWiki on my homeserver was really easy and fast. Just had to run the docker image. But MediaWiki is the wiki I feel have to many bells and whistles and could potentially be a little intimidating for non-techies. So perhaps that will be my fallback solution if nothing else works :)

                                                                    1. 3

                                                                      MediaWiki has made significant improvements in ease of use; the WYSIWYG editor is now bundled and has no additional setup other than turning it on.

                                                                      1. 1

                                                                        Out of curiosity, what did you wind up using? I’m thinking of doing something similar for my neighbourhood and would love to hear how it went for you.

                                                                  1. 14

                                                                    The problem with social software is getting people to use it. Do you have enough people interested in such a thing, when most are using Facebook?

                                                                    1. 2

                                                                      This. We’re in this that point of timeline where you won’t convince “normies” to use your solutions with any sort of arguments, and you’ll probably also make them angry for suggesting anything not-FAANG.

                                                                      1. 14

                                                                        I’m not convinced this is true. Things like nextdoor have taken off for instance.

                                                                        I think the problem is that most “solutions” suck, except for the big tech platforms. They are ugly, poorly thought out UIs, designed for “expert” users (thereby making it very hard for new users), have visible lag, and so on and so forth.

                                                                        1. 4

                                                                          I don’t think it’s helpful separating “normies” from technical folks. FOSS software is known for many things, but user-friendly and intuitive are not two of them.

                                                                          1. 2

                                                                            I think people get caught up in a fantasy of running services; being a provider, depended upon.

                                                                          2. 1

                                                                            As I replied to james, there’s that part about static information about the area that is missing. I believe (if I know my neighbours) that a page providing this would be attractive. I could even announce updates on Facebook :)

                                                                          1. 18

                                                                            If doing the thing is more important than the software or principle of it, you need to start with a Facebook group. If it’s a hobby project for you and the social value isn’t actually important or a clear need right now, you can safely ignore me. Once you have momentum/users on FB you have a reason and common communication platform to transition people to something else. If you don’t start with an FB group you’ll have ~90% less users and 10X admin overhead. (Hat I’m wearing here is being involved in rapid startup of several corona mutual aid groups at start of corona last year and using several local FB groups. Corona mutual aid was all Facebook groups (and still is mostly), then external infrastructure such as mapping and wikis got built out later as it was needed.)

                                                                            1. 2

                                                                              Thanks for the reply. The neighbourhood already has multiple FB groups for marketplace, events and such. My idea was to create a local place where static information about the area is. Shops, sports clubs and so on. I believe this neighbourhood is likely to start using such a site. And then again it would be nice to be able to see upcoming events on that same page so you don’t have to go to FB for that. So perhaps, if I listen to you, I would be fine with just a wiki and leave events and markeplace for facebook for now… Thanks!

                                                                            1. 4

                                                                              Interesting. I was unaware that Firefox uses Google Analytics!

                                                                              1. 9

                                                                                last I checked, their contract with Google specifically spells out google can’t use the information collected for anything.

                                                                                Not that I’m very happy about this, but at least Mozilla is trying to keep Google honest.

                                                                                1. 4

                                                                                  then why are they collecting it

                                                                                  1. 4

                                                                                    I don’t understand the question.

                                                                                    Mozilla can obviously look at the information it collects, but the contract with Google says Google can’t look at it.

                                                                                    I assume they honour that contract, but I have no idea.

                                                                                    What Mozilla is doing with the information collected, I also don’t really know. I assume they want to know how many active users they have, versions in use, etc, etc.

                                                                                    1. 1

                                                                                      no worries, you answered it

                                                                                2. 7

                                                                                  This shocked me as well, but there is some subtlety here. The site says “Firefox tracks users with Google Analytics” and “Firefox has been integrated with … “Google Analytics””. Exactly what’s happening is that https://mozilla.org webpages use Google Analytics (with the extra no-sharing option that Mozilla pushed Google to add, as mentioned in another comment).

                                                                                  Like this or not, it’s a bit different to all Firefox users’ browsing being integrated with GA, which is what I originally read the site as saying.

                                                                                  (I don’t know if any automatic URL requests that firefox makes to mozilla.org backends end up with GA, but I can’t find anyone saying they do and I’d be surprised if they do as my understanding is GA only runs on webpages not backends.)

                                                                                1. 19

                                                                                  I just want to point out that planting trees is the worst kind of CO2 compensation.

                                                                                  • Young trees don’t absorb as much CO2 as old ones
                                                                                  • Planting trees does not actually change the fact that we are emitting too much CO2.
                                                                                  • There are not a general solution in the sense that everyone could just compensate with trees and everything is fine

                                                                                  It is better to compensate via an investment in green and sustainable projects

                                                                                  1. 32

                                                                                    I just want to point out that planting trees is the worst kind of CO2 compensation.

                                                                                    The benefits of the tree are for tomorrow not today and aren’t purely for CO2 sequestration. You also reduce/mitigate things like desertification, help change local climate, provide future nesting area for birds etc…

                                                                                    Don’t let a good thing like planting trees stop you from doing so because it alone won’t fix CO2. We need multi pronged approaches. And given how many trees are dying now due to fires, I can’t get behind not trying to plant more to fix the after effects of us not dealing with CO2 in the atmosphere.

                                                                                    1. 10

                                                                                      I disagree. While planting a few trees won’t have an immediate effect, it has a few nice properties:

                                                                                      1. It’s easy: provided you have a sapling and a shovel you can do it. Or even easier, donate to something like Trees for all and have somebody else do it at a much larger scale.
                                                                                      2. We can do it today
                                                                                      3. It benefits nature as a whole, e.g. by providing nesting space for birds
                                                                                      4. It’s probably the least prone to corruption, misuse of funds, or some other form of “damage” to others.
                                                                                      5. Provided they are taken care for (or just left alone), a forest can last for more or less forever (at least here in The Netherlands where we don’t have massive wildfires and what not). I think wind turbines only last 2-3 decades or so.

                                                                                      Of course there are far more effective ways, such as banning cars and massive investments in public transportation. But these methods tend to be very political, take years to complete, usually are horribly expensive, and may be prone to misuse.

                                                                                      A random recent example: a wind park was built in The Netherlands, with enough energy to provide 300k-something homes with electricity. The Dutch government invested something like €600 million, with the promise that locals would get (IIRC) a discount. This would be a huge benefit for the environment, as a few birds flying into a wind turbine is worth saving tons of CO2.

                                                                                      Except it all went to a (newly built) data centre from Microsoft. All of it. This in spite of The Netherlands lagging behind massively when it comes to adopting renewable energy sources.

                                                                                      For reference, that €600 million would’ve been enough for roughly 96 000 trees according to the Trees for All website. The exact amount of CO2 this can store is hard to calculate. A statistic I found on a few websites is roughly 20KG of CO2 per tree per year. At 96 000 trees that would translate to 1 920 000 KG (2 116 tons) of CO2 per year.

                                                                                      Of course it would’ve been even better to just give the wind park to citizens as originally intended, but this is just an example to show that planting trees can be very effective.

                                                                                      1. 2

                                                                                        Provided they are taken care for (or just left alone), a forest can last for more or less forever (at least here in The Netherlands where we don’t have massive wildfires and what not). I think wind turbines only last 2-3 decades or so.

                                                                                        Not only in the netherlands, but pretty much everywhere. While still natural events, most present days wildfires, or at least their scale, are very much a result of replacing naturally occurring forest with vast areas of monoculture of trees for wood production purposes. Covering thousands of acres with pines, spruces and eucalyptus in places like south europe, south africa or california is essentially turning land into a gigantic fuse. Before man-made forests, such trees had to share the space with leafy trees such as oak, chestnut, acer, birch, cherry, etc. These are not only less flammable themselves, they also provide thicker shadow, retaining more humidity and allow for less flammable smaller plants to grow below their canopy.

                                                                                        You also forgot a very important plus for trees: their impact on human life quality. Few things are more therapeutic than taking a walk on a quite forest. And even in the city or indoors, humans naturally need proximity with nature.

                                                                                      2. 9

                                                                                        But it doesn’t hurt, right? If we would plant as much as we cut, we’d still help a lot – or this wouldn’t hold?

                                                                                        1. 5

                                                                                          Yes, a small amount. See https://savingnature.com/offset-your-carbon-footprint-carbon-calculator/, then multiply the results by a few billion people per year.

                                                                                        2. 2

                                                                                          Not only that, but most of these “we plant trees for you” operations are planting tree farms that would have been planted anyways. They’re also monocultures that don’t support ecosystems the way a real forest would, but I think people get this image of a proper forest when they hear about these things—and it ain’t so.

                                                                                          1. 2

                                                                                            It’s not the best but it’s certainly not the worst. It ranks higher in CO2 reduction than buying a carbon offset for example.

                                                                                            What most companies don’t realise is that it’s not enough to be carbon neutral, they need to be carbon negative and actively reduce the level of CO2 rather than maintain it. The heating effects of elevated CO2 are cumulative.

                                                                                            1. 2

                                                                                              Thanks I didn’t know this.

                                                                                              1. 15

                                                                                                Edit: this is in reply to GP.

                                                                                                Obviously, the need to plant trees arises from the fact that we have destroyed huge areas of forest and woodland already and should try to re-establish the balance of co2 absorption.

                                                                                                Literally every single old tree has been a young tree once. You need to plant trees and let them grow old. By your logic there could never be any benifit of planting a tree, carbon wise. You don’t need to cut down an old tree to plant a new one. An old tree plus a young tree abdorve more co2 than the old one alone. I am not sure what you are trying to point out with your first bullet point.

                                                                                                Although I absolutely agree with your second and third point. And that applies to most modern “solutions”. There is this idea that we just switch do PV panels, or electric cars or plant a bunch of trees and everything is fine. While the problem is much more deep rooted in the very concept of our current modern society.

                                                                                                1. 5

                                                                                                  I totally agree, but the conservation and planting of trees and the compensation of everyone‘s CO2 emissions are two different problems in my opinion. I cant just hit a stranger in the face and pay the medical bills.

                                                                                                  1. 4

                                                                                                    Yes, I think it’s clear that both these problems should be worked on. Too much CO2, and too little trees.

                                                                                              2. 1

                                                                                                We have too many trees here. You can adopt some of them

                                                                                              1. 8

                                                                                                I was hoping to read a security review of Bitwarden. Does that exists?

                                                                                                1. 9

                                                                                                  Here’s an audit from 2020, and in that post is a link to one from 2018 [PDF].

                                                                                                  1. 4

                                                                                                    I do not have the knowledge to write one. But I know someone who does. I will contact him and see if he is interested in writing a review.

                                                                                                    1. 2

                                                                                                      That would be very interesting. Are my passwords safe on my own hosted Bitwarden server?

                                                                                                      1. 3

                                                                                                        My current approach is to run bitwarden on my local network and setup the docker networking so that the bitwarden container doesn’t have access to the internet. If I wanted to expose it to the public internet, I’d connect the container to a VPN, not rely on the authentication (since I’m running the bitwarden_rs fork).

                                                                                                  1. 1

                                                                                                    What can we do and who is doing it?

                                                                                                    1. 2

                                                                                                      There’s obviously Tor, I2P, and FreeNet. They’re about as anonymous as you can get.

                                                                                                      The problem is that, while they can hide what you’re after, it’s harder to hide that you’re using an overly network at all. The best you can do is keep the relay that you use to join the network secret. In the limit, this means building a pure F2F network, which is kind of insular.

                                                                                                    1. 10

                                                                                                      This has been discussed before, but I was wondering if anything has changed.

                                                                                                      Several difficulties and problems were raised … have they been addressed?

                                                                                                      Does anyone use it?

                                                                                                      1. 11

                                                                                                        I’ve been there for close to 2 years, and have tried to build my own SSB server from scratch (in a non-JS language). Feel free to ask any questions. For starters:

                                                                                                        • The low level protocol (transport encryption, RPC and discovery) is very well documented.

                                                                                                        • The application level protocol has almost no documentation, and what’s there is outdated. You really have to resort to reverse engineer behaviour from existing applications, or reading other’s code.

                                                                                                        • Replication/gossip mechanism is very inefficient, which leads to clients (especially mobile ones) spending a lot of time during the initial sync. There’s a newer gossip protocol which fixes some of these problems, but has zero documentation, and there’s only one implementation (in JS). There are no plans to port it to other languages since there’s a lot of tricky edge cases in there.

                                                                                                        • Yes, the JSON encoding was a mistake. There’s a new format using CBOR, but it’s still a few ways off in terms of mainstream usage in the network.

                                                                                                        • There are questionable decisions at the application level. For example, anyone can assign you new profile pictures or visible names, which can–and has–lead to bullying/name-calling.

                                                                                                        In terms of community, it’s mostly tech-centric, most discussions are either about SSB itself, or related protocols. The overall spirit is positive, focusing on sustainable living, gardening, off-grid, etc.

                                                                                                        However, the community is very small. This can get tiring, considering that most clients will show any replies to threads you follow at the top of your timeline (you will see the same 3 to 5 people all the time).

                                                                                                        1. 4

                                                                                                          I’ve also built a partial SSB implementation, in C++. I found a C port of the CLI tool (in an obscure Git repo hosted in SSB), which helped immeasurably with the secure handshake and packet codec. I used Couchbase Lite [of which I’m the architect] as the database. This proved a lot faster than the JS data store, but I still found that pulling all the subscribed content from one pub (on which I’m following a handful of accounts) resulted in a 600MB database. It would have helped if the protocol had an option to pull only messages back to a certain date.

                                                                                                          I’d love to know more about the new protocol, but not if the only way is to decipher a JS codebase.

                                                                                                          It’s a shame they’re so JS-centric. That’s a serious problem for iOS, which has security restrictions that disallow JITs outside of a web browser. Not to mention embedded systems. (And on a personal level I dislike doing serious programming in JS; it feels like sculpting in Jell-O.)

                                                                                                          1. 3

                                                                                                            There are two C implementations of the low level protocol: one for the secret handshake and one for the boxstream (transport encryption). There’s also some integration tests that you can run against your implementation to validate that everything works.

                                                                                                            As for the new replication protocol: the new CBOR format includes “off-chain” contents, which means that the actual log only contains a hash of the post content. This should make initial sync much faster, since clients only fetch the chain of hashes, without downloading anything else.

                                                                                                            Messages can also be downloaded out of order, so you only download what you want, if you have the hash for it. As most things, though, the only implementation is in JS.

                                                                                                            As for the database, I planned to use SQLite, but never got far enough to test that. I’m unconvinced that the log is a good abstraction for the kind of apps that SSB is used right now (social media). There are future plans to plug more applications on top of the log replication, but that’s in the long term, while the current use-cases are suffering from it.

                                                                                                            Edit: wanted to say, though, that for me the biggest block when developing an SSB implementation is the lack of documentation w.r.t. the application-level protocol, and forcing you to develop everything on top of the log abstraction. The JSON formatting can be painful, but solved via forking some json library and doing some changes (hacky, but it works).

                                                                                                          2. 1

                                                                                                            Yes, the JSON encoding was a mistake.

                                                                                                            Was JSON not fast enough?

                                                                                                            1. 4

                                                                                                              It’s not about JSON per-se, but more about how message signing works. In SSB, every post is represented as a JSON blob signed with your publick key, and it expects other clients to validate this, as well as produce valid JSON messages.

                                                                                                              The spec goes over the requirements of a valid message, as well as the steps to compute a valid signature. Unfortunately, it assumes things like key order (which the official JSON spec doesn’t say anything about), indentiation, spacing, etc. (This all goes back to how the V8 engine implements JSON.stringify()). This adds a lot of complexity when implementing SSB in another language, as most JSON libraries won’t care about specific formatting when printing, and specifically the key order requirement makes it quite complicated.

                                                                                                              All in all, it’s not the end of the world, but it adds enough friction to make SSB pretty dependend on the “blessed” javascript implementation.

                                                                                                          3. 5

                                                                                                            I use it regularly. Why..? After being a heavy social media user on the usual platforms, I’ve pretty much removed myself and don’t participate, but Scuttlebutt is the exception because it’s a fun place to be. Nothing more, nothing less.

                                                                                                            1. 3

                                                                                                              What difficulties and problems were raised?

                                                                                                              1. 12

                                                                                                                There’s two big obstacles I’ve seen that seem specific to Scuttlebutt:

                                                                                                                • There’s no easy way to share identities across devices. If you want to use Scuttlebutt on your computer and your phone, they’ll be separate accounts.

                                                                                                                • The protocol is built around an append-only log, which I’m not convinced is a good principle for any social network. Inadvertent mistakes are forever (eg. I post an unboxing photo that has my unredacted invoice visible; I paste an embarrassing link by accident).

                                                                                                                  It also seems like you could grief pub servers (the Scuttlebutt “hub nodes” that federate content more widely). What happens if someone posts a bunch of illegal content to the pub? As I understand it, all the pub users will pull that content down. You might be able to blacklist certain posts in your client, and you can block users, but their content is still on your device. (Bitcoin has faced similar problems.)

                                                                                                                1. 2

                                                                                                                  Your objection to log storage is valid, but there are ways around it. The data format could have ways to redact posts out of the log while leaving the overall integrity intact; in fact all revisions of a post other than the latest one could be redacted.

                                                                                                                  Of course the redactions need to be propagated, and there’s no guarantee every copy will be redacted, but that’s an intrinsic problem with most P2P protocols, since distributed caching/replication is so important for availability.

                                                                                                                  1. 1

                                                                                                                    Good points.

                                                                                                                    Also ironically where Facebook could have a chance to differentiate themselves, but chose to go in almost the exact different direction:

                                                                                                                    • “with federated networking you are trusting each and every host that your host ever federated with to delete a post, with us, once you click delete it is gone. Worldwide. Same with sharing: if you share something with your close friends it stays there. With a federated network it depends on every host around the globe sticking implementing the rules correctly and sticking to the rules.”

                                                                                                                    • fortunately IMO Facebook messed up massively early on and now everyone in tech now they are fundamentally untrustworthy.

                                                                                                                  2. 8

                                                                                                                    The main problem I saw when I looked into it was that it was a single program rather than a well-defined protocol that anyone in the ecosystem could implement.

                                                                                                                    This might have changed by now, but (for instance) there were aspects baked into the protocol that fundamentally prevented you from building a compatible client unless you used a JSON serializer with the exact same behavior as node.js, because the cryptographic identity of a post was based on a checksum of the output of that particular serializer rather than some inherent property of the post. An easy mistake to make, but one with far-reaching consequences.

                                                                                                                    1. 6

                                                                                                                      That’s my issue as well. It relies heavily on the interaction of a few dozen NodeJS repos. Different frontends all rely on the same backend code, making it not-that-diverse.

                                                                                                                      Also, while the protocol itself is well documented and designed, there are some obvious shortcomings. The protocol relies on hashes of pretty-printed JSON. The last time I checked for documentation on HOW to pretty-print that json, it was documented as “like v8 does it”. Tell you - it’s REALLY hard to format JSON like V8 JSON.format(x, true) does. Especially floating point numbers.

                                                                                                                      Now this could easily be fixed by changing the protocol from hash-of-pretty-printed-json-subobject to hash-of-blob. ({"data": "{\"foo\" 42}", "hash": ...} vs. {"data": {"foo": 42}, hash: ...} But you can’t do that without breaking compatibility. Worse, relying on hash-chains, you need to implement the old behaviour to be able to verify old hash chains.

                                                                                                                      1. 5

                                                                                                                        That’s my top issue too. Which is sad, because there’s so much prior art on canonicalizing JSON, going back to 2010 or so.

                                                                                                                        The spec is fine, but limited. It doesn’t cover all of the interactions between peers; there are plenty of messages, and properties in the schema, that aren’t documented.

                                                                                                                        A lot of the discussion and information about the protocol takes place on Scuttlebutt itself, meaning it’s (AFAICT) invisible to search engines, and accessible over HTTP only through some flaky gateways that often time out.

                                                                                                                        The main client is (like everything else) written in JS, so it’s a big Electron app, and in my experience very slow and resource hungry. I only joined two pubs and followed a handful of people and topics, but every time I fire up the app, it starts a frenzy of downloading and database indexing that lasts a long time. (They use a custom log-based DB engine written in JS.)

                                                                                                                        Part of the slowness must be because when you join a pub you’re implicitly following every user of that pub, and I believe all of the IDs they’re following. So there’s kind of an explosion of data that it pulls in indiscriminately to replicate the social graph and content.

                                                                                                                      2. 4

                                                                                                                        Reading the previous discussions shows a degree of frustration and scepticism. I’m sure it’s changed, and many of the questions will have been addressed, but the previous discussions are unconvincing.

                                                                                                                        Here are some links to some of them … it’s worth reading them in context:

                                                                                                                        https://lobste.rs/s/rgce6h/manyverse_mobile_scuttlebutt_client

                                                                                                                        https://lobste.rs/s/hncoad/secure_scuttlebutt

                                                                                                                        https://lobste.rs/s/l9vqm4/scuttlebutt_protocol_guide

                                                                                                                        https://lobste.rs/s/xe2z2r/scuttlebutt_off_grid_social_network

                                                                                                                      3. 2

                                                                                                                        I’m one of the core developers. Happy to answer any questions.

                                                                                                                        1. 1

                                                                                                                          Despite the fact it’s in a ‘junkyard’, I believe this issue remains unresolved, which I believe effectively means that:

                                                                                                                          1. scuttlebutt is not cross platform and only works on x86
                                                                                                                          2. It’s difficult to implement scuttlebutt libraries and clients in other languages

                                                                                                                          Limiting development to people who like nodejs, and limiting usage to x86 devices (when it seems like the sort of concept that should work well with mobile devices) massively reduces its appeal.

                                                                                                                          I would be happy to find that I’m wrong.

                                                                                                                          1. 3

                                                                                                                            You’re off on this one. I’m running SSB on ARM64 just fine, also many pubs are actually just raspberry pis on some closet.

                                                                                                                            I is still difficult to implement SSB in other languages mostly because of the amount of work than technical challenges. The mistakes of the past are well understood at this point even if not fixed. At the moment there are 2 Rust based implementations and one based in Go. IIRC there is also implementations in Elixir and Haskell but I am not sure how far they are. I’ve toyed with a client mixing C and Lua (just a toy prototype but it worked).

                                                                                                                            1. 2

                                                                                                                              It definitely didn’t work on arm last time I tried, so it’s good to hear they’re making some progress. It was the prototype Haskell implementation which pointed to that issue as a blocker: it looks like it hasn’t been updated since, so probably doesn’t work.

                                                                                                                              1. 2

                                                                                                                                I know it is not what you’re looking for but the JS implementation works fine under Linux/ARM64, which is also how the mobile apps are running.

                                                                                                                                My daily driver is a Surface Pro X with an ARM64 CPU. I’ve run go-ssb as native ARM32 binary and the Electron based client apps under win32 x86-32 bits emulation. The reason for it is just that for the love of all that is sacred I can’t find out how to build the native nodejs modules as ARM64 binaries.

                                                                                                                              2. 1

                                                                                                                                Could you link to the Haskell implementation? I’d be interested in working on that!

                                                                                                                          1. 1

                                                                                                                            Slightly off topic, but has anybody used tailscale? How is it better than setting up your own cjdns or Yggdrasil network if you’re a techy?

                                                                                                                            1. 3

                                                                                                                              Yes, I’m running it alongside a wireguard VPN that I hand-configure for devices to talk in a LAN-over-WANs setup. (Spoke, with my home router being the hub.)

                                                                                                                              Tailscale is much easier to deploy, as it takes care of everything beyond “talk to x securely” which is what wireguard brings. No managing “you have IP .5, router has .254, phone gets .6, etc). Haven’t really made any use of Tailscale beyond “put everything on the same LAN so I can ssh to things” yet.

                                                                                                                              1. 1

                                                                                                                                Thanks. I’ll try it

                                                                                                                            1. 1

                                                                                                                              Why not run database as a service, like these big providers provide

                                                                                                                              1. 2

                                                                                                                                Seconded. The article mentions:

                                                                                                                                Unfortunately, the interesting parts of software are all about state. You don’t casually kill and start containers for your database. Again, you need the configuration manager.

                                                                                                                                So you’re going to run a configuration manager. The question, then, is whether you need Kubernetes as well?

                                                                                                                                Just push states out of your services and use what cloud providers offer. Message queues, database, object storage… Then your application will happily work on Kubernetes. Although, I recognize that you can also run applications that are stateful (other than databases) and you need to handle those too.

                                                                                                                                1. 2

                                                                                                                                  100% agree that until you reach scale (a large large scale) a database as a service is the best path forward. There’s so much that goes into running a production ready database that a service like RDS just takes off your plate.

                                                                                                                                  That said, I kow that some people have run into issues where RDS in particular just couldn’t handle the throughput (even working with AWS support). It was a few years ago, but I talked to someone who was running something like 500 TPS on Oracle and RDS just didn’t work out for them. But they tested and tried before moving to running their own database servers.