1. 4

    A while ago I was thinking of trying out CentOS for a maximally stable system, but steered away when I saw the terms “CentOS Stream” and “AppStream.” Sometimes you just know.

    1. 5

      In a context like this, the word “stream” just feel like a kinda out-of-place buzzword and as you say it just feels awkward.

      1. 2

        App too

      2. 2

        Note that “appstream” is not really a CentOS thing per se - it’s basically a way to provide different versions of things like Python or container tools where users/customers have different needs. So - some customers want to stay on Python 3.x that shipped with RHEL 8.0 or whatever, whereas other customers want Python 3.x+2 that shipped later. The idea is to break those things out so they can be supported at a different cadence than RHEL itself because the old model didn’t quite fit and they wanted to offer more choice.

        Not that it would change your feelings about “CentOS Stream” but AppStreams are actually a pretty decent concept for RHEL users / customers. Red Hat has many strengths, but naming isn’t in the top 20.

        1. 1

          It was mostly the name that set off my bullshit alarm, but “more choice” does mean less testing for a given version of a package, and less stability.

          On the other hand I’m not clear what is new about the AppStream concept. How is it different from using EPEL or some other package repository?

          1. 2

            “More choice” does not mean “less testing” – those packages, in RHEL, have to be supported by Red Hat.

            AppStream is described pretty well here. It’s not meant to replace EPEL, but Red Hat Software Collections (SCL).

            Basically, you choose whether you want, say PostgreSQL 9.6, 10, or 12. The name “AppStream” replaces, IIRC, “modules” which was confusing. As I said previously - Red Hat has many strengths, but naming isn’t in the top 20 for things like this. (To be fair, I don’t have a better idea…)

            1. 1

              “More choice” does not mean “less testing” – those packages, in RHEL, have to be supported by Red Hat.

              I don’t follow. You can have more or less testing within Red Hat, and more or less usage by customers for a given package. It seems obvious that having more choices means less usage and testing for each choice.

              I found a project called IUS which provides repos for more up-to-date packages, and the project is ending with CentOS 8 because of AppStreams. Not sure how IUS fits in with modules, but I imagine there is debate about whether to make things “integrated” at the cost of adding a new kind of thing to the package manager (and the complexity that comes with that).

      1. 4

        Nothing against combining some shell utilities and today I was reminded of column. But my goto for handling csv / tsv files is definitely csvkit.

        1. 3

          There’s also csvtk

          1. 2

            Came here just to say that :) csvkit is pretty great. For me, it’s a must for handling CSV files.

          1. 2

            What do you people think about TOML?

            1. 6

              This article is mostly about data serialisation, whereas TOML is intended for configuration files. Perhaps the biggest problem with YAML (and JSON) is that they’re used as a one-size-fits all tool.

              1. 3

                I think it’s a reasonable incremental step in much the same way that golang is. I’d like to see people aim higher, but at least it seems to mostly work OK.

                1. 1

                  Just out of curiosity, are there any other alternatives out there that you like better?

                  1. 3

                    If I were adopting a new configuration file format, I’d strongly consider Dhall.

                    If I were adopting a new serialization format, I’d (less-strongly) consider ADL.

                    Downsides of ADL:

                    • It is very young - there aren’t established libraries or community, developers don’t know how to read it.
                    • The documentation is clear & precise, but it lacks cliff-notes for “how to start using this” and the examples are too short.

                    Advantages of ADL:

                    • The concepts it’s built from are neatly orthogonal (no special cases).
                    • Which means it’s really easy to write a parser for (and easy to write a fast parser for).
                    • It supports all the types you’d usually care about (unlike, say, timestamps in JSON).
                    • It supports circular references (not even XML got that right, adding IDs as a nearly-standard afterwards).
                    • It supports embedding a schema in the serialization for documentation + validation.
              1. 6

                Yes, it sucks.

                But I’ll still take it over JSON any day, for defining infrastructure as code.

                I just wish there was an human-workable alternative focused on minimalism. YAML is an unnecessarily complex clusterfuck.

                1. 11

                  HCL is a decent DSL.

                  1. 1

                    HCL

                    Hmm. That one actually looks interesting.

                  2. 7

                    Toml?

                    1. 2

                      Ugh. Not a fan.

                      1. 3

                        Why not?

                    2. 6

                      So, there’s three axes I look for in a replacement for either configuration or serialization.

                      One: What everyday problems do you run into.

                      For instance, can you encode every country code without no getting turned into false; can you include comments, can you read the damn thing or is it too much markup. Do common validation tools exist? Have they got useful error messages?

                      Two: What capabilities do you have at the language layer.

                      For instance, can you encode references? how about circular references? What kind of validation is possible? What is the range of types?

                      Three: Does anyone else know about the language. Is it supported in most languages?

                      Unfortunately, so far none of the languages that fare well on questions 1 and 2 also do well on question 3. Dhall (for config) and ADL (Aspect Definition Language, for data serialization) come to mind as “solve 1 and 2 but not 3”.

                      1. 2

                        Dhall

                        Your point three is fixable, and Dhall is great tech. The community has been very responsive IME, to the point where I need to write a blog post about just how abnormally good they are.

                    1. 7

                      Plenty of lists of software here already, so I’ll just balance out a little with a suggestion to try and work with what’s provided if you can, to at least get used to it, before trying to tweak it to what you think you might prefer. The less I do to a system, the less I have to manage, so I try to go ‘with’ where possible.

                      That said, I do have many of the mentioned pieces of software, but the ones I actually bother to use or would care if I didn’t have? I definitely use 1Password all day every day, but it’s not as slick as it could be. Sign In with Apple is less friction - but then I’d be tied to that Apple ID…

                      Probably Firefox, for the sidebar tabs, but that’s really about it.

                      1. 1

                        Good point. IMHO, macOS is very good out of the box. I don’t feel the need to tweak it that much. Most of the defaults are very good. (I actually feel the same about Emacs.)

                      1. 5

                        I recommend buying a license for Acorn. Such a nice image editing program. A prime example of a great Mac application. (Affinity is also quite good.)

                        1. 30

                          Can someone please help me understand how the announcement of a Linux subsystem for Windows becoming generally available is spam?

                          Prior to this you needed to be running a Windows Insider build in order to run it. I’ve seen a thousand thousand distro announcement posted here without getting this kind of treatment.

                          What am I not understanding about the rules and guidelines for this community? Or are people just as downright nasty with the flagging as they seem to be to me?

                          1. 11

                            Could be that FOSS purists flagged it since WSL enables people to run Linux on a proprietary OS. (Which, if true, is a very silly reason IMO.)

                            I think WSL is great. It was a godsend on my previous job which was mostly a Windows kinda place. Before that I used Cygwin, but WSL is much much more convenient.

                            1. 8

                              I am a WSL user on some of my Windows systems, and I greatly appreciate it. That being said, a few points regarding “spam”:

                              • The linked website is Canonical; Canonical has had some controversy regarding contribution to FOSS (back in the day, the company was monetizing a FOSS-derived OS - from Debian, without giving back to the FOSS community). I can only assume that some of the readers saw the intention of Canonical here as to monetize piggybacking on the Microsoft’s WSL2 availability.
                              • There are multiple text-based advertising paragraphs in the blog post, which mention the enterprise/corporate offering of Canonical and WSL (paragraph 4, and the first paragraph, and the title of the last section)
                              • The article (May 2020) mentions availability of an O/S in the WSL store. A tutorial (which is mostly generic, applies to almost any WSL2 migration/distro) is also present on the blog post. Ubuntu fails to mention what exactly is the WSL2 OS good for, how does it compare to other distros (or to the main release), what does it bring new (except enterprise support).

                              Now, some of the above may have not triggered some members of the community. I’m human, so I’m mostly biased, and while I haven’t flagged or hidden this particular story, I can imagine myself having a bad day and flagging an article from a company monetizing FOSS without contributing back as spam (see Google, Amazon).

                              1. 13

                                I can imagine myself having a bad day and flagging an article from a company monetizing FOSS without contributing back as spam (see Google, Amazon).

                                That would be working against the site guidelines. Lobste.rs has always been a place for technical discussion, how that tech is monetized or if its proprietary, GPL or BSD licensed and how the company/individuals contribute back / if at all should have no impact if a story is on topic or not.

                                Judge the content, not the person/entity behind it.

                                1. 2

                                  Now, some of the above may have not triggered some members of the community. I’m human, so I’m mostly biased, and while I haven’t flagged or hidden this particular story, I can imagine myself having a bad day and flagging an article from a company monetizing FOSS without contributing back as spam (see Google, Amazon).

                                  Right, and you yourself seem to agree that doing so is a mis-use of the flag mechanism.

                                  The appropriate response would be either a constructive comment or maybe even if you cared to / had time a private message around how the article lacks technical merit and probably doesn’t belong here, accompanied by a simple non upvote.

                                  Or maybe we need a new flag “lacks technical merit” :)

                                2. 7

                                  I found it borderline, flagged it but I have since unflagged it.

                                  What I’d like to see: a post that describes the differences between WSL1 and WSL2 and how it pertains to Ubuntu; why WSL2 is worth the update; what changes Ubuntu made to accomodate WSL2, etc.

                                  Also what I’d like to see, what distribution (if any) is best for WSL ?

                                  For Ubuntu, the more mindshare they have among WSL users, the better. So this entry can be seen as marketing.

                                  Final edit I removed a bunch of mildly self-pitying and sarcastic remarks around this comment being flagged, but it looks now I was mistaken. I stand by my words above.

                                  1. 2

                                    For Ubuntu, the more mindshare they have among WSL users, the better. So this entry can be seen as marketing.

                                    Final edit I removed a bunch of mildly self-pitying and sarcastic remarks around this comment being flagged, but it looks now I was mistaken. I stand by my words above.

                                    If you look at the description for the Spam flag it says: Promotes a commercial service.

                                    WSL is in fact a closed source proprietary commercial product sold by Microsoft. It’s certainly not a ‘service’ and I personally feel that while this article probably lacks technical merit, it’s probably not Spam under the current definition of the flag either.

                                    I actually thought long and hard before posting this, and what ultimately swayed me was the fact that WSL now being available to main line Windows 10 users not part of the Windows Insider program seemed like technical information that could be useful and interesting to the community here.

                                    So I guess the question for this community is - what do we want to be? If release announcements aren’t of interest because they lack the kind of deep technical content we want to see, then perhaps we should consider being clear about that.

                                    Anyway, lots of good discussion here. Thanks for taking part in it, and again thanks for explaining your motivations.

                                    1. 1

                                      a post that describes the differences between WSL1 and WSL2 and how it pertains to Ubuntu; why WSL2 is worth the update

                                      As I understood it, the main difference is that WSL1 was an emulation layer that translated system calls into the corresponding Windows API calls, whereas WSL2 is a (lightweight) VM running an actual Linux kernel.

                                      See: https://docs.microsoft.com/en-us/windows/wsl/compare-versions

                                      1. 1

                                        I actually installed WSL1 yesterday, and was mildly disappointed my computer is not yet updated to be able to handle WSL2.

                                        What I meant was I’d like Canonical to expand more on how they’ve worked (or not had to!) to work with WSL2.

                                        Edit apparently WSL2 is faster, which I appreciate. I’ve been using Cygwin before and reading and processing 10k files there was very fast, in WSL1 it’s painfully slow.

                                        1. 3

                                          Yes WSL1’s lackluster performance is well documented. It’s why the put so many engineering hours into creating WSL 2, and the results are impressive.

                                          Sorry your computer isn’t up to the 2004 version required - I know not everyone is just running Windows at home for themselves and may be locked down by IT or other constraints, but for those who do control their own systems the 2004 update is fully released and anyone can go grab it, it just hasn’t been queued for automatic deployment yet.

                                          Also I wanted to thank you for your cards up post around why you flagged and un-flagged the article as Spam. I think there’s a disconnect in this community around how flags are used. It seems to me that the mods created flags as a means of allowing the community to police and bar raise itself, but people are instead using them as you did as a way to say “This article lacks technical merit” or in some cases even “I disagree” which to me is an even more egregious abuse of the mechanism.

                                          1. 1

                                            I’ll have to check whether I can update to 2004… we’ve gotten new practices re: computer management from the mothership.

                                            I’ve actually been quite happy with Cygwin for my purposes but figured the WSL is The Future(tm) now.

                                            1. 1

                                              Interesting that you find Cygwin’s performance better than WSL1. I’ve used Cygwin off-an-on for many years but tend to prefer a Linux VM (via Vagrant) when forced to use Windows. In my limited usage I’ve found WSL1 to be a better experience than Cygwin, at least for shell interactive usage - I’ve not done any heavy processing with it.

                                              1. 1

                                                Glad to hear Cygwin meets your needs. It’s certainly battle tested!

                                                One of the things that others have cited in this thread that WSL brings to the table is official support from external tools like IDEs.

                                                I can write and debug my code in VSCode or Pycharm, and then deploy and debug in WSL because both tools explicitly have first class support for it.

                                                This is a pretty compelling feature for some of us.

                                            2. 2

                                              I actually installed WSL1 yesterday, and was mildly disappointed my computer is not yet updated to be able to handle WSL2.

                                              Dunno if you saw this most recent announcement. They backported it even further. Hope this helps!

                                              1. 2

                                                Thanks, I did see that! Unfortunately corporate policy still has me stuck on a version that’s too old…

                                        2. 7

                                          What am I not understanding about the rules and guidelines for this community? Or are people just as downright nasty with the flagging as they seem to be to me?

                                          It’s definitely not just you. I’ve noticed frequent “flagging as spam” of late as well - just monitor Recent for a while and you’ll spot it immediately. The articles that are being flagged would certainly not have been flagged a year or two ago. Perhaps this warrants a wider discussion…

                                          1. 5

                                            Me too. I had a definitely-not-spam submission flagged the other day as well. I asked the mods to delete it; I don’t submit spam but hell if I wanted to offend anybody. As it turned out, others upvoted so it worked out okay.

                                            But it left a bad taste in my mouth. I know we’re all supposed to assume positive intent, but as long as we’re not identifying anybody individually, I have a weird feeling that there’s something deliberately negative going on here. I don’t know what, but it doesn’t feel right. Content can be poor quality, bad advice, poorly-written, dated, or off-topic without it being anywhere near spam. In that case just don’t upvote it, or make a comment explaining what you think may be technically bad about the piece. (You know, you might be mistaken! I am mistaken quite a lot) I am concerned something’s not working as it should.

                                            1. 2

                                              It’s definitely not just you. I’ve noticed frequent “flagging as spam” of late as well - just monitor Recent for a while and you’ll spot it immediately. The articles that are being flagged would certainly not have been flagged a year or two ago. Perhaps this warrants a wider discussion…

                                              I definitely think this warrants a wider discussion as well. Take a look at @gerikson’s comment above. There’s no bad intent there, but he’s using the SPAM flag as “I feel this article is lacking in technical merit”. He chose to un-flag as did the other person after I called the flagging choice into question, but I think we need to do some work as a community to come to a common understanding of what the flags are FOR and how we want to use them to make the community better.

                                              1. 2

                                                Yes, agreed. Taking a look at a recent story, How To Make Ubuntu Work Like Windows 10, it currently has a score of 5, made up of “+12, -2 off-topic, -5 spam”. Quite a mix, suggesting that there are some differing views about what posts are appropriate.

                                                1. 3

                                                  I also notice that the flag explanations link in the About page seems broken. I’m going to message the mods about that, might help people to understand the goals of the mechanism better.

                                                  1. 2

                                                    For what it’s worth I went and hunted down the explanation of what flags are for. “Spam” says “promotes a commercial service”. The explanation is in the middle of the “Ranking” section: https://lobste.rs/about

                                                    1. 1

                                                      I think the problem is that some people use “spam” as a catchall when flagged posts they think are inappropriate. I know that some people leave a comment when they do so, at least explaining their thinking, but they’re in the minority.

                                              2. 2

                                                It’s a little sad to see this. Perhaps this kind of behaviour could be looked at and addressed? Il not sure what to call it, but it feels distasteful to me.

                                                1. 2

                                                  I think it’s a simple matter of the community not having a good shared understanding of what the flag feature should be used for.

                                                  My impression is that the moderators meant for it to be a relatively serious step that could be used to censure posts that are VERY far afield from the intent of the community, but instead people are using it for making statements like “I disagree”, “This lacks technical merit” or “This represents a commercial interest engaging in marketing” which I’d personally assert is part and parcel of “lacks technical merit”.

                                                  I don’t know how we get the word out about this though without being too heavy handed.

                                                  1. 2

                                                    I see some comments with explanations already, which is great, as knowing why is going to be key in finding a better way to solicit the feedback that this is aiming for.

                                              1. 3

                                                Some minor thoughts on Nano:

                                                It seems many don’t know that it is a clone of Pico, the editor used in the Pine email client.

                                                Interestingly, for a long time, Nano’s documentation seemed to kinda assume familiarity with Pico and it spent a lot of time explaining differences between the two.

                                                Pine and Pico live on in the Alpine mail client.

                                                1. 2

                                                  Heck I remember Pine being the successor of the Elm mail client (Pine Is Not Elm).

                                                  1. 1

                                                    To me that connection is obvious. But as you say, there are probably lots of Nano users that doesn’t know about it. People going to college now are even younger than Nano itself. When my father went to med school in the 90’s he showed me how to send email with pine on the university’s Unix systems. These days universities have other preferred applications for e-mail (^_^)

                                                  1. 2

                                                    I recently started to write an article about collecting and processing event logs, with a primary focus on collecting request logs from web servers. Any pointers on this topic are warmly appreciated.

                                                    The point of the article is to compare different methods; e.g. logrotate, syslog, journald, s6-log, etc. Many articles out there describe how to configure logging, but not that many articles explains the philosophy behind the various methods. (No draft to share at this moment since the draft is not yet fully digitized.)

                                                    1. 2

                                                      I’m also interested by that! Draft or released version, I’m in to read both :)

                                                      1. 2

                                                        I’m very interested in reading this. Feel free to send me your draft if (once it’s digitized) if you’d like some early feedback :)

                                                        1. 1

                                                          Cool! I’ll gladly let you read the draft when it’s in a tolerable state. How can I reach you?

                                                          1. 1

                                                            I’ve DMd you

                                                            1. 1

                                                              I didn’t even know that there is a DM system here. That’s great. TIL!

                                                      1. 2

                                                        Preparing for starting on a new job on Monday so this is my last week of vacation. I have ordered a new pair of comfy indoor sandals since I forgot to take my old pair with me from my former office :) Will probably have some guests over for bbq later this evening.

                                                        1. 1

                                                          My beta group is finishing up so I’m entering the last stages of editing my third book, Info-Ops2. It is a book about the human-machine interface, not coding, not management/sociology/psychology, but the intersection of both. Why do people make coding mistakes? What can programming teach us about being better thinkers? How can we measure the human impact our code has, both on our users and all the coders faced to maintain it without having to write and deploy it first? What types of thinking works best when talking about creating programming solutions? How about when we’re actually coding them?

                                                          So that material is done. It just needs editing, polishing, and rewriting. (Yikes! But it’s done. Spoiler alert: writing is never done. It just escapes)

                                                          For the last couple of weeks, I’ve also been experimenting with a new writing/blogging/vlogging platform, locals.com. I want to get the hell off of FB and these guys promise that I own my stuff, they won’t monetize or analyze my content, and there aren’t going to be any popups or sudden mysterious account deletions where I might be forced to go begging on HN or somewhere to get assistance. I like that. Plus it has a subscription model built in (which is how they make their money, taking a cut of the subscriptions you get). I made an editorial calendar and am doing a mix of short-form blogging, sharing my photography, video explainers, and technical walkthroughs. I’m hoping to do a few interviews. Just throwing stuff out there, see what sticks.

                                                          Shameless plug: https://danielbmarkham.locals.com/

                                                          1. 2

                                                            Hi Daniel, nice to see you here! I recognize you from Hacker News. (My nick over there is ’cpach.) Feel free to share any links to your books!

                                                          1. 1

                                                            I’m on vacation until August. Besides doing vacation stuff I’ve been trying out Hugo and so far I really like what I see. After the vacation I’m gonna start a new job so that will be interesting!

                                                            1. 1

                                                              TIL. I had no idea about this and I’ve been using computers for three decades and macOS for seven years.

                                                              1. 6

                                                                In my experience at least, there was a huge emphasis on learning esoteric keystrokes among the first generation of Mac users. In return, Apple has been pretty consistent with their meaning over the years – for example, the key combo to take a screenshot (Cmd-shift-3) has been in place since the mid-80’s.

                                                              1. 3

                                                                Cycling with the girlfriend through northern Germany. Eating lots of smoked fish and enjoying the great outdoors.

                                                                1. 1

                                                                  A few years ago me and my wife + our kids went to Nordfriesland. So beautiful nature there. We went to one of the halligs in the Wadden Sea. I’m not certain of it’s name but I think it was Hallig Hooge. Very nice place.

                                                                1. 28

                                                                  gRPC is Protocol Buffers running over HTTP/2. It’s a got a “g” at the beginning of the name to remind you that the only time it’s acceptable to use is when you are actually working for Google inside a Google-owned building eating Google-branded food and breathing Google-branded air.

                                                                  Have worked with protobufs, can confirm this is true.

                                                                  1. 5

                                                                    What’s so bad about protobufs?

                                                                    1. 20

                                                                      The code generated is ridiculously complex for what it does. The implementation is ridiculously complex for what it does. The generated code in all languages except C++ (and maybe Java) is unidiomatic, verbose, and fits poorly with the code written in the language. The GRPCv3 code is a regression over GRPCv2, since you can no longer tell if values are present or not: all values are optional, but you can’t tell if they were filled in or not unless you wrap each one of them in their own message.

                                                                      And then there’s GRPC, which takes this complexity to a new level, and adds lots of edge cases and strange failure modes because of the complexity.

                                                                      And to top it off, while they’re a bit faster than json, they’re pretty slow for a binary protocol.

                                                                      1. 6

                                                                        Protobufs certainly has its dusty corners but there is a rationale for dropping required fields.

                                                                        1. 5

                                                                          My compliant wasn’t about dropping required fields. I agree with that: Required is a pain for compatibility. My complaint was that they broke optional on top of that.

                                                                          message Foo {
                                                                                int32 x = 1;
                                                                           }
                                                                          

                                                                          In proto2, you could check if x was set:

                                                                          if(foo.has_x()) { use(x) }
                                                                          

                                                                          In proto3, there’s no has_x(), so an unset x is indistinguishable from x=0. You need to write:

                                                                          message Integer {
                                                                              int32 val = 1;
                                                                          }
                                                                          
                                                                          message Foo {
                                                                              Integer x = 1;
                                                                          }
                                                                          

                                                                          And then check:

                                                                          if(foo.get_x() != null) { use(foo.get_x().get_val()) }
                                                                          

                                                                          Note that in addition to being just plain clunky, and the potential to forget setting ‘val’ within the wrapper message, it’s inefficient – in languages with value types, like C++, Rust, Go, …, you’re now adding an extra allocation.

                                                                          1. 1

                                                                            That does seem annoying but they may be re-adding optional in version 3.13.

                                                                            1. 2

                                                                              Which is kind of telling…

                                                                      2. 9

                                                                        The footnote links to https://reasonablypolymorphic.com/blog/protos-are-wrong/index.html which gos into that

                                                                        1. 5

                                                                          Kenton Varda’s response to this rant is worth reading.

                                                                          1. 9

                                                                            I stopped reading at

                                                                            This article appears to be written by a programming language design theorist who, unfortunately, does not understand (or, perhaps, does not value) practical software engineering.

                                                                            Typical Googler stuff.


                                                                            The comment in the original article is so on point:

                                                                            I now consider it to be a serious negative on someone’s resume to have worked at Google.

                                                                            1. 6

                                                                              While it is often perfectly valid to opt for a solution which works over one which is elegant, I get the impression that the words like “pragmatic” are increasingly being used as an anti-intellectual “excuse” for not doing something properly and ignoring well studied solutions, simply because they “weren’t invented here”, or are proposed by people who the developer disagrees with or simply doesn’t associate with.

                                                                              1. 3

                                                                                Yep.

                                                                                I come from an environment where “pragmatic” is only used sarcastically, and that’s honestly quite refreshing.

                                                                                If someone says “the software is pragmatic”, I assume it’s buggy as hell.

                                                                          2. 4

                                                                            This article is typical FP hardliner complaining that something isn’t “correct enough” because it doesn’t use a Haskell-like type system. The last section is kind of good, though.

                                                                      1. 5

                                                                        Never heard of Synology, but article linked to a NAS company and didn’t mention if their software is commercial or FOSS?

                                                                        1. 4

                                                                          I’m fairly sure it’s predominantly closed source.

                                                                          1. 1

                                                                            Synology are proprietary, but I think the underlying OS is based on Open BSD.

                                                                            1. 3

                                                                              It is Linux based

                                                                              1. 1

                                                                                Perhaps you’re thinking of TrueNAS which is based on FreeBSD. (A Debian-based version is also in the works.)

                                                                            1. 2

                                                                              I had no idea this was possible. Cool!

                                                                              1. 4

                                                                                This scheme does not get me what I want most, especially for my relatives: the ability to recover the version of a file they accidentally deleted, overwrote or modified half a year ago. Backblaze only gets you 30 days. The same with Onedrive, Dropbox, etc.

                                                                                1. 1

                                                                                  This is why I use HyperBackup on my Synology NAS.

                                                                                  I’d be super curious if an open source alternative exists.

                                                                                  1. 1

                                                                                    I recently learned that one can run restic on Synology. Seems very interesting!

                                                                                    1. 1

                                                                                      It’s a Linux box underneath. It’s just that all the Synology branded software is closed source.

                                                                                      I wasn’t aware of restic, I’ll give it a look. Hyperbackup is pretty good, though :)

                                                                                1. 1

                                                                                  I’ve always considered IRC bouncers a cludge. For the longest time I ran irssi in screen on a shell. There was lag typing. Then came mosh, which helped. Quassel has a nice model, where you can run the IRC client on a server and the interface locally. But I haven’t tried that. These days I just use matrix and the irc bridges offered by matrix.org (freenode) and SNT (ircnet).

                                                                                  1. 2

                                                                                    I’ve always considered IRC bouncers a cludge.

                                                                                    May I ask why? It’s always seemed fairly elegant to me - have a server act as a client to an IRC server and have virtual channels, exporting an IRC connection out the other side.

                                                                                    Quassel has a nice model, where you can run the IRC client on a server and the interface locally.

                                                                                    Isn’t this pretty much what a bouncer does? The client runs on a server somewhere and you pick your own IRC client as the interface?

                                                                                    These days I just use matrix and the irc bridges offered by matrix.org (freenode) and SNT (ircnet).

                                                                                    Am I misunderstanding something, or isn’t this essentially a bouncer as well? It sits on a server somewhere and you connect to it with your own client. In this case, it’s something like riot rather than an IRC client, but it’s the same concept with an additional protocol to act as the bridge.

                                                                                    1. 4

                                                                                      The difference between an IRC bouncer and the other solutions mentioned (here I’m guessing at how Quassel works though) is that there’s tighter integration between the client and server.

                                                                                      Here’s an example: when you connect to an IRC bouncer, you get playback of the messages you missed. But all of those messages have the wrong timestamp, because from your client’s perspective, they all came in within a minute or two of when you connected to the bouncer. You can set your bouncer to send timestamps to the client (this is what I do), but there’s no way for the bouncer to “correct” the client’s timestamp, so all it can do is add the timestamp as part of the message. So what you get is two timestamps. E.g. let’s say you connect to the bouncer at 12:30:

                                                                                      12:30 <someuser> [09:45:00] luser: you around?
                                                                                      12:30 <luser> [09:53:00] someuser: yes let's discuss the foobars
                                                                                      12:31 <you> I just connected with my bouncer. it's 1 minute after I actually connected because there was such a flood of IRC playback messages that it took a while to settle and this message wouldn't send until it did.
                                                                                      12:35 <you> cool, I've been connected with my bouncer for about 5 minutes now
                                                                                      

                                                                                      IRCv3 is supposed to help fix this, but it’s not here yet. At least not in my out-of-the-box ZNC + ERC combo, although I will admit that I’m sure IRCv3 is not high on ERC’s priority list 🙄

                                                                                      Contrast this with Matrix where no matter when you connect, your client always gets the right timestamps because what the client is doing is properly synchronizing with the server. The details from the origin IRC server’s message - like timestamps - are preserved and sent down to the Matrix client.

                                                                                      I’m picking on timestamps here, but there are a few other problems like this too. For example, it’s annoying when your IRC bouncer disconnects but your client thinks you’re still connected just fine, so the UI desynchronizes with reality. Not sure if Matrix fixes that, although it could. I’m just not familiar enough with it to say.

                                                                                      1. 2

                                                                                        IRCv3 is supposed to help fix this, but it’s not here yet.

                                                                                        I can’t remember if they’re on the standard version of the protocol yet, but Hexchat knows how to get the correct timestamps out of ZNC, so it’s there for at least some clients.

                                                                                        For example, it’s annoying when your IRC bouncer disconnects but your client thinks you’re still connected just fine, so the UI desynchronizes with reality. Not sure if Matrix fixes that, although it could.

                                                                                        It couldn’t. I could rant for days about this, but I’ll try to keep it specific. Matrix bridging works by creating a room on the Matrix side and trying to keep it in sync with the IRC side; individual bridged IRC users are a protocol-level fiction in some sense. It tries to monitor what’s happening to them and effect the equivalent changes on the other side, but it doesn’t always know how. The failure modes of this are generally worse than the bouncer model because the latter treats IRC connections individually. For example, if ZNC fails to join a channel for a reason it doesn’t understand, it just won’t join the channel; if a Matrix bridged user tries to do the same they’ll think they’re in the channel (and receive messages from it) until they try to speak. Until about a year ago, you could part channels with !cmd and the bridge wouldn’t notice, setting up the same condition. This will still occur if the bridge doesn’t have enough power level in the Matrix room.

                                                                                        There remain dozens of outstanding issues that could be described as desyncs on the matrix-appservice-irc tracker. Whatever other benefits of the model might exist, I don’t think maintaining synchronization with reality is one of them.

                                                                                        1. 1

                                                                                          Exactly. And matrix also allows requesting more history from the home server to the client. And connecting several clients to the same account.

                                                                                      2. 2

                                                                                        I’ve been using screen + irssi for years. Works well enough for me.

                                                                                        When I got a job again I might consider paying up for IRCCloud. It’s quite slick.

                                                                                      1. 1

                                                                                        Method B is, IMHO, very cool. Neat!

                                                                                        1. 1

                                                                                          Method B should be turned into a Debian package.