• Justin
    link
    fedilink
    English
    09 months ago

    Being able to find and read software documentation and knowing how to use the tools that automate software deployment are why SRE/devops/cloud guys get paid the big bucks.

    I definitely recommend synapse over dendrite or conduit btw. dendrite and conduit have a bunch of missing features, and my first attempt at dendrite server shat the bed with its NATS store and died. I definitely recommend Synapse for all matrix servers going forward.

    The .well-known entries I found were the hardest to test, since synapse doesn’t provide a web server for them, and Element throws a fit if you don’t have CORS set up exactly in the way it wants you to.

    I mostly have my matrix server working now, with bridges even. However, Element randomly logs itself out on a daily basis which is really frustrating :/

  • caseyweederman
    link
    fedilink
    English
    09 months ago

    Step one: use Dendrite instead.
    Step two: come back and help me set up my Dendrite instance, it’s definitely not easier.

    • @milicent_bystandr@lemm.ee
      link
      fedilink
      English
      09 months ago

      Step one: email must be much easier, I’ll just make an email server instead.

      Step two: screw this, I’m writing letters and posting them.

        • @AHemlocksLie@lemmy.zip
          link
          fedilink
          English
          09 months ago

          Running a server is very doable. There are packages to deploy and configure almost everything for you and removing a ton of headache.

          Getting your email recognized as not spam by the major providers is pretty much impossible. You need all sorts of stuff to help verify integrity including special DNS records and public identity keys, but even if you do everything right, your mail can very easily get black holed before it even reaches a user’s inbox because of stupid shit like someone abused your rented server’s IP years ago, and you can’t seem to get it off everyone’s lists.

          Email as a decentralized tool has effectively been ruined by spam and anti-spam measures. You’re effectively forced to use a provider because it’s near impossible to make your outgoing mail work as an individual. I think some of those anti-spam measures are anticompetitive, but I do think some are just desperate attempts to reduce the massive flow of spam.

          • @zrk@lemmy.world
            link
            fedilink
            English
            09 months ago

            It’s not impossible, many people I know and myself successfully self host their email. Yes it’s not trivial, and yes the ip reputation can be annoying to deal with (but it’s possible to cycle to another server to get another ip), but apart from that, if following the best practices (SPF, DKIM, DMARC, proper setup of the mailserver) once it’s set up it can run for years without issue.

            To set things straight, I’m not saying that it is easy, but it’s also not impossible, and only giving up will further contribute to centralized email provider monoculture.

            Not for everyone, but for those who can, I feel they should.

  • KillingTimeItself
    link
    fedilink
    English
    09 months ago

    this is just because it’s webhosted, anything that does anything on the web sucks and is terrible, everything else is actually so much better it’s fucking baffling to me.

    web 2.0 is dead to me. web 3.0 won’t get off of the ground, we need web 2 electric boogaloo

    • Presi300
      link
      fedilink
      English
      09 months ago

      2020 called, they want their opinion back I respectfully disagree

      • KillingTimeItself
        link
        fedilink
        English
        09 months ago

        2002 called*

        and yes, they do want their opinion back, because the internet fucking sucks.

        • Presi300
          link
          fedilink
          English
          09 months ago

          If you hate it so much… why are you on it atm?

          • KillingTimeItself
            link
            fedilink
            English
            09 months ago

            because there’s also a lot of good stuff on the internet. There was very little on the internet in 2002, and yet people still used it because it was cool. There is a shit ton of information on the internet now, most of which is garbage, and the rest is somewhere between mediocre, or decent, and some of it being genuinely good.

            If you hate living, why even bother living? It’s a question of the ages. What’s the point of living if there is no grander purpose? Surely it means nothing, right?

  • dantheclamman
    link
    fedilink
    English
    09 months ago

    I have to set literally everything up again on a new microSD for my Pi because the apt-get repositories no longer support the Raspbian version I’m on. I’m not mad; good for security to update, but I don’t have half a day free anytime soon for it.

  • @Decronym@lemmy.decronym.xyzB
    link
    fedilink
    English
    0
    edit-2
    9 months ago

    Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

    Fewer Letters More Letters
    DNS Domain Name Service/System
    HTTP Hypertext Transfer Protocol, the Web
    IP Internet Protocol
    SMTP Simple Mail Transfer Protocol

    [Thread #905 for this sub, first seen 3rd Aug 2024, 13:15] [FAQ] [Full list] [Contact] [Source code]

  • @h4lf8yte@lemmy.ml
    link
    fedilink
    English
    09 months ago

    But this is some Docker shit. For myself Docker always feels a little corporate. It’s just not very conventional with these multiline commands just to run a command inside a container. Especially the obligatory “-it” to fucking see anything. It’s not really straight forward. But if you get used to it and you can make a lot of aliases to use it more easily.

    • @corsicanguppy@lemmy.ca
      link
      fedilink
      English
      09 months ago

      Docker always feels a little corporate.

      I work in an ‘essential service’ environment for my main gig, where lots of checks and cross-checks need to exist. And it’s one that’s been under constant low-grade attack forever as it contains a LOT of tasty PII (personal info) and therefore has regs hammering it into shape. Docker cannot play here - and neither can Debian, actually, nor its derivatives - because it lacks the signed validation available in peer products sharing its space. As soon as the adults show up and notice a product with reduced validation is in place where a better one exists, the people owning that system have to write a life-cycle plan to upgrade, and it’s reviewed at an almost punitive frequency.

      So, if you’re saying it’s a little too Corporate, I’m thinking you mean ‘suits and power lunches’ and not ‘large scale management of crucial systems and essential data’. True?

  • riquisimo
    link
    fedilink
    English
    09 months ago

    This reminds me of when I sent someone a program in a zip folder. Windows now opens zip folders by default, and it looks just like any other folder.

    So of course they opened the zip and double clicked the exe, but everyone knows you can’t open an exe inside a zip folder (at least, if the exe depends on the folders and files around it). If you try to, windows will extract the exe into a temp space, but leave all the dependencies behind. So the exe promptly crashes.

    I didn’t think I needed to specify “you need to extract the contents of the zip folder first, then run the exe.” It feels like saying “you need to take the blender out of the box before you can use it. And not just the _base _ of the blender, you have to take out all the parts.

    Some things just feel so much like second nature that we forget.

    • @linearchaos@lemmy.world
      link
      fedilink
      English
      09 months ago

      One of the few things that Mac kind of got right. Every application is actually a deep tree with all kinds of crap all over the place but they never let the user see that.

    • @shimdidly@lemmy.world
      link
      fedilink
      English
      09 months ago

      I totally and completely blame Microsoft for this. They do so many other ridiculous things in the name of not confusing the average tech illiterate user.

      Clicking a Zip file and having it transparently open and treating it like a regular folder when it is not. This. THIS is borderline criminal.

        • @darklamer@lemmy.dbzer0.com
          link
          fedilink
          English
          09 months ago

          The operating system could mount it as a virtual drive, then all its contents could be used directly just like any regular folder.

          • @Appoxo@lemmy.dbzer0.com
            link
            fedilink
            English
            09 months ago

            Imo not really noob-user friendly.
            My proposal: Keep current behaviour and make a prompt if the user tries to run an executable. Prompt should be something like “You are trying to open an executable, would you like to extract the whole folder in the current directory?”. This way the user can still browse the zip with relative ease.
            Upside from Windows: We have only a handful of extensions unlike (afaik) Linux where everything can be made executable and be run.

            • @darklamer@lemmy.dbzer0.com
              link
              fedilink
              English
              09 months ago

              Imo not really noob-user friendly.

              In what way? It would make it entirely invisible that the archive file isn’t just a normal folder, it would be possible to use it just as if it were. What would be unfriendly about that?

        • riquisimo
          link
          fedilink
          English
          09 months ago

          Have a popup text line in explorer that says “you are browsing inside of a compressed file, you must extract the contents to use them” or something. The functionality is already there, when you go to “network” it says “network sharing and discovery is turned off, click here to turn it on”

    • @blind3rdeye@lemm.ee
      link
      fedilink
      English
      09 months ago

      In many ways, the silky-smooth convenience offered by modern computer software makes everything much harder to learn about and understand. For anyone that used zip files before this Windows feature, the problem is obvious - but for younger people it’s not obvious at all. Heck, a lot of people can’t even tell where or not a file is locally on their computer - let alone whether it is compressed in some other file.

    • @DarkCloud@lemmy.world
      link
      fedilink
      English
      09 months ago

      There should be instructions that range from beginner, where every little step is included as well as major details as to why - all the way up to expert, which are just a few sentences.

      • @nexussapphire@lemm.ee
        link
        fedilink
        English
        09 months ago

        Unless it’s a company, good luc…

        Hay, how would you like writing documentation for all these open source projects? We would be ever greatful, you could even put your name in the credits!

  • @Voroxpete@sh.itjust.works
    link
    fedilink
    English
    09 months ago

    I write technical documentation and training materials as part of my job, and the state of most open source documentation makes me want to stab people with an ice pick.

    • @pycorax@lemmy.world
      link
      fedilink
      English
      09 months ago

      The worst is when it’s buried in Github issues or in a header file with thousands and thousands of lines of code. Yes I’m looking at you DearImGui, your documentation is awful and I’m already being generous.

      • @ShortFuse@lemmy.world
        link
        fedilink
        English
        0
        edit-2
        9 months ago

        I just recently started working with ImGui. Rewrite compiled game engines to add support for HDR into games that never supported it? Sure, easy. I can mod most games in an hour if not minutes.

        Make the UI respond like any modern flexible-width UI in the past 15 years? It’s still taking me days. All of the ImGui documentation is hidden behind closed GitHub issues. Like, the expected user experience is to bash your head against something for hours, then submit your very specific issue and wait for the author to tell you what to do if you’re lucky, or link to another issue that vaguely resembles your issue.

        I know some projects, WhatWG for one, follow the convention of, if something is unclear in the documentation, the issue does not get closed until that documentation gets updated so there’s no longer any ambiguity or lack of clarity.

    • @Couldbealeotard@lemmy.world
      link
      fedilink
      English
      09 months ago

      Do you have any tips for writing professional documentation? I want to do some for my workplace but it’s hard to know where to start, how to arrange it, etc

    • @corsicanguppy@lemmy.ca
      link
      fedilink
      English
      0
      edit-2
      9 months ago

      I worked alongside some technical writers in the early post-y2k years at SCO. This was before they sued IBM for code misuse and died by a million legal and PR cuts, thanks to the ‘independent news’ site launched by a ‘recent ex-employee’ to reframe things then and rewrite history after.

      We had about 15 tech writers in the company, which when I first arrived seemed like a LOT. I’d never met one, and I’d taken a single tech writing course in college as a filler and found it unchallenging work; so I didn’t value them at the time aside from filling a necessary role that your average nerd could surely fill. Then I saw their work; and it was amazing. It’s one of the product’s strong points, and 20 years later it’s still so head-and-shoulders above the similar offerings by others and since, that it’s a joy to read when I come across it.

      Quite simply put, technical writers explain something in a logical, sensible way, where jargon doesn’t blind-side the reader and layout and language are consistent and easy. Hell, spelling is correct; which is a big win over 90% of the current stuff. Tech writers are writers as Lance L said, and thus know about adjective order, prepositional placement, the difference between ‘backup’ and ‘back up’ and all its similar terms; and of course know why e-mail and traffic do not get an S as nouns - ever - even if the popular kids make everyone say it without thinking.

      It’s all simple-sounding stuff, and I was fooled into believing it was mundane; but when put together and written with an eye toward a common style it takes a stressful reader looking for a process or a parameter and induces calm for that brief moment required to get into the doc and find the sought-after bit.

      Honestly, like the mentors we lost as a working society in the post-y2k bust when the c-suite cleared the ranks of things they didn’t understand, the loss of good technical documentation has a generational effect and will take a massive, sustained effort to reverse.

    • @ByteOnBikes@slrpnk.net
      link
      fedilink
      English
      09 months ago

      I used to mock people who make YouTube videos that literally just walk through the documentation. Like bro, get some reading comprehension!

      But then when I fumbled with some self hosting tutorials, those YouTube videos were the only thing that made sense, because they’re explaining why and how.

      Sorry y’all.

    • @Anonymouse@lemmy.world
      link
      fedilink
      English
      09 months ago

      You’re doing God’s work!

      Over my career, it’s sad to see how the technical communications groups are the first to get cut because “developers should document their own code”. No, most can’t. Also, the lack of good documentation leads to churn in other areas. It’s difficult to measure it, but for those in the know, it’s painfully obvious.

      • @vonbaronhans@midwest.social
        link
        fedilink
        English
        09 months ago

        Jesus, technical people are some of the worst communicators I’ve ever worked with.

        It’s not necessarily their fault though. Y’know who goes into technical jobs? People who often prefer to work with machines, physical stuff, laws of nature, that’s who. And often because it’s MUCH easier than working with people, at least for them.

        On top of that, soft skills are HARD. Communication is HARD. It comes easier for some, but it’s a skill like any other. It’s the technical socialites, the diplomatic devs who become the best managers and leaders, due to the rarity of their hybrid skillsets.

        I’m in the middle. Just technical enough to mostly understand the devs and understand the implications of plans, and just enough soft skills to turn that into decent documentation, emails, and working with clients.

        SUCKS that I’ve gotten a taste of project management and hated the absolute fuck out of it. I probably would’ve been decent at it otherwise.

        • @Entropywins@lemmy.world
          link
          fedilink
          English
          09 months ago

          “Well–well look. I already told you: I deal with the god damn customers so the engineers don’t have to. I have people skills; I am good at dealing with people. Can’t you understand that? What the hell is wrong with you people?”

        • @corsicanguppy@lemmy.ca
          link
          fedilink
          English
          09 months ago

          SUCKS that I’ve gotten a taste of project management and hated the absolute fuck out of it. I probably would’ve been decent at it otherwise.

          Good PMs are rare, and precious. You could maybe give it another …

          emails

          oh, nevermind. :-P

    • @matzler@lemmy.ml
      link
      fedilink
      English
      09 months ago

      Do you have some reading recommendations on how to write good documentation, e.g. readmes for end users?

      • KillingTimeItself
        link
        fedilink
        English
        09 months ago

        as a chronic documentation reader, the best advice i can give is to document everything Anything that the user can and will potentially interact with, should be extensively documented, including syntax and behavior. Write it like you’re coming back to the project in 5 years after having done nothing and you want to be able to skip right to using it. When we build something ourselves, we often hold a bit of internal knowledge from the design process that never quite goes away, so it’s almost always a lot easier for us to reverse engineer something we’ve made, than it is for someone else with zero fore-knowledge to do it themselves.

        Generally this can be a bit of a nightmare, but if you minimize the user facing segment it’s not all that bad, because it’s usually pretty minimal, and what would otherwise be a handful of pages, turns into 10 or maybe 15.

        as for existing documentation, the i3wm user guide is really good, it’s pretty minimalist but it leaves you enough to be able to manage.

        • @ByteOnBikes@slrpnk.net
          link
          fedilink
          English
          0
          edit-2
          9 months ago

          as a chronic documentation reader, the best advice i can give is to document everything Anything that the user can and will potentially interact with, should be extensively documented, including syntax and behavior.

          I don’t know about that. I’ve read some terrible documentation that had everything under the sun. Right now in the library I’m using, the documentation has every available class, every single method, what it’s purpose.

          But how to actually use the damn thing? I have to look up blog posts and videos. I actually found someone’s website that had notes about various features that are better than the docs.

          There’s a delicate balance of signal vs noise.

      • @SynopsisTantilize@lemm.ee
        link
        fedilink
        English
        09 months ago

        Yes. Here: "1.You aren’t writing an SOP for smart or even capable people., every. Single. Person. Needs their hand held all the way through every step regardless of technical skill. "

        “2.if you didnt state it needed to be done in the SOP, it will not be done when the end user follows the SOP”

        “3.MAKE someone else run through your SOP without you being involved. If they can successfully achieve what they needed using your SOP > congrats. If not > fix the errors that brought you to this mess.”

        “4. Everyone is fucking stupid, be clear, and verbose.” We’re talking about where the start menu is, clicking on the “OK” for prompts, how to spell and type things out.

        Change my given values per SOP and what it’s for. But those are my main tenants.

        • @brognak@lemm.ee
          link
          fedilink
          English
          09 months ago

          In elemental school we had to write instructions on how to make a pb&j sandwich. The teacher then acted out your instructions literally, without adding or removing a step. I don’t think there was a single sandwich made that day.

        • @sunstoned@lemmus.org
          link
          fedilink
          English
          0
          edit-2
          9 months ago

          Excellent notes. If I could add anything it would be on number 4 – just. add. imagery. For the love of your chosen deity, learn the shortcut for a screenshot on your OS. Use it like it’s astro glide and you’re trying to get a Cadillac into a dog house.

          The little red circles or arrows you add in your chosen editing software will do more to convey a point than writing a paragraph on how to get to the right menu.

          • @IronKrill@lemmy.ca
            link
            fedilink
            English
            09 months ago

            I agree, but I don’t think images should be relied on as the primary communicator. I have seen far too many forums/websites/docs with broken images because the host went down. That and archivers are more likely to fail at saving images. Explain it using text and give a reference image to further display the point.

          • @funkless_eck@sh.itjust.works
            link
            fedilink
            English
            09 months ago

            I would also add that you need to explain out-of-home steps, too.

            I’m not an idiot but I didn’t go to school for compsci or similar and I don’t do it as a job. So frequently the instructions will go

            • Get your IP address by entering this command
            • Type your IP address in this line
            • Now forward any chosen port to your proxy of choice and don’t forget to check your firewall settings!

            My sibling in Eris, most people dont know any of those words.

      • @Voroxpete@sh.itjust.works
        link
        fedilink
        English
        0
        edit-2
        9 months ago

        I’ll see about digging up recommendations if I can, but I’m on my phone right now.

        My biggest single piece of advice would be this: Understand that your reader does not share your context.

        What this means is that you have to question your assumptions. Ask yourself, is this something everyone knows, or something only I know? Is this something that’s an accepted standard, or is it simply my personal default? If it is an accepted standard, how widely can I assume that accepted standard is known?

        A really common example of this in self-hosting is poorly documented Docker instructions. A lot of projects suffer from either a lack of instructions for Docker deployment, because they assume that anyone deploying the project has spent 200 hours learning the specifics of chroot and namespaces and can build their own OCI runtime from scratch, or needlessly precise Docker instructions built around one hyper-specific deployment method that completely break when you try to use them in a slightly different context.

        A particularly important element of this is explaining the choices you’re making as you make them. For example a lot of self-hosted projects will include a compose file, but will refuse to in any way discuss what elements are required, and what elements are customisable. Someone who knows enough about Docker, and has lots of other detailed knowledge about the Linux file system, networking, etc, can generally puzzle it out for themselves, but most people aren’t going to be coming in with that kind of knowledge. The problem is that programmers do have that knowledge, and as the Xkcd comic says, even when they try to compensate for it they still vastly overestimate how much everyone else knows.

        OK, I said I’d try for examples later, but while writing this one did come to mind. Haugene’s transmission-openvpn container implementation has absolutely incredible documentation. Like, this is top tier, absolutely how to do it; https://haugene.github.io/docker-transmission-openvpn/

        Starts off with a section that every doc should include; what this does and how it does it. Then goes into specific steps, with, wonder of wonders, notes on what assumptions they’ve made and what things you might want to change. And then, most importantly, detailed instructions on every single configuration option, what it does, and how to set it correctly, including a written example for every single option. Absolutely beautiful. Making docs like this is more work, for sure, but it makes your project - even something like this that’s just implementing other people’s apps in a container - a thousand times more usable.

        (I’ve focused on docker in all my examples here, but all of this applies to non-containerized apps too)

      • @IronKrill@lemmy.ca
        link
        fedilink
        English
        09 months ago

        Well a good indicator is if I have to check the source code of a packaged program to understand what something does, the documentation is not good enough. And yes I’ve had to do this far too much.

        • @corsicanguppy@lemmy.ca
          link
          fedilink
          English
          09 months ago

          have to check the source code

          Use the source, Luke.

          But yeah: disappointing. I just swapped out my Chef ZFS module because, looking at the source, it was incomplete in ways I didn’t want to rat-hole and extend while this other two-piece kit was there.

          I should use the source earlier.

  • Todd Bonzalez
    link
    fedilink
    English
    09 months ago

    I recently set up Synapse just to play around with the protocol, and I do not remember this instruction at all. Where did you get this?

  • @anamethatisnt@lemmy.world
    link
    fedilink
    English
    09 months ago

    Alternatively, you can create new users from the command line.
    This can be done as follows:

    If synapse was installed via pip, activate the virtualenv as follows (if Synapse was installed via a prebuilt package, register_new_matrix_user should already be on the search path):

    cd ~/synapse
    source env/bin/activate
    synctl start # if not already running
    Run the following command:
    register_new_matrix_user -c homeserver.yaml
    This will prompt you to add details for the new user, and will then connect to the running Synapse to create the new user. For example:

    New user localpart: erikj
    Password:
    Confirm password:
    Make admin [no]:
    Success!

    This process uses a setting registration_shared_secret, which is shared between Synapse itself and the register_new_matrix_user script.
    It doesn’t matter what it is (a random value is generated by --generate-config), but it should be kept secret, as anyone with knowledge of it can register users, including admin accounts, on your server even if enable_registration is false.

    https://element-hq.github.io/synapse/latest/setup/installation.html

  • Mellow
    link
    fedilink
    English
    09 months ago

    Old I.T. Proverb: Documentation is like sex. Even bad documentation is better than no documentation at all.

  • @Batbro@sh.itjust.works
    link
    fedilink
    English
    0
    edit-2
    9 months ago

    Legit, I run Synapse, the registration shared secret is just a random string you supply and add it to the home server ymal

    Then you use that string to create users by API.

    Idonno, felt straight forward to me

  • Presi300
    link
    fedilink
    English
    09 months ago

    I mean… Bad documentation isn’t specific to selfhosting.

    • @linearchaos@lemmy.world
      link
      fedilink
      English
      09 months ago

      They’re not long about matrix docs though. I tried to set it up a few years ago and it was irritating enough that I never got through it.

      Most Dockers aren’t that bad though.

  • @nexussapphire@lemm.ee
    link
    fedilink
    English
    09 months ago

    The dankest depths of archlinux wiki. Written by a guy so far gone, so war harden by reading through source code and poorly written technical documentation, ancient forums, leaving no stone unturned. A task so twisted it drives most men crazy.

    1% of arch users will ever need this wiki and few have gone through this Herculean task. For them, the first draft is enough, it’s all you can ask of a mind so twisted and broken. Alas it’s as unreadable as the source code and as hard to understand as the forum post from 2009.

  • @dan@upvote.au
    link
    fedilink
    English
    09 months ago

    Protip: Use Conduit instead of Synapse. It’s significantly lighter than Synapse, easier to run, and I guess you can be a cool kid by running something written in Rust. The documentation is even worse though :/ https://conduit.rs/

      • @dan@upvote.au
        link
        fedilink
        English
        0
        edit-2
        9 months ago

        Dendrite is still in beta and isn’t feature-complete. I tried all three (Synapse, Dendrite and Conduit) and Conduit worked the best for me - I found it to be the most reliable and use the least amount of RAM. It also uses an embedded database (RocksDB) which makes setup a bit easier.

        I tried joining several large Matrix rooms from my server, and the experience with Synapse was dreadful. It was using 100% of one core for long periods of time. In some cases it would just fall over and not join the room. Dendrite and Conduit are better in that regard.

        Conduit’s weak point is its documentation. I had to read Synapse’s documentation to understand a few key concepts. I’ve been meaning to help write docs for Conduit but just haven’t had time. I’ve got a PR to improve the styling of the docs at least, but need to do some tweaks to it.