1. 11

    NB: debian developers have noted that they have troubles repackaging the code into the distribution due to the new EULA included https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=906158#14

    1. 6

      From your link:

      Intel has been made aware of the issue and pestered by just about everyone, and should get it straightened up soon.

      This issue circulated through a Slack channel I’m on last week and we had the presence of mind to at least collectively ask Red Hat to bring the issue up with Intel for us. Nevertheless I consider “pestered by just about everyone” to be an accurate description.

    1. 2

      Now let’s make a meta meta planet: grab all the Feeds from all the posts that got at least one upvote.

      1. 1

        I begun doing so… but then real work took the lead lol

      1. 3

        The problem turns out to be some obscure FUSE mounts that the author had lying around in a broken state, which subsequently broke the kernel namespace system. Meanwhile, I have been running systemd on every computer I’ve owned in many years and have never had a problem with it.

        Does this not seem a bit melodramatic?

        1. 9

          From the twitter thread:

          Systemd does not of course log any sort of failure message when it gives up on setting up the DynamicUser private namespace; it just goes ahead and silently runs the service in the regular filesystem, even though it knows that is guaranteed to fail.

          It sounds like the system had an opportunity to point out an anomaly that would guide the operator in the right direction, but instead decided to power through anyways.

          1. 8

            A lot like continuing to run in a degraded state is a plague that affects distributed systems. Everybody thinks it’s a good idea “some service is surely better than no service” until it happens to them.

            1. 3

              At $work we prefer degraded mode for critical systems. If they go down we make no money, while if they kind of sludge on we make less but still some money while we firefight whatever went wrong this time.

              1. 8

                My belief is that inevitably you could be making $100 per day, would notice if you made $0, but are instead making $10 and won’t notice this for six months. So be careful.

                1. 4

                  We have monitoring and alerting around how much money is coming in, that we compare with historical data and predictions. It’s actually a very reliable canary for when things go wrong, and for when they are right again, on the scale of seconds to a few days. But you are right that things getting a little suckier slowly over a long time would only show up as real growth not being in line with predictions.

              2. 2

                I tend to agree that hard failures are nicer in general (especially to make sure things work), but I’ve also been in scenarios where buggy logging code has caused an entire service to go down, which… well that sucked.

                There is a justification for partial service functionality in some cases (especially when uptime is important), but like with many things I think that judgement calls in that are usually so wrong that I prefer hard failures in almost all cases.

                1. 1

                  Running distributed software on snowflake servers is the plague to point out.

                  1. 1

                    Everybody thinks it’s a good idea “some service is surely better than no service” until it happens to them.

                    So if the server is over capacity, kill it and don’t serve anyone?

                    Router can’t open and forward a port, so cut all traffic?

                    I guess that sounds a little too hyperbolic.

                    But there’s a continuum there. At $work, I’ve got a project that tries to keep going even if something is wrong. Honest, I’m not sure I like how all the errors are handled. But then again, the software is supposed to operate rather autonomously after initial configuration. Remote configuration is a part of the service; if something breaks, it’d be really nice if the remote access and logs and all were still reachable. And you certainly don’t want to give up over a problem that may turn out to be temporary or something that could be routed around… reliability is paramount.

                    1. 2

                      And you certainly don’t want to give up over a problem that may turn out to be temporary

                      I think that’s close to the core of the problem. Temporary problems recur, worsen, etc. I’m not saying it’s always wrong to retry, but I think one should have some idea of why the root problem will disappear before retrying. Computers are pretty deterministic. Transient errors indicate incomplete understanding. But people think a try-catch in a loop is “defensive”. :(

                2. 4

                  So you never had legacy systems (or configurations) to support? I read Chris’ blog regularly, and he works at a university on a heterogeneous network (some Linux, some other Unix systems) that has been running Unix for a long time. I think he started working there before systemd was even created.

                  1. 3

                    Why do you say that the FUSE mounts were broken? As far as we can see they were just set up in a uncommon way https://twitter.com/thatcks/status/1027259924835954689

                    1. 3

                      It does look brittle that broken fuse mounts prevent the ntpd from running. IMO the most annoying part is the debugability of the issue.

                      1. 2

                        Yes, it seems melodramatic, even to my anti-systemd ears. It’s a documentation and error reporting problem, not a technical problem, IMO. Olivier Lacan gave a great talk last year about good errors and bad errors (https://olivierlacan.com/talks/human-errors/). I think it’s high time we start thinking about how to improve error reporting in software everywhere – and maybe one day human-centric error reporting will be as ubiquitous as unit testing is today.

                        1. 2

                          In my view (as the original post’s author) there are two problems in view. That systemd doesn’t report useful errors (or even notice errors) when it encounters internal failures is the lesser issue; the greater issue is that it’s guaranteed to fail to restart some services under certain circumstances due to internal implementation decisions. Fixing systemd to log good errors would not cause timesyncd to be restartable, which is the real goal. It would at least make the overall system more debuggable, though, especially if it provided enough detail.

                          The optimistic take on ‘add a focus on error reporting’ is that considering how to report errors would also lead to a greater consideration of what errors can actually happen, how likely they are, and perhaps what can be done about them by the program itself. Thinking about errors makes you actively confront them, in much the same way that writing documentation about your program or system can confront you with its awkward bits and get you to do something about them.

                      1. 12

                        A realization I recently had:

                        Why don’t we abstract away all display affordances from a piece of code’s position in a file? That is, the editor reads the file, parses its AST, and displays it according to the programmer’s preference (e.g., elastic tabstops, elm-like comma-leading lists, newline/no-newline before opening braces, etc). And prior to save, the editor simply runs it through an uncustomized prettier first.

                        There are a million and one ways to view XML data without actually reading/writing pure XML. Why not do that with code as well?

                        1. 4

                          This idea is floating around the interwebz for a long time. I recall it being stated almost verbatim on Reddit, HN, probably on /.

                          1. 6

                            And once you take it a step further, it’s clear that it shouldn’t be in a text file in the first place. Code just isn’t text. If you store it as a tree or a graph in some sort of database, it becomes possible to interact with it in much more powerful ways (including displaying it any way you like). We’ve been hobbled by equating display representation with storage format.

                            1. 7

                              This talk touches on this issue, along with some related ones and HCI in general: Bret Victor: The Future of Programming

                              1. 2

                                God, I have been trying to recall the name of this talk for ages! Thank you so much, it is a great recommendation

                              2. 5

                                Text is great when (not if) your more complicated tools fail or do something you can’t tolerate and you need to use tools which don’t Respect The Intent of designers who, for whatever reason, don’t respect your intent or workflow. Sometimes, solving a problem means working around a breakage, whether or not that breakage is intentional on someone else’s part.

                                Besides, we just (like, last fifteen or so years) got text to the point where it’s largely compatible. Would be a shame to throw that away in favor of some new AST-database-thing which only exists on a few platforms.

                                1. 1

                                  I’m not sure I get your point about about intent. Isn’t the same already true of, say, compilers? There are compiler bugs that we have to work around, there are programs that seem logical to us but the compiler won’t accept, and so on. Still, everybody seems to be mostly happy to file a compiler bug or a feature request, and live with a workaround for the present. Seems like it works well enough in practice.

                                  I understand your concern about introducing a new format but it sounds like a case of worse-is-better. Sure, we get a lot of convenience from the ubiquity of text, but it would nevertheless be sad if we were stuck with it for the next two centuries.

                                  1. 1

                                    With compilers, there are multiple of them for any given language, if the language is important enough, and you can feed the same source into all of them, assuming that source is text.

                                    1. 2

                                      I’ve never seen anyone casually swap out the compiler for production code. Also, for the longest time, if you wrote C++ for Windows, you pretty much had to use the Microsoft compiler. I’m sure that there are many embedded platforms with a single compiler.

                                      If there’s a bug in the compiler, in most casss you work around it, then patiently wait for a fix from the vendor.

                                      So that’s hardly a valid counterpoint.

                                      1. 1

                                        Re: swapping out compiler for production code: most if not all cross-platform C++ libraries can be compiled on at least llvm, gcc and msvc.

                                        1. 1

                                          Yes, I’m aware of that, but what does it have to do with anything I said?

                                          EDIT: Hey, I went to Canterbury :)

                                          1. 1

                                            “I’ve never seen anyone casually swap out the compiler for production code” sounded like you were saying people didn’t tend to compile the same production code on multiple compilers, which of course anyone that compiles on windows and non-windows does. Sorry if I misinterpreted your comment!

                                            My first comment is in response to another Kiwi. Small world. Pretty cool.

                                2. 1

                                  This, this, a thousand times this. Text is a good user-interface for code (for now). But it’s a terrible storage and interchange format. Every tool needs its own parser, and each one is slightly different, leaving begging the amount of cpu and programmer time we waste going from text<->ast<->text.

                                  1. 2

                                    Yeah, it’s obviously wasteful and limiting. Why do you think we are still stuck with text? Is it just sheer inertia and incrementalism, or does text really offer advantages that are challenging to recreate with other formats?

                                    1. 7

                                      The text editor I use can handle any computer language you can throw at it. It doesn’t matter if it’s BASIC, C, BCPL, C++, SQL, Prolog, Fortran 77, Pascal, x86 Assembler, Forth, Lisp, JavaScript, Java, Lua, Make, Hope, Go, Swift, Objective-C, Rexx, Ruby, XSLT, HTML, Perl, TCL, Clojure, 6502 Assembler, 68000 Assembler, COBOL, Coffee, Erlang, Haskell, Ocaml, ML, 6809 Assembler, PostScript, Scala, Brainfuck, or even Whitespace. [1]

                                      Meanwhile, the last time I tried an IDE (last year I think) it crashed hard on a simple C program I attempted to load into it. It was valid C code [2]. That just reinforced my notion that we aren’t anywhere close to getting away from text.

                                      [1] APL is an issue, but only because I can’t type the character set on my keyboard.

                                      [2] But NOT C++, which of course, everybody uses, right?

                                      1. 0

                                        To your point about text editors working with any language, I think this is like arguing that the only tool required by a carpenter is a single large screwdriver: you can use it as a hammer, as a chisel, as a knife (if sharpened), as a wedge, as a nail puller, and so on. Just apply sufficient effort and ingenuity! Does that sound like an optimal solution?

                                        My preference is for powerful specialised tools rather than a single thing that can be kind of sort of applied to a task.

                                        Or, to approach from the opposite direction, would you say that a CAD application or Blender are bad tools because they only work with a limited number of formats? If only they also allowed you to edit JPEGs and PDFs, they would be so much better!

                                        To your point about IDEs: I think that might even support my argument. Parsing of freeform text is apparently sufficiently hard that we’re still getting issues like the one you saw.

                                        1. 9

                                          I use other tools besides the text editor—I use version control, compilers, linkers, debuggers, and a whole litany of Unix tools (grep, sed, awk, sort, etc). The thing I want to point out is that as long as the source code is in ASCII (or UTF-8), I can edit it. I can study it. I might not be able to compile it (because I lack the INRAC compiler but I can still view the code). How does one “view” Smalltalk code when one doesn’t have Smalltalk? Or Visual Basic? Last I hear, Microsoft wasn’t giving out the format for Visual Basic programs (and good luck even finding the format for VB from the late 90s).

                                          The other issue I have with IDEs (and I will come out and say I have a bias against the things because I’ve never had one that worked for me for any length of time without crashing, and I’ve tried quite a few over 30 years) is that you have one IDE for C++, and one for Java, and one for Pascal, and one for Assembly [1] and one for Lua and one for Python and man … that’s just too many damn environments to deal with [2]. Maybe there are IDEs now that can work with more than one language [3] but again, I’ve yet to find one that works.

                                          I have nothing against specialized tools like AutoCAD or Blender or PhotoShop or even Deluxe Paint, as long as there is a way to extract the data when the tool (or the company) is no longer around. Photo Shop and Deluxe Paint work with defined formats that other tools can understand. I think Blender works with several formats, but I am not sure about AutoCAD (never having used it).

                                          So, why hasn’t anyone stored and manipulated ASTs? I keep hearing cries that we should do it, but yet, no one has yet done it … I wonder if it’s harder than you even imagine …

                                          Edited to add: Also, I’m a language maven, not a tool maven. It sounds like you are a tool maven. That colors our perspectives.

                                          [1] Yes, I’ve come across several of those. Never understood the appeal …

                                          [2] For work, I have to deal with C, C++, Lua, Make and Perl.

                                          [3] Yeah, the last one that claimed C/C++ worked out so well for me.

                                          1. 1

                                            For your first concern about the long term accessibility of the code, you’ve already pointed out the solution: a defined open format.

                                            Regarding IDEs: I’m not actually talking about IDEs; I’m talking about an editor that works with something other than text. Debugging, running the code, profiling etc. are different concerns and they can be handled separately (although again, the input would be something other than text). I suppose it would have some aspects of an IDE because you’d be manipulating the whole code base rather than individual files.

                                            Regarding the language maven post: I enjoyed reading it a few years ago (and in practice, I’ve always ended up in the language camp as an early adopter). It was written 14 years ago, and I think the situation is different now. People have come to expect tooling, and it’s much easier to provide it in the form of editor/IDE plugins. Since language creators already have to do a huge amount of work to make programs in their languages executable in some form, I don’t think it would be an obstacle if the price of admission also included dealing with the storage format and representation.

                                            To your point about lack of implementations: don’t Smalltalk and derivatives such as Pharo qualify? I don’t know if they store ASTs but at least they don’t store text. I think they demonstrate that it’s at least technically possible to get away from text, so the lack of mainstream adoption might be caused by non-technical reasons like being in a local maximum in terms of tools.

                                            The problem, as always, is that there is such a huge number of tools already built around text that it’s very difficult to move to something else, even if the post-transition state of affairs would be much better.

                                            1. 1

                                              Text editors are language agnostic.

                                              I’m trying to conceive of an “editor” that works with something other than text. Say an AST. Okay, but in Pascal, you have to declare variables at the top of each scope; you can declare variables anywhere in C++. In Lua, you can just use a variable, no declaration required. LISP, Lua and JavaScript allow anonymous functions; only the latest versions of C++ and Java allow anonymous functions, but they they’re restricted in that you can’t create closures, since C++ and Java have no concept of closures. C++ has exceptions, Java has two types of exceptions, C doesn’t; Lua kind of has exceptions but not really. An “AST editor” would have to somehow know that is and isn’t allowed per language, so if I’m editing C++ and write an anonymous function, I don’t reference variables outside the scope of said function, but that it can for Lua.

                                              Okay, so we step away from AST—what other format do you see as being better than text?

                                              1. 1

                                                I don’t think it could be language agnostic - it would defeat the purpose as it wouldn’t be any more powerful than existing editors. However, I think it could offer largely the same UI, for similar languages at least.

                                                1. 1

                                                  And that is my problem with it. As stated, I use C, C++ [1], Lua, Make and a bit of Perl. That’s at least what? Three different “editors” (C/C++, Lua/Perl (maybe), Make). No thank you, I’ll stick with a tool that can work with any language.

                                                  [1] Sparingly and where we have no choice; no one on my team actually enjoys it.

                                                2. 1

                                                  Personally, I’m not saying you should need to give up your editor of choice. Text is a good (enough for now) UI for coding. But it’s a terrible format to build tools on. If the current state of the code lived in some sort of event-based graph database for example, your changes could trigger not only your incremental compiler, but source analysis (only on what’s new), it could also maintain a semantic changelog for version control, trigger code-generation (again, only what’s new).

                                                  There’s a million things that are currently “too hard” which would cease to be too hard if we had a live model of the code as various graphs (not just the ast, but call graphs, inheritance graphs, you-name-it) that we could subscribe to, or even write purely-functional consumers that are triggered only on changes.

                                        2. 4

                                          Inertia, arrogance, worse-is-better; Working systems being trapped behind closed doors at big companies; Hackers taking their language / editor / process on as part of their identity that needs to be defended with religious zeal; The complete destruction of dev tools as a viable business model; Methodologies-of-the-week…. The causes are numerous and varied, and the result is software dev is being hamstrung and we’re all wasting countless hours and dollars doing things computers should be doing for us.

                                          1. 2

                                            I think that part of the issue is that we haven’t seen good structured editor support outside of Haskell and some Lisps.

                                            Having a principled foundation for structured editor + a critical mass by having it work for a language like Javascript/Ruby, would go a long way to making this concept more mainstream. After which we could say “provide a grammar for favorite language X and get structured editor support!”. This then becomes “everything is structured at all levels!”

                                            1. 3

                                              I think it’s possible that this only works for a subset of languages.

                                              Structured editing is good in that it operates at a higher level than characters, but ultimately it’s still a text editing tool, isn’t it? For example, I think it should be trivial to pull up a list of (editable) definitions for all the functions in a project that call a given function, or to sort function and type definitions in different ways, or to substitute function calls in a function with the bodies of those functions to a given depth (as opposed to switching between different views to see what those functions do). I don’t think structured editing can help with tasks like that.

                                              There are also ideas like Luna, have you seen it? I’m not convinced by the visual representation (it’s useful in some situations but I’m not sure it’s generally effective), but the interesting thing is they provide both a textual and a visual representation of the code.

                                          2. 1

                                            Python has a standard library module for parsing Python code into an AST and modifying the AST, but I don’t know of any Python tools that actually use it. I’m sure some of them do, though.

                                          3. 1

                                            Smalltalk. The word you’re looking for is Smalltalk. ;)

                                            1. 2

                                              Lisp, in fact. Smalltalk lives in an image, Lisp lives in the real world. ;)

                                              Besides, Lisp already is the AST. Smalltalk has too much sugar, which is a pain in the AST.

                                              1. 1

                                                Possibly, but I’m only talking about a single aspect of it: being able to analyse and manipulate the code in more powerful ways than afforded by plain text. I think that’s equally possible for FP languages.

                                            2. 1

                                              Ultimately I think this is the only teneble solution. I feel I must be in the minority in having an extreme dislike of columnar-style code, and what I call “white space cliffs” where a column dictates a sudden huge increase in whitespace. But I realize how much it comes down to personal aesthetics, so I wish we could all just coexist :)

                                              1. 1

                                                Yeah, I’ve been messing around with similar ideas, see https://nick.zoic.org/art/waste-web-abstract-syntax-tree-editor/ although it’s only vapourware so far because things got busy …

                                                1. 1

                                                  Many editors already do this to some extent. They just render 4-space tabs as whatever the user asks for. Everything after the indent, though, is assumed to be spaced appropriately (which seems right, anyway?)

                                                  1. 1

                                                    You can’t convert to elastic-tabstop style from that, and without heavy language-grammar knowledge you can’t do this for 4-space “tabs” generally.

                                                    Every editor ever supports this for traditional indent style, though: http://intellindent.info/seriously/

                                                    1. 1

                                                      To be clear, you can absolutely render a file that doesn’t have elastic tabstops as if it did. The way a file is rendered has nothing to do with the actual text in the file.

                                                      It’s like you’re suggesting that you can’t render a file containing a ton of numbers as a 3D scene in a game engine. That would be just wrong.

                                                      Regardless, my point is specifically that this elastic tabstops thing is not necessary and hurts code readability more than it helps.

                                                      The pefantics of clarifying between tabs and tabstops is a silly thing as well. Context gives more than enough information to know which one is being talked about.

                                                      It sounds like this concept is creating more problems than it solves, and is causing your editor to solve problems that only exist in the seveloper’s imagination. It’s not “KISS” at all, quite the opposite.

                                                  2. 1

                                                    Because presentation isn’t just a function of the AST. Indentation usually is, but alignment can be visually useful for all kinds of reasons.

                                                  1. 21

                                                    I personally use Bitwarden, which I would say that fulfills all 3 points that you want, but I never tinkered with the SSH sync (although its privacy section ensures that its part of how it syncs). If you want a simpler and lower level alternative, probably pushcx’s advice of checking out pass works best for you.

                                                    1. 5

                                                      Strong +1. Been using Bitwarden for 1.5 years now and it’s everything I hoped it would be.

                                                      • It’s open source, which is a must-have for a password manager for me.
                                                      • I used it on ~every platform (Linux, Mac, Windows, Android, iOS) and it’s more than functional–a pleasure to use on most. More than I can say for any other password manager.
                                                      • It’s a tiny team (of ~1?) but it’s very active and has solid contributions from random people. Responses to issues are prompt and effective.
                                                      • There are several independent backend implementations (in Rust, Go, Ruby that I’ve seen, probably more now).
                                                      • I’ve read through big chunks of the code and it seems solid–something I could contribute back to. My only complaint was that the sync API was designed to do separate requests per entry, so some metadata about the number of entries does leak unnecessarily. I haven’t checked if that was fixed, but it’s fairly minor.

                                                      Overall the experience has only improved. I’m sure it has a bright future.

                                                      1. 3

                                                        Thanks for introducing me to this, it’s about what I am looking for. Time to ditch manually synced (& merged, of inevitable forks) KeePass.

                                                        1. 2

                                                          Can also recommend Bitwarden, I have not tried the desktop application, but the mobile version on Android and browser extensions have worked without any issues for me so far across different browsers and operating systems.

                                                          Edit: Apparently, I posted the same comment twice, my mistake.

                                                          1. 1

                                                            Is this one open source?

                                                            1. 4
                                                              1. 3

                                                                It is indeed, but there’s a caveat with self-hosting it that irks me. Though apparently there are ways to work around it, as mentioned.

                                                                1. 1

                                                                  Well, that’s cool! Thanks! :)

                                                                2. 1

                                                                  a few people incl. me have been able to code a client-compatible self-hosted version as well, gives you a lot of insight and trust in it

                                                                  https://github.com/vvondra/bitwarden-serverless https://github.com/jcs/bitwarden-ruby

                                                                  1. 1

                                                                    Nice! :)

                                                              1. 14

                                                                It’s worth to note that it was long ago that uBlock had a commercial owner. Therefore, the recommendation was to use uBlock origin, which was a fork from the original co-author of uBlock. So, as long as you use uBlock origin… Dismiss this story

                                                                1. 6

                                                                  If I recall, was it not gorhill who made uBlock, and in an alien event, handed that over to Chris, which in turn made uBlock the monster it is today? Please correct me if I’m wrong.

                                                                  1. 1

                                                                    That’s my recollection of that history too

                                                                1. 5

                                                                  Anything I could make better besides the code?

                                                                  Text escaping. Quotes on this page turn into… something eldritch.

                                                                  calvin commented: I wrote one, but haven’t deployed it anywhere.

                                                                  http://gopher.floodgap.com/gopher/gw?gopher://sdf.org:70/0/users/julienxx/Lobste.rs/szbati.txt

                                                                  1. 7

                                                                    It gets better with every requote.

                                                                    Somebody, somewhere, is reading utf-8 bytes and interpreting as latin1 characters, then outputting utf-8.

                                                                    1. 10

                                                                      Just about the vintage experience I’d expect from Gopher :^]

                                                                    2. 2

                                                                      Updated the code to replace some of the problematic chars, hopefully it should look better now.

                                                                      1. 1

                                                                        Seems it related to how Floodgap parses the thing. With a real gopher client it looks okay :/

                                                                        1. 1

                                                                          Hmm actually it looks weird too sometimes. I’ll have a look. Thanks for the heads up!

                                                                        1. 2

                                                                          Maybe free software licenses should have a provision explicitly barring people from using the software if they publicly advocate for licenses that try to prevent their political enemies from running a program as they wish for any purpose.

                                                                          1. 1

                                                                            That would make the licence fault state trigger on itself.

                                                                          1. 2

                                                                            Suing abandonware archives is too meanly. Personally I found Nintendo franchises like all these marios and zeldas as disgusting as Hollywood stuff. They had done lots of aggressive marketing in social networks recently to ensure “geek culture” is associated with their silly characters targeted to 5-year-old kids. I hope if all these ROMs would be removed from internets, this will lower popularity of Nintendo brands.

                                                                            1. 12

                                                                              It’s not abandonware when they’re maintaining their titles for virtual console on recent platforms. It’s not targeted at just 5-year-olds, it’s family entertainment that plenty of adults enjoy. Your comparison with Hollywood is far-fetched, and the adjectives you use are very trollish.

                                                                              1. 3

                                                                                when they’re maintaining their titles for virtual console

                                                                                Except they’re not? On a switch only VC Mario title is an arcade one. No Zelda except BOTW (the latest one). DS Zelda titles are only available second-hand as cartridges.

                                                                                1. 4

                                                                                  They’re available on the 3DS VC. I’ve been playing through them all. And I’m in my thirties, FWIW. :)

                                                                                  1. 4

                                                                                    This was not the case at one point if memory serves. It is also no guarantee going forward.

                                                                                    1. 2

                                                                                      I think the point that people have been making is that Nintendo had no interest in re-releasing these games until they discovered how popular they were in the ROM scene and second hand markets.

                                                                              1. 10

                                                                                I’ve been using that for over 2 years already as the SSH server residing inside initial ramdisk, for remote LUKS decryption purposes.

                                                                                1. 3

                                                                                  Cool! Do you have a link to how you set that up?

                                                                                1. 2

                                                                                  This needs (2013) in the title

                                                                                  1. 2

                                                                                    The last update was in May of this year though:

                                                                                    Last edited Mon May 7 16:24:22 2018

                                                                                    That said, changes were minor.

                                                                                    1. 1

                                                                                      From the rules:

                                                                                      When the story being submitted is more than a year or so old, please add the year the story was written to the post title in parentheses.

                                                                                      Written ≠ had one word changed.

                                                                                  1. 19

                                                                                    META: can we start adding year marks to these articles? This is non-news, the post is 4 years old.

                                                                                    1. 4

                                                                                      I recall him stating a tangential: that writing ruby libraries is a fairly unaesthetic tasks, but gives possibility of clean interfaces. Vice versa for py: lib’s code is nice, but the user interface sometimes leaves a lot to be desired.

                                                                                      1. 2

                                                                                        So this is a really late reply, but you sparked a thought: this is exactly what is currently happening in R, with the recent Hadley-inspired flood of packages that use non-standard evaluation to deliver interfaces that are super nice for interactive use (because the function takes care of evaluating your arguments in the context of the dataset argument).

                                                                                      1. 6

                                                                                        OK but the tag line is asinine. As a regular user of a Linux distribution it is actually impossible for me to take the time to do a full analysis on every package I install to get work done.

                                                                                        SOME level of trust has to be there or else the whole idea of a Linux distro can’t work.

                                                                                        1. 10

                                                                                          Well, AUR specifically isn’t part of the actual Arch distro. It’s no safer than the curl | bash invocations on github.

                                                                                          1. 4

                                                                                            But it makes your wonder if there is no middle-ground between the AUR and the community repository. Have a Git{Hub,Lab,ea} repository where the community can do pull requests for new packages and updates, but the pull requests are reviewed by trusted users or developers. And then build the packages on trusted infrastructure.

                                                                                            1. 9

                                                                                              This is how the OpenBSD ports tree works. Anyone can send a new port or an update to the ports@ mailing list. It then gets tested & committed by developers.

                                                                                              In this specific instance, I think what hurt Arch here is too good tooling. The community developed a lot of automation tools that boil down third party package installs to pressing enter a bunch of times - even with all the warnings present people stopped reviewing the packages. If I recall correctly, the main point of AUR was to gather community packages then promote the popular ones (by votes) to trusted repositories - essentially the promotion to trusted repos lost meaning as everyone can install yaourt/pacaur or $pkgmgr du jour and just go on with their life.

                                                                                            2. 2

                                                                                              It’s no safer than the curl | bash invocations on github.

                                                                                              Highly disagree. Using the AUR without any supporting tools like pacaur, you’re cloning into a git repository to retrieve the PKGBUILD and supporting files, so you have the opportunity to view them. With pacaur, you’re shown the PKGBUILD at first install so you can make sure nothing’s malicious, and then you’re shown diffs when the package version updates. That’s MUCH better than curl | bash already.

                                                                                              1. 1

                                                                                                Also, while you shouldn’t rely on others to spot malicious code, the fact that the malicious modifications were spotted and reverted after about 9 hours shows that the AUR is subject to at least slightly more scrutiny than random scripts from github or elsewhere are.

                                                                                                Admittedly, it doesn’t sound like this particular attack was very sophisticated or well hidden.

                                                                                          1. 5

                                                                                            How is this requirement enforced? Can you keep a Windows desktop/VM around to run whatever odd VPN software they have and proxy to your unix machine?

                                                                                            1. 6

                                                                                              That would be handy but nope :) It’s an internal version of this: https://aws.amazon.com/workspaces/

                                                                                              1. 1

                                                                                                Can you keep a Windows desktop/VM around to run whatever odd VPN software they have and proxy to your unix machine?

                                                                                                That’s how I roll, it’s actually pretty fine most of the time.

                                                                                              1. 7

                                                                                                One thing you might find interesting is IBM i’s command language. Arguments to commands are named and typed, and one very interesting property is that you can hit the F4 key and pop up a form with the command’s available options; and prompt further into those, with pop-up help. It then creates the command line to run. This series of toots is probably the best quick primer on why it’s interesting.

                                                                                                1. 5

                                                                                                  Every time someone mentions VMS, AS/400, AIX, HP-UX I wonder if there is any way to goof around these systems to see for myself the differences from the current mainstream servers.

                                                                                                  1. 3

                                                                                                    There’s an outfit called VMS Software that claims to be working on an x86_64 OpenVMS port. According to this roadmap document from 2017 they expect to have OpenVMS 9.2 ready for production on x86_64 sometime in 2020. It’ll still be proprietary, of course.

                                                                                                    1. 2

                                                                                                      There’s a hobbyist program for OpenVMS to get licenses. Gotta get an emulator or used hardware on eBay from there. Im not sure about the rest.

                                                                                                  1. 2

                                                                                                    So Chromium + Mozilla account for 57MLOC together, including comments and empty lines. Quite tiny compared to the billions lines of legacy Cobol code we hear about!

                                                                                                    1. 1

                                                                                                      I doubt there are literally billions of COBOL lines ever written. No, deploying one package to more nodes doesn’t count, sorry.

                                                                                                      IOW, [citation needed]

                                                                                                      1. 1

                                                                                                        Exactly, just that this claim gets thrown so much around tech forums.

                                                                                                    1. 23

                                                                                                      Kinda late on UNIX bashing bandwagon :)

                                                                                                      Also, Windows owes more of it’s legacy to VMS.

                                                                                                      1. 10

                                                                                                        It does, but users don’t use any of the VMSy goodness in Windows: To them it’s just another shitty UNIX clone, with everything being a file or a program (which is also a file). I think that’s the point.

                                                                                                        Programmers rarely even use the VMSy goodness, especially if they also want their stuff to work on Mac. They treat Windows as a kind of retarded UNIX cousin (which is a shame because the API is better; IOCP et al)

                                                                                                        Sysadmins often struggle with Windows because of all the things underneath that aren’t files.

                                                                                                        Message/Object operating systems are interesting, but for the most part (OS/2, BeOS, QNX) they, for the most part, degraded into this “everything is a file” nonsense…

                                                                                                        Until they got rid of the shared filesystem: iOS finally required messaging for applications to communicate on their own, and while it’s been rocky, it’s starting to paint a picture to the next generation who will finally make an operating system without files.

                                                                                                        1. 10

                                                                                                          If we talk user experiences, it’s more a CP/M clone than anything. Generations later, Windows still smells COMMAND.COM.

                                                                                                          1. 6

                                                                                                            yes, the bowels are VMS, the visible stuff going out is CP/M

                                                                                                            1. 4

                                                                                                              Bowels is a good metaphor. There’s good stuff in Windows, but you’ve got to put on a shoulder length glove and grab a vat of crisco before you can find any of it.

                                                                                                          2. 10

                                                                                                            I think you’re being a little bit harsh. End-users definitely don’t grok the VMSy goodness; I agree. And maybe the majority of developers don’t, either (though I doubt the majority of Linux devs grok journald v. syslogs, really understand how to use /proc, grok Linux namespaces, etc.). But I’ve worked with enough Windows shops to promise you that a reasonable number of Windows developers do get the difference.

                                                                                                            That said, I have a half-finished book from a couple years ago, tentatively called Windows Is Not Linux, which dove into a lot of the, “okay, I know you want to do $x because that’s how you did it on Linux, and doing $x on Windows stinks, so you think Windows stinks, but let me walk you through $y and explain to you why it’s at least as good as the Linux way even though it’s different,” specifically because I got fed up with devs saying Windows was awful when they didn’t get how to use it. Things in that bucket included not remoting in to do syswork (use WMI/WinRM), not doing raw text munging unless you actually have to (COM from VBScript/PowerShell are your friends), adapting to the UAC model v. the sudo model, etc. The Windows way can actually be very nice, but untraining habits is indeed hard.

                                                                                                            1. 6

                                                                                                              I don’t disagree with any of that (except maybe that I’m being harsh), but if you parse what I’m saying as “Windows is awful” then it’s because my indelicate tone has been read into instead of my words.

                                                                                                              The point of the article is that those differences are superficial, and mean so very little to the mental model of use and implementation as to make no difference: IOCP is just threads and epoll, and epoll is just IOCP and fifos. Yes, IOCP is better, but I desperately want to see something new in how I use an operating system.

                                                                                                              I’ve been doing things roughly the same way for nearly four decades, despite the fact that I’ve done Microsoft/IBM for a decade, Linux since Slackware 1.1 (Unix since tapes of SCO), Common Lisp (of all things) for a decade, and OSX for nearly that long. They’re all the same, and that point is painfully clear to anyone who has actually used these things at a high level: I edit files, I copy files, I run programs. Huzzah.

                                                                                                              But: It’s also obvious to me who has gone into the bowels of these systems as well: I wrote winback which was for a long time the only tools for doing online Windows backups of standalone exchange servers and domain controllers; I’m the author of (perhaps) the fastest Linux webserver; I wrote ml a Linux emulator for OSX; I worked on ECL adding principally CL exceptions to streams and the Slime implementation. And so on.

                                                                                                              So: I understand what you mean when you say Windows is not Linux, but I also understand what the author means when he says they’re the same.

                                                                                                              1. 2

                                                                                                                That actually makes a ton of sense. Can I ask what would qualify as meaningfully different for you? Oberon, maybe? Or a version of Windows where WinRT was front-and-center from the kernel level upwards?

                                                                                                                1. 2

                                                                                                                  I didn’t use the term “meaningfully different”, so I might be interpreting your question you too broadly.

                                                                                                                  When I used VMS, I never “made a backup” before I changed a file. That’s really quite powerful.

                                                                                                                  The Canon Cat had “pages” you would scroll through. Like other forth environments, if you named any of your blocks/documents it was so you could search [leap] for them, not because you had hierarchy.

                                                                                                                  I also think containers are very interesting. The encapsulation of the application seems to massively change the way we use them. Like the iOS example, they don’t seem to need “files” since the files live inside the container/app. This poses some risk for data portability. There are other problems.

                                                                                                                  I never used Oberon or WinRT enough to feel as comfortable commenting about them as I do about some of these other examples.

                                                                                                              2. 2

                                                                                                                If it’s any motivation I would love to read this book.

                                                                                                                Do you know of any books or posts I could read in the meantime? I’m very open to the idea that Windows is nice if you know which tools and mental models to use, but kind of by definition I’m not sure what to Google to find them :)

                                                                                                                1. 4

                                                                                                                  I’ve just been hesitant because I worked in management for two years after I started the book (meaning my information atrophied), and now I don’t work with Windows very much. So, unfortunately, I don’t immediately have a great suggestion for you. Yeah, you could read Windows Internals 6, which is what I did when I was working on the book, but that’s 2000+ pages, and most of it honestly isn’t relevant for a normal developer.

                                                                                                                  That said, if you’ve got specific questions, I’d love to hear them. Maybe there’s a tl;dr blog post hiding in them, where I could salvage some of my work without completing the entire book.

                                                                                                                2. 1

                                                                                                                  I, for one, would pay for your “Windows is not Linux” book. I’ve been developing for Windows for about 15 years, but I’m sure there are still things I could learn from such a book.

                                                                                                                3. 7

                                                                                                                  but users don’t use any of the VMSy goodness in Windows: To them it’s just another shitty UNIX clone, with everything being a file or a program (which is also a file). I think that’s the point.

                                                                                                                  Most users don’t know anything about UNIX and can’t use it. On the UI side, pre-NT Windows was a Mac knockoff mixed with MSDOS which was based on a DOS they got from a third party. Microsoft even developed software for Apple in that time. Microsoft’s own users had previously learned MSDOS menu and some commands. Then, they had a nifty UI like Apple’s running on MSDOS. Then, Microsoft worked with IBM to make a new OS/2 with its philosophy. Then, Microsoft acquired OpenVMS team, made new kernel, and a new GUI w/ wizard-based configuration of services vs command line, text, and pipes like in UNIX.

                                                                                                                  So, historically, internally, layperson-facing, and administration, Windows is a totally different thing than UNIX. Hence, the difficulty moving Windows users to UNIX when it’s a terminal OS with X Windows vs some Windows-style stuff like Gnome or KDE.

                                                                                                                  You’re also overstating the everything is a file by conflating OS’s that store programs or something in files vs those like UNIX or Plan 9 that use file metaphor for about everything. It’s a false equivalence: from what I remember, you don’t get your running processes in Windows by reading the filesystem since they don’t use that metaphor or API. It’s object based with API calls specific to different categories. Different philosophy.

                                                                                                                  1. 3

                                                                                                                    Bitsavers has some internal emails from DEC at the time of David Cutler’s departure.

                                                                                                                    I have linked to a few of them.

                                                                                                                    David Cutler’s team at DECwest was working on Mica (an operating system) for PRISM (a RISC CPU architecture). PRISM was canceled in June of 1988. Cutler resigned in August of 1988 and 8 other DECwest alumni followed him at Microsoft.

                                                                                                                4. 5

                                                                                                                  I have my paper copy of The Unix Hater’s Handbook always close at hand (although I’m missing the barf bag, sad to say).

                                                                                                                  1. 5

                                                                                                                    I always wanted to ask the author of The Unix Hater’s Handbook if he’s using Mac OS X

                                                                                                                    8~)

                                                                                                                    1. 5

                                                                                                                      It was edited by Simson Garfinkel, who co-wrote Building Cocoa Applications: a step-by-step guide. Which was sort of a “port” of Nextstep Programming Step One: object-oriented applications

                                                                                                                      Or, in other words, “yes” :)

                                                                                                                      1. 2

                                                                                                                        Add me to the list curious about what they ended up using. The hoaxers behind UNIX admitted they’ve been coding in Pascal on Macs. Maybe it’s what the rest were using if not Common LISP on Macs.

                                                                                                                    2. 7

                                                                                                                      Beat me to it. Author is full of it right when saying Windows is built on UNIX. Microsoft stealing, cloning, and improving OpenVMS into Windows NT is described here. This makes the Linux zealots’ parodies about a VMS desktop funnier given one destroyed Linux in desktop market. So, we have VMS and UNIX family trees going in parallel with the UNIX tree having more branches.

                                                                                                                      1. 4

                                                                                                                        The author doesn’t say Windows is built on Unix.

                                                                                                                        1. 5

                                                                                                                          “we are forced to choose from: Windows, Apple, Other (which I shall refer to as “Linux” despite it technically being more specific). All of these are built around the same foundational concepts, those of Unix.”

                                                                                                                          Says it’s built on the foundational concepts of UNIX. It’s built on a combo of DOS, OS/2, OpenVMS, and Microsoft concepts they called the NT kernel. The only thing UNIX-like was the networking stack they got from Spider Systems. They’ve since rewritten their networking stack from what I heard.

                                                                                                                          1. 4

                                                                                                                            Says it’s built on the foundational concepts of UNIX.

                                                                                                                            I don’t see any reason to disagree with that.

                                                                                                                            The only thing UNIX-like …

                                                                                                                            I don’t think that’s a helpful definition of “unix-like”.

                                                                                                                            It’s got files. Everything is a file. Windows might even be a better UNIX than Linux (since UNC)

                                                                                                                            Cutler might not have liked UNIX very much, but Windows NT ended up UNIX anyway because none of that VMS-goodness (Versions, types, streams, clusters) ended up in the hands of Users.

                                                                                                                            1. 10

                                                                                                                              It’s got files. Everything is a file.

                                                                                                                              Windows is object-based. It does have files which are another object. The files come from MULTICS which UNIX also copied in some ways. Even the name was a play on it: UNICS. I think Titan invented the access permissions. The internal model with its subsystems were more like microkernel designs running OS emulators as processes. They did their own thing for most of the rest with the Win32 API and registry. Again, not quite how a UNIX programming guide teaches you to do things. They got clustering later, too, with them and Oracle using the distributed, lock approach from OpenVMS.

                                                                                                                              Windows and UNIX are very different in approach to architecture. They’re different in how developer is expected to build individual apps and compose them. It wasn’t even developed on UNIX: they used OS/2 workstations for that. There’s no reason to say Windows is ground in the UNIX philosophy. It’s a lie.

                                                                                                                              “Windows NT ended up UNIX anyway because none of that VMS-goodness (Versions, types, streams, clusters) ended up in the hands of Users.”

                                                                                                                              I don’t know what you’re saying here. Neither VMS nor Windows teams intended to do anything for UNIX users. They took their own path except for networking for obvious reasons. UNIX users actively resisted Microsoft tech, too. Especially BSD and Linux users that often hated them. They’d reflexively do the opposite of Microsoft except when making knockoffs of their key products like Office to get desktop users.

                                                                                                                              1. 3

                                                                                                                                Windows is object-based.

                                                                                                                                Consider what methods of that “object” a program like Microsoft Word must be calling besides “ReadFile” and “WriteFile”.

                                                                                                                                That the kernel supports more methods is completely pointless. Users don’t interact with it. Programmers avoid it. Sysadmins don’t understand it and get it wrong.

                                                                                                                                I don’t know what you’re saying here.

                                                                                                                                That is clear, and yet you’re insisting I’m wrong.

                                                                                                                                1. 3

                                                                                                                                  Except, that’s completely wrong.

                                                                                                                                  I just started Word and dumped a summary of its open handles by object type:

                                                                                                                                  C:\WINDOWS\system32>handle -s -p WinWord.exe
                                                                                                                                  
                                                                                                                                  Nthandle v4.11 - Handle viewer
                                                                                                                                  Copyright (C) 1997-2017 Mark Russinovich
                                                                                                                                  Sysinternals - www.sysinternals.com
                                                                                                                                  
                                                                                                                                  Handle type summary:
                                                                                                                                    ALPC Port       : 33
                                                                                                                                    Desktop         : 1
                                                                                                                                    Directory       : 3
                                                                                                                                    DxgkSharedResource: 2
                                                                                                                                    DxgkSharedSyncObject: 1
                                                                                                                                    EtwRegistration : 324
                                                                                                                                    Event           : 431
                                                                                                                                    File            : 75
                                                                                                                                    IoCompletion    : 66
                                                                                                                                    IoCompletionReserve: 1
                                                                                                                                    IRTimer         : 8
                                                                                                                                    Key             : 171
                                                                                                                                    KeyedEvent      : 24
                                                                                                                                    Mutant          : 32
                                                                                                                                    Process         : 2
                                                                                                                                    Section         : 67
                                                                                                                                    Semaphore       : 108
                                                                                                                                    Thread          : 138
                                                                                                                                    Timer           : 7
                                                                                                                                    Token           : 3
                                                                                                                                    TpWorkerFactory : 4
                                                                                                                                    WaitCompletionPacket: 36
                                                                                                                                    WindowStation   : 2
                                                                                                                                  Total handles: 1539
                                                                                                                                  

                                                                                                                                  Each of these types is a distinct kernel object with its own characteristics and semantics. And yes, you do create and interact with them from user-space. Some of those will be abstracted by lower-level APIs, but many are directly created and managed by the application. You’ll note the number of open “files” is a very small minority of the total number of open handles.

                                                                                                                                  Simple examples of non-file object types commonly manipulated from user-land include Mutants (CreateMutex) and Semaphores (CreateSemaphore). Perhaps the most prominent example is manipulating the Windows Registry; this entails opening “Key” objects, which per above are entirely distinct from regular files. See the MSDN Registry Functions reference.

                                                                                                                                  1. 0

                                                                                                                                    None of these objects can exist on a disk; they cannot persist beyond shutdown, and do not have any representation beyond their instantaneous in-memory instance. When someone wants an “EtwRegistration” they’re creating it again and again.

                                                                                                                                    Did you even read the article? Or are you trolling?

                                                                                                                                    1. 3

                                                                                                                                      None of these objects can exist on a disk; they cannot persist beyond shutdown, and do not have any representation beyond their instantaneous in-memory instance. When someone wants an “EtwRegistration” they’re creating it again and again.

                                                                                                                                      Key objects do typically exist on disk. Albeit, the underlying datastore for the Registry is a series of files, but you never directly manipulate those files. In the same sense you may ask for C:\whatever.txt, you may ask for HKLM:\whatever. We need to somehow isolate the different persisted data streams, and that isolation mechanism is a file. That doesn’t mean you have to directly manipulate those files if the operating system provides higher-level abstractions. What exactly are you after?

                                                                                                                                      From the article:

                                                                                                                                      But in Unix land, this is a taboo. Binary files are opaque, say the Unix ideologues. They are hard to read and write. Instead, we use Text Files, for it is surely the path of true righteousness we have taken.

                                                                                                                                      The Windows Registry, which is a core part of the operating system, is completely counter to this. It’s a bunch of large binary files, precisely because Microsoft recognised storing all that configuration data in plain text files would be completely impractical. So you don’t open a text file and write to it, you open a Registry key, and store data in it using one of many predefined data types (REG_DWORD, etc…).

                                                                                                                                      Did you even read the article? Or are you trolling?

                                                                                                                                      It sounds like you’re not interested in a constructive and respectful dialogue. If you are, you should work on your approach.

                                                                                                                                      1. -3

                                                                                                                                        What exactly are you after?

                                                                                                                                        Just go read the article.

                                                                                                                                        It’s about whether basing our entire interactions with a computer on a specific reduction of verbs (read and write) is really exploring what the operating system can do for us.

                                                                                                                                        That is a very interesting subject to me.

                                                                                                                                        Some idiot took party to the idea that Windows basically “built on Unix” then back-pedalled it to be about whether it was based on the same “foundational” concepts, then chooses to narrowly and uniquely interpret “foundational” in a very different way than the article.

                                                                                                                                        Yes, windows has domains and registries and lots of directory services, but they all have the exact same “file” semantics.

                                                                                                                                        But now you’re responding to this strange interpretation of “foundational” because you didn’t read the article either. Or you’re a troll. I’m not sure which yet.

                                                                                                                                        Read the article. It’s not well written but it’s a very interesting idea.

                                                                                                                                        Each of these types is a distinct kernel object with its own characteristics and semantics

                                                                                                                                        Why do you bring this up in response to whether Windows is basically the same as Unix? Unix has lots of different kernel “types” all backed by “handles”. Some operations and semantics are shared by handles of different types, but some are distinct.

                                                                                                                                        I don’t understand why you think this is important at all.

                                                                                                                                        It sounds like you’re not interested in a constructive and respectful dialogue. If you are, you should work on your approach.

                                                                                                                                        Do you often jump into the middle of a conversation with “Except, that’s completely wrong?”

                                                                                                                                        Or are you only an asshole on the Internet?

                                                                                                                                        1. 4

                                                                                                                                          Or are you only an asshole on the Internet?

                                                                                                                                          I’m not in the habit of calling people “asshole” anywhere, Internet or otherwise. You’d honestly be more persuasive if you just made your points without the nasty attacks. I’ll leave it at that.

                                                                                                                                2. 2

                                                                                                                                  networking for obvious reasons

                                                                                                                                  Them being what? Is the BSD socket API really the ultimate networking abstraction?

                                                                                                                                  1. 7

                                                                                                                                    The TCP/IP protocols were part of a UNIX. AT&T gave UNIX away for free. They spread together with early applications being built on UNIX. Anyone reusing the protocols or code will inherit some of what UNIX folks were doing. They were also the most mature networking stacks for that reason. It’s why re-using BSD stacks was popular among proprietary vendors. On top of the licensing.

                                                                                                                                    Edit: Tried to Google you a source talking about this. I found one that mentions it.

                                                                                                                      1. 12

                                                                                                                        Wow, that’s a lot of bloat, and a great demonstration of why I don’t use Gnome (or KDE).

                                                                                                                        I’m much happier with StumpWM, which just does its job and doesn’t try to integrate with everything.

                                                                                                                        1. 12

                                                                                                                          Unfortunately, if you want Wayland — and I do, as it really has made all my vsync/stuttering/tearing issues go away; Fedora is now as smooth as my mac/windows — your choices are limited. Sway is starting to look good but otherwise there’s not much at the minimal end of the spectrum.

                                                                                                                          If I have to choose between GNOME and KDE, I pick GNOME for the same reasons the author of this piece does. I was hoping the tips would come down to more than “uninstall tracker, evolution daemons et al. and hope for the best”. I’ve done that before on Fedora and ended up wrangling package dependancies in yum. I really wish GNOME/Fedora would take this sort of article to heart and offer a “minimal GNOME” option which is effectively just gnome-shell.

                                                                                                                          1. 3

                                                                                                                            Why is Wayland so poorly implemented? Is it because few distributions have it as default or is it because it’s harder? I see many tilling wm written in 50 different languages and it seems that sway is getting slowly it’s way to a usable wm, but it seems like a slow adoption from my point of view.

                                                                                                                            1. 4

                                                                                                                              It is a slow adoption, I’m not particularly sure why. Most (all?) of the tiling wms for X leverage Xlib or XCB, right? Perhaps it’s just needed some time for a similarly mature compositor lib to appear for Wayland (indeed, Sway is replacing their initial use of wlc with wlroots which may end up being that).

                                                                                                                              As for why Wayland in general isn’t more prevalent, I’d guess compatibility. X is just so well established that replacing it is inherently a lot of work in the “last mile”. Fedora/GNOME/Wayland works great for me with my in-kernel open AMD driver. Maybe it’s not as good for Intel iGPUs? Maybe it’s not so good on Nvidia systems? Maybe it doesn’t work at all on arm SoC things? I have no idea, but I can easily understand distros holding off on making it default.

                                                                                                                              1. 3

                                                                                                                                Maybe it’s not so good on Nvidia systems?

                                                                                                                                Exactly, the proprietary driver does not support GBM, they’ve been pushing their own thing (EGLStreams) that compositors don’t want.

                                                                                                                                Maybe it’s not as good for Intel iGPUs? Maybe it doesn’t work at all on arm SoC things?

                                                                                                                                Everything works great with any open drivers, including VC4 for the RPi.

                                                                                                                                1. 2

                                                                                                                                  Maybe it’s not as good for Intel iGPUs?

                                                                                                                                  Just a data point: I’ve got a new thinkpad recently, installed linux on it, together with gnome3. Only yesterday I’ve discovered it was running on wayland the whole time, with no apparent problems what-so-ever. And that includes working with a dock with two further displays attached, and steam games. Even the touch panel on the screen works without any further config.

                                                                                                                              2. 1

                                                                                                                                Unfortunately, if you want Wayland — and I do, as it really has made all my vsync/stuttering/tearing issues go away; Fedora is now as smooth as my mac/windows

                                                                                                                                And effortless support for multiple displays with different DPIs, plus better isolation of applications. I completely agree, when I switched to Wayland on Fedora 25 or 26, it was the first time I felt in a long time that the Linux desktop is on par again with macOS and Windows (minus some gnome-shell bugs that seem to have been mostly fixed now).

                                                                                                                                At some point, I might switch to Sway. But with Sway 0.15, X.org applications are still scaled up and blurry on a HiDPI screen (whereas they work fine in GNOME). I’ll give it another go once Sway 1.0 is out.

                                                                                                                                1. 1

                                                                                                                                  not much at the minimal end of the spectrum

                                                                                                                                  Weston! :)

                                                                                                                                  My fork even has fractional scaling (Mac/GNOME style downscaling) and FreeBSD support.

                                                                                                                                  1. 1

                                                                                                                                    There’s a Wayland for FreeBSD? I thought Wayland had a lot of Linux specific stuff in it?

                                                                                                                                    1. 3

                                                                                                                                      Sure, there is some, but who said you can’t reimplement that stuff?

                                                                                                                                      • libwayland, the reference implementation of client and server libraries, uses epoll. We have an epoll implementation on top of kqueue.
                                                                                                                                      • Most compositors use libinput to read from input devices, and libinput:
                                                                                                                                        • reads from evdev devices (via libevdev but that’s a really thin lib). We have evdev support in many drivers, including Synaptics (with TrackPoint support).
                                                                                                                                        • uses libudev for device lookup and hotplug. We have a partial libudev implementation on top of devd.
                                                                                                                                      • For GPU acceleration, compositors need a modern DRM/KMS/GBM stack with PRIME and whatnot. We have that.
                                                                                                                                      • Compositors also need some way of managing a virtual terminal (vt), this is the fun part (not).
                                                                                                                                        • direct vt manipulation / setuid wrapper (weston-launch) is pretty trivial to modify to support FreeBSD, that’s how Weston and Sway work right now
                                                                                                                                        • I’m building a generic weston-launch clone: loginw
                                                                                                                                        • ConsoleKit2 should work?? I think we might get KDE Plasma’s kwin_wayland to work on this??
                                                                                                                                        • there were some projects aimed at reimplementing logind for BSD, but they didn’t go anywhere…
                                                                                                                                      1. 1

                                                                                                                                        For GPU acceleration, compositors need a modern DRM/KMS/GBM stack with PRIME and whatnot. We have that.

                                                                                                                                        Do NVidia’s drivers use the same stack, or are they incompatible with the Wayland port? I’d give Wayland a try, but it seems hard to find a starting point… I’m running CURRENT with custom Poudriere-built packages, so patches or non-standard options aren’t a problem, I just can’t find any info on how to start.

                                                                                                                                        1. 2

                                                                                                                                          No, proprietary nvidia drivers are not compatible. Nvidia still does not want to support GBM, so even on Linux, support is limited (you can only use compositors that implemented EGLStreams, like… sway 0.x I think?) Plus, I’m not sure about the mode setting situation (nvidia started using actual proper KMS on Linux recently I think?? But did they do it on FreeBSD?)

                                                                                                                                          It should be easy to import Nouveau to drm-next though, someone just has to do it :)

                                                                                                                                          Also, you can get it to work without hardware acceleration (there is an scfb patch for Weston), but I think software rendering is unacceptable.

                                                                                                                                  2. 1

                                                                                                                                    I tried to give Wayland a try twice, on both my media PC and a new Laptop. It’s still really not there yet. I use i3 on X11 and Sway is really buggy, lacks a lot of backwards compatibility stubs (notification tray icons are a big one) and just doesn’t quite match i3 yet. Weston, the reference window manager, had a lot of similar problems when using it with my media PC.

                                                                                                                                    I want to move on to Wayland, and I might give that other i3 drop-in for Wayland a try in the future, but right now it’s still not there yet.

                                                                                                                                1. 1

                                                                                                                                  In our IT student’s club we’ve had one octane 2, but couldn’t bring it up due to proprietary connectors.