Threads for idiot-bird

  1. 7

    Lots of infosec people recently came to https://infosec.exchange and https://defcon.social

    I’ve heard good things about https://hackers.town

    1. 2

      I quite like It, including the extra features of the glitch-soc friendly fork of mastodon.

      I’m eyeing that stack (and features) as the basis for a local community – the idea of longer messages and better image support hidden behind a CW may convince some folks that were previously averse to the small character limit, bad threading model for longer posts on Twitter.

      Does anyone have opinions on other fediverse software stacks? I like the architecture and resource footprint of plemora, but have been turned off by some of the political baggage with it and its forks. :(

      1. 2

        I really like glitch-soc. If you self-host, you should definitely fork whichever server implementation you use. Even basic stuff like changing character limits and re-theming is hard to really do without forking the code. I also think more people should know about Misskey. It introduces lots of the features you didn’t know you wanted and many you probably still don’t.

        I share your thoughts about pleroma.

      2. 2

        I’m on https://infosec.exchange and it’s been an enjoyable experience. I mostly chose it because a lot of the people I actually bother paying attention to on Twitter moved there and I have to say the admin is awesome. I’ve seen some good discussions bleeding over from ruby.social but haven’t had time to check it out yet.

      1. 2

        I wish someone had exposed me to something like this decades ago when first learning to program. I plan on trying to work through the explanations with my older children today or this weekend.

        1. 10

          Excel is a local maxima, which sucks because it’s not good enough. Ordinary people can use Excel, which is great, but then the date type is actively harmful, which is insane. It mangles zipcodes in spite of it having been made by a US corporation for its whole existence! Like, I get it, sometimes you mangle foreign conventions due to unfamiliarity, but all of New England has its zipcodes mangled. That’s bad! And then because Excel is a local maxima, new products like Numbers and Sheets clone it instead of searching for a new maxima. It’s a pity because we can definitely do better.

          1. 4

            I’ll take a stab at some things I think would make it much better for many of its uses:

            • Allow clearly separated display and editing views*: the current system involves hiding cells or referencing cells outside of the current view which I think could be handled better by having separate display and editing views. You can basically do this now but it’s really cumbersome.
            • A mechanism for running commands on sets of data and either replacing it in place or inserting the results somewhere: the current idiom is to write a bunch of formulas, copy, and the paste as values, which is horribly broken.
            • Better delineation of tables within Excel which would also provide better guard rails against things like sorting a single column when you meant to sort a whole table.
            • Better handling for non-numeric data, this is touched upon in your complaint about zipcodes - Excel presumes that everything is fundamentally a number which I think it inherits from primarily financial spreadsheet programs.
            • Better tools for creating custom data types - related to the above.

            Fundamentally, I’d say that my complaint about it is that Excel really, really wants to be a financial spreadsheet program when many (perhaps most) users want it to be a tool for working with generic tabular data.

            * More broadly, I’d say this and several of my other points boil down to “Excel doesn’t do a great job at allowing the user to control complexity” and this becomes more clear as the volume of data manipulated in it increases. I think that’s one of the differences between it and, say, visidata. I prefer visdata for my own use but the reality is that many of the people I interact with simply won’t learn to use tools such as it rather than Excel (for a variety of reasons, some of which are fair).

            1. 3

              A mechanism for running commands on sets of data and either replacing it in place or inserting the results somewhere: the current idiom is to write a bunch of formulas, copy, and the paste as values, which is horribly broken.

              The powerquery feature is really good for this, though its transformation dsl is weaker than excel formulates.

              Better tools for creating custom data types - related to the above.

              I’m hoping the new “linked data types” will help with this! Right now you can make custom data types but it’s pretty cumbersome. It’s pretty new though and I think they’re still improving it.

            2. 2

              maxima

              Maximum. ‘Maxima’ is the plural🙂

              1. 1

                Not disagreeing at all, but curious what you think some of the big changes would be if a great designer did a total rethink, but incorporating the good stuff that works?

                1. 10

                  Take a look at Quantrix Modeller. Lotus had two spreadsheet products:

                  • 123, which was a VisiCalc clone. It used a rectangular grid because they thought that it would appeal to accountants.
                  • Improv, which had a clean separation of data and formulae and used pivot tables as its core data type. You’d define a new column as a single formula, rather than copying and pasting. This is the one that accountants actually liked.

                  Excel is a 123 clone, as are most other spreadsheets. Quantrix Modeller is, as far as I know, the only surviving Improv clone. They have some great videos about why this model is better. It’s less error-prone, easier to change, and so on.

                  When most people say that they want a spreadsheet, what they actually want is a database with a rich set of numerical library routines.

                  1. 3

                    Ask For Pricing

                    No thanks.

                    I guess there are niches where you can still get away with this, but it’s become (even in the enterprise space, where it used to rule) less common to the degree that I often see products without at least some general pricing guidance published get pushed to the bottom of procurement lists simply because no one can be faffed to talk to a bunch of sales people to get quotes just to do a comparison.

                      1. 2

                        When most people say that they want a spreadsheet, what they actually want is a database with a rich set of numerical library routines

                        Hear, hear!

                      2. 2

                        I’m not imagining a big redesign. Just basic stuff: add types for timestamps, civil times, durations, locations, currency. Have a difference between something’s type and its display. Fix the 1900 leap year bug FFS. Default to not clobbering the next cell when something doesn’t fit. You could still have freeform A1 cells but you should push users towards using it like a database with proper rows and columns as much as you can. Design the app as though it were the most commonly used tool in business and science analysis and not whatever Dan Bricklin happened to think of in 1979.

                        1. 10

                          I am confused when you say it is a local maxima yet think small improvements would fix it - that is a contradiction.

                    1. 2

                      With the nature of Excel it can be used in different ways to achieve the same goal. Because of this the user should know the indendent way to use software from the developer. This might be possible with a tutorial or a video like You Suck at Excel with Joel Spolsky.

                      1. 1

                        Am I the only one who finds watching that video incredibly painful? There’s so many kludgy approaches to things you could avoid with a program driven more by explicit (typed) commands. The select-copy-paste values pattern to switch from formulas to values is particularly egregious but I think this general approach shows up in a lot of other places. For little 15 entry sheets like this it’s not a big deal, but if I’m dealing with tens or hundreds of thousands of rows the problems start becoming obvious.

                        I’m aware that its easier to just ingest sheets into Access (or Base or whatever) or to read the values into a program and manipulate them that way (or at a REPL) but Microsoft (quite unintentionally) developed this relatively accessible data manipulation tool full of anti-patterns that rapidly became close to the lowest common denominator in the field.

                        I do appreciate the caution against vlookup: I once worked in an office with ~200 people where some nitwit had decided to create what was effectively a personnel, training, and travel database run entirely off of vlookup and undocumented macros for ingesting CSV files from the official HR databases. The results were a mess.

                        1. 3

                          I’ve been thinking about Excel being a terrible interface to a great tool that’s just extremely useful in practice (a little bit like git) for quite some time. And I really wanted something more structured.

                          In case anyone’s in the same boat, I’ve checked out quite a few projects and settled on Grist (https://www.getgrist.com/) - being able to keep the tables and the formulas, but also keep it in a reasonable format and drop down to python as needed is just perfect access/excel combination for me.

                          There’s lots of other programmable docs options out there like airtable and notion, but they never resonated with me.

                          1. 1

                            Thanks, that is interesting and incorporates many of the features I find desirable for this. I will have to noodle about with it.

                      1. 1

                        In principle, any technology that could plausibly become essentially required to earn a livelihood or live a normal life should be subject to intense scrutiny. And it should be free/open source. I agree empathically with both points.

                        But for the kind of statistical modeling we call “AI” to attain such a status it has to be…well, good. I feel like the rhetorical question at the end drives home this point, perhaps in a different way than OP intended:

                        Well, would you trust a random person walking by you suddenly telling you how to write a program? They may be correct, but would you trust them?

                        Even if you had a reason to trust their intentions, you still have to exercise discretion to decide if the solution they come up with is correct, or takes a good approach, or is even relevant to what you’re trying to do. Okay, maybe the code it regurgitates for you is passingly close to a good solution, but now what you’ve done is shifted the focus of your time away from writing good code to fixing dubious code (which no one actually wrote, so you can’t ask them about it). It’s the mythical person-month, robot edition.

                        Maybe I’m just being a curmudgeon, but until we get a handle on what intelligence actually is and make meaningful progress on the artificial general intelligence front, I just don’t see any way tools like this will ever be good enough to give anyone an edge, let alone become a de facto standard.

                        1. 2

                          I just don’t see any way tools like this will ever be good enough to give anyone an edge, let alone become a de facto standard.

                          On the contrary, I would argue that specialized AI (rather than general), is more likely to give an edge to some people (who are more proficient in using it) over others (who are not). Andrew Cantino actually had an interesting article about why properly engineered prompts are essential to maximizing GPT-3 performance. Since these (especially practical applications like code completion systems) are just a variety of powerful tool (and not really intelligent), they have the tendency to confer power upon those who are most adroit at using them. I don’t think that’s here yet, but I suspect it will be soon.

                          A truly general artificial intelligence will just benefit whoever can use access it the most, these narrow specialist applications will likely benefit those who can use them the best (given sufficient access).

                          1. 1

                            I just don’t see any way tools like this will ever be good enough to give anyone an edge, let alone become a de facto standard.

                            I do hope so. I don’t think this is a true “AI” people think about when mentioned either, it’s more a glorified Markov chain with a huge curated dataset. Well, that’s my assumption at least, not knowing what’s going on behind the scenes.

                            1. 3

                              My point is basically that “a glorified X with a huge curated dataset” is the state of the art in any sub-field of what we call AI. :P The fact that you need these huge datasets for your system to “learn” anything says a lot about how intelligent it is. Minds don’t need thousands of examples; they need a quick explanation and a handful of examples. Real intelligence involves abstract thinking, which machines simply are not capable of at this point.

                              I wouldn’t hire a junior engineer I thought incapable of abstract thinking, and I wouldn’t waste my time with bot-generated, partially correct code…at least not one that couldn’t learn from an explanation of what it did wrong. That’s the bar for me. So I share your hope that others would set a similarly high bar, otherwise we are susceptible to any number of AI marketing fads!

                          1. 2

                            I’m a bit surprised Gitit didn’t make the list. I use it for my house wiki and have generally enjoyed the experience. It’s a bit more popular than some of the other ones on this list and I’ve had nothing but good experiences with it.

                            1. 7

                              It’s a mistake to have this conversation with your team. Just do the most default thing and spend zero energy on this. With the time you save, make the product better for users.

                              Sometimes fussing over code patterns can benefit users—clear symbol names prevent errors, for instance—but if it’s got no downstream effects, it’s not worth the time investment.

                              If the software exists not for its users but for the joy of coding, OK, knock yourself out.

                              1. 1

                                All true, but this is a discussion that everyone who’s ever programmed can have a low-effort opinion on. So it goes right to the top of popularity-based discussion boards like Lobsters (and reddit/USENET/HN).

                                Popularity is a separate dimension from importance. Anyone that spends work time arguing and enforcing this stuff needs more work to do.

                                BTW smart tabs are the true way, all other formatting schemes are inferior.

                                1. 1

                                  Anyone that spends work time arguing and enforcing this stuff needs more work to do.

                                  I suspect it’s more that anyone who wants to argue this after a standard has been set is more interested in getting their way than getting on with work. Having an opinion is only natural (and can be amusing in some settings), thinking it’s more important than work is the problem.

                              1. 18

                                and at least 64GB of RAM is not useful

                                This is one I keep seeing and don’t get. Especially the “I need 16gb just to run Chrome” people. I’m using 8gb for development, running 4x SQL servers, VS, browsers at the same time - and it works just fine. You really need to have specific use case to require more. It’s fine if they have such use case, but it’s really not a base dev requirement.

                                1. 12

                                  They probably take a quick look at how much Chrome is taking memory on the VIRT column and then decide that whatever their RAM is, they don’t have enough to run even just the browser.

                                  1. 1

                                    You know, you might just be right. Btw, is windows also showing RAM usage in a similar manner? I never bother to look (I’m one of the people the author didn’t mention, which is, running Linux because I like it, it does things I want it to do, and I don’t bother anyone with it if they don’t ask me about it. I will talk a lot about it, I talk about all my favorite things, but I never judge people using windows, and for most people I’d actually suggest macs over linux.

                                    1. 2

                                      is windows also showing RAM usage in a similar manner?

                                      No, the most visible indicator (first tab of the windows 10 task manager) shows physical pages taken by the process. The old task manager and the details tab are configurable but I believe still show the physical ram taken, including IO caches.

                                      1. 1

                                        Assuming that most people looking at this use Resource Monitor (the older Task Manager doesn’t provide as much detail and there’s so many 3rd party tools that there’s no unified way to discuss them), I think the culprit is more Windows’ memory use strategy than information displayed about virtual memory. Windows tends to run with very little “free” memory (currently my Windows system shows ~100 MB of ~12 GB memory as “free”) and most available memory in “standby” (currently ~6 GB for me).

                                        In theory, standby memory is supposed to just be cached information that’s available instantaneously for processes requiring more “in use” memory. My experience is that the only time I actually benefit from clearing standby memory is for playing games - it seems as though Windows does hesitate to free standby for use by currently active applications though I’ve never cared enough to investigate this in detail. Microsoft’s position is that it makes sense to move as much data to memory as the hardware can support. This makes sense though I’m dubious that the way Windows does this makes the most sense: it certainly seems that both of my Linux laptops are snappier in general though obviously memory use is only one component of that. There’s a fairly short SuperUser thread on standby memory in Windows addressing this.

                                    2. 8

                                      I always pick a machine with the maximum amount of memory that is somewhat affordable at the time of buying, because I have found that most of the time the internal memory is the limiting factor for longevity. The more RAM it has, the longer I will be able to use it. Running newer stuff on an older CPU has never been a big problem, but (non-upgradable) RAM is.

                                      Case in point: I still use a laptop from 2015 on a daily basis without any problem. But that is because I bought it with 16Gb RAM, which sounded back then as an absurd amount.

                                      1. 4

                                        Linking the debug version of libxul.so (most of Firefox) requires more than 16GB :D Otherwise, yeah, most things I do are not RAM heavy at all. CPU speed is much more useful generally.

                                        1. 3

                                          I’ve experience multiple times that windows gives me a popup about running out of ram (16GB), then start to force programs to close, usually because of chrome. I’ve never run into this issue on Linux.

                                          1. 2

                                            What version of Windows are you running? I can never recall coming across such a popup for memory proper though those used to be very common regarding running out of virtual memory on my old laptop from circa 2007 - my one Windows laptop is a ~5 year old Dell running Win 10 with 12 GB memory (that said, I killed a lot of Windows behaviors I regard as resource hogs when I bought this so that might have helped) though anything really memory intensive I shove to my server…

                                            1. 1

                                              They likely have the swap file disabled. If so, then you can easily encounter that error using memory hungry programs like Chrome. They kind of assume you have a swap file to move cold objects to when memory pressure starts increasing rather than going lean themselves.

                                              1. 1

                                                Thanks, I hadn’t ever considered disabling my swap file…

                                              2. 1

                                                Windows 10 LTSC 2019. If it never did setup a swap file, then i cry on the behalf of the entire enterprise world.

                                            2. 3

                                              If you want to compile LLVM 8Gb doesn’t cut it. Otherwise it’s plenty for almost every task you might throw at a machine.

                                              1. 1

                                                If you want to compile it often then probably not. But I get to do it from time to time and 8GB + some swap is just fine. It completes during a lunch break.

                                              2. 1

                                                I have 32GB on my laptop and routinely run out. (Though less often than I run out on my 16GB work computer.)

                                                A colleague used to have an 8GB machine. He kept having to reboot it because compiles would cause it to thrash the swap, freezing the system completely and effectively permanently.

                                                I have my system set up with earlyoom to aggressively kill compiler processes when it runs low on RAM. That’s stupid, but less stupid than the alternative.

                                                This requirement is real.

                                              1. 5

                                                I won’t dive into certain yellow website discussion about that (even though it is what induced the article itself) so don’t know if people made the same points as me.

                                                As a “target audience” I roughly understand what do I want from the machine - the specs look totally fine, after all these years I know for sure that if I won’t “fit” into 16gb ram then even 64gigs certainly won’t be enough, so 16 is just fine for me. As the rest of the specs too.

                                                My biggest disappointment about that laptop is actually its ergonomics. The 0.5x functional keys row is bad. Arrows that are not t-shaped are bad. The whole trend with abysmal giant touchpad is bad too - make it 0.75 or even 0.5 of the current size and it would be much better because the main input device - keyboard - will be bigger and better.

                                                Touchpad shifted to the left side is bad - keyboard doesn’t even have a numbad yet they shift it (ignoring the existence of left-handed people also).

                                                As even more subjective thing I would like to see a 4x3 or 3x2 display on a laptop aimed for developers, I think that makes sense.

                                                1. 1

                                                  The whole trend with abysmal giant touchpad is bad … the main input device - keyboard - [should] be bigger and better

                                                  I think you hit on one of the primary problems with laptop design here: many of us regard the touchpad as an annoying distraction from main input but what seems like the vast majority of the market look at the touchpad as primary input. It seems that the laptop designers either don’t understand that a small but generally wealthy segment of the market has this attitude or simply don’t care.

                                                1. 5

                                                  I love Bell Labs as much as the next person, but this is basically what today would be considered HR stuff and isn’t on-topic.

                                                  1. 11

                                                    Idk, I found it kind of compelling to see all these faces. For every Doug McIlroy there are N number of people doing support or other roles that are generally historically invisible but made the organization what it was. Plus it’s a good reminder how huge Bell Labs was and how Unix was just a fraction of their projects.

                                                      1. 3

                                                        Ultimately, good managers and HR are what keep researchers at your organisation in the first place. HR can singlehandedly make and break an organisation by how they handle events that come up and how they decide to manage the place. They are perhaps more important to the successful replication of an environment of Bell Labs than the researchers themselves – we can never have those exact brains and minds again, we won’t even have the same melting pot of ideas as we once had, however we can work on facilitating new spaces that work as well as the old ones with our new brains and melting pots. Facilitation is extremely important and an immensely complex and difficult task, and extremely noticeable when it is done badly

                                                        1. 2

                                                          That’s true but I don’t see that much unique about their organization chart though, this seems pretty similar to other R&D orgs from that period. It seems flatter than some charts I’ve seen, but flat organizations isn’t some mysterious advantage. I wish there were more here on how business was actually conducted.

                                                      1. 4

                                                        This is a funny idea. It would be true if computer systems existed in a vacuum. But they don’t, they’re integrated with other systems and those systems change too, to meet new needs.

                                                        1. 2

                                                          I don’t think the author would acknowledge the reality you seem to, that reality is more real than the author’s thoughts (i.e. abstractions). At the argumentative level, the author would just argue that this is specification failure rather than actual software failure (i.e. if the software conformed to the specification but the specification didn’t anticipate changes in the real world, then that is the specification’s fault, not the software’s).

                                                        1. 4

                                                          I think there’s some really juvenile sleight of hand here is failure to define the key term up front (i.e. “failure”) followed by failure to define any useful terms to replace the general usage the author criticizes. The author seems to confuse “sophistication” (presumably of thought and knowledge) with sophistry, which is in fact what this is.

                                                          This might have been amusing but it is:

                                                          • Far too long
                                                          • Fails to make its point well
                                                          • Extraordinarily juvenile and (ironically) unsophisticated

                                                          I’d also quibble (and I feel justified here, in that this whole article is a quibble) that, in fact, the digital representations of books and films are in fact “software” in the sense that data is largely an illusion created by abstraction and in fact the files containing these are just instructions for the recreation of images on a screen or an audio waveform using certain hardware and software. So the author’s operating at a fairly high level of abstraction, a luxury granted by the hard work of a number of other people who built the abstractions for the author to (apparently carelessly) wield.

                                                          1. 10

                                                            I’m disappointed that this doesn’t specifically and in more detail discuss the fact that thoughtlessly adding abstractions to problems often makes them worse in the long run (it certainly makes systems harder to reason about). This problem seems to be a problem peculiar to software due to the “frictionless” nature of complexity in software compared to physical machines. And it is related to just attempting to throw more power at these problems rather than improving the programmer’s ability to wield the power (i.e. the knowledge and ingenuity codified in extant tools) already at hand.

                                                            Also it seems the author fails to reason solidly about technical debt: it makes sense to take on loads of this if the objective is to hit million x growth and then worry about the fallout later (and if the first to market advantage remains extraordinarily high). That approach is certainly used inappropriately by non-startups, but failing to see that this stems from the foolish attempt to “do things like a startup” when you can’t expect explosive growth doesn’t help make the argument.

                                                            I agree with most of the author’s comments, I just think that the post could be a lot stronger.

                                                            1. 10

                                                              “Any problem can be solved by adding a layer of abstraction, except for the problem of too many layers of abstraction.” (Also seen as “…except for performance problems.”)

                                                              1. 2

                                                                Sometimes a performance problem can be fixed by adding another layer of indirection which reads the information from all the other layers of stuff and generates the code that you would’ve written if there had been only one layer which directly solved the problem. ;)

                                                            1. 5

                                                              By Betteridge’s law, no.

                                                              1. 2

                                                                :) Should I edit the title?

                                                                1. 4

                                                                  I was attempting humor, although my experience in the industry thus far suggests that there’s going to be no shortage of any kind of madness any time soon.

                                                                2. 2

                                                                  I don’t think Betteridge’s Law applies to blogs like this especially since this is obviously rhetorical, while Betteridge’s “Law” (which it’s really not) applies to possibly actionable (or at least evaluable) headlines about factual conditions (rather than rhetorical questions about possible future).

                                                                1. 1

                                                                  Teaching the older kids to program. My eldest started with Scratch at school (4th grade - 9 yrs old), which got him and his younger sister interested in doing some more Scheme work. We’re slowly working out of Simply Scheme which is surprisingly approachable for small children.

                                                                  I started working on a toy order of battle databasing system yesterday but no idea if I’ll get any substantive work done on it. Started it in Python since that’s what I use at work, but it’s deeply unsatisfying. May look at using Haskell instead if I make any progress.

                                                                  Also present shopping, blech.

                                                                  1. 25

                                                                    I have watched the videos behind this text and I’m a bit frustrated. The most problems they have are either hardware problems or problems because they expect thinks work like on Windows (or believe they work on Windows).

                                                                    For the hardware the somehow acknowledge that this is more the problem of the vendors then of Linux. It still sounds the most time more like Linux is bad because this super fancy hardware don’t work. Yes I know the problems behind this are complex and as a normal user this is frustrating.

                                                                    And of course they expect a Windows like behavior, they have used Windows for years. What bugs me is that they claim that the Windows way is the better way without understanding what the problem is. There are two examples for this:

                                                                    First the Linus broke his Pop!_OS installation while he tried to install steam. This was because the steam package had a dependency problem which could only resolved by removing essential packages. The GUI tells him there was an error with some suggestions what might case the problems and output from apt hidden behind a details button. He reads out loud: “Warning: you trying to remove the following essential packages”. So he googled and found the command line to install steam. So the command prompted him a lot of text and at the end following two lines:

                                                                    You are about to do something potentially harmful

                                                                    To continue type in the phrase ‘Yes, do as I say!’

                                                                    So he typed in “Yes, do as I say!” and his installation was broken. He claimed later: “the thinks that I did are not entirely ridiculous or unreasonable”. He ignored all warnings and “dictated the computer” “Yes, do as I say!”, how is this not a clear user error[0]?

                                                                    So lets look what would had happen with a similar issue under Windows. First so similar we don’t get the issue, because under Windows there is no package manager accessible for somehow third party software. So lets assume there is an windows update which removes the wrong file and breaks your system. On the install the update would remove the wrong file and breaks your system. Other example the steam installer manage to have a bug with removes some necessary files from your Windows installation. Is there anything Windows protect you from this bug[1]?

                                                                    It’s late and the other stuff about the file exertion issue I might write tomorrow.

                                                                    [0] Of course this has also something to do with the spirit of some developers to create popups/warnings/info messages. Which leads users to ignore these messages.

                                                                    [1] I don’t know, but a few years ago windows installers where just executable which required to run as administrator.

                                                                    1. 32

                                                                      And of course they expect a Windows like behavior, they have used Windows for years

                                                                      I think the “Windows-like behaviour” in this case is that on Windows Steam works perfectly, you don’t have to think about installing it, there’s no chance it’s going to break your OS, nor will you have to you choose between installing an application you want and having a working OS.

                                                                      We could imagine a hypothetical Steam bug that somehow wrecks Windows installations, but in reality those don’t exist.

                                                                      1. 4

                                                                        I think those kinds of comparisons don’t work very well, because of the range of options. For the Steam installation issue, on windows you basically have two options: you install it and it works or it doesn’t. In Linux you have the same two options + playing around with various tweaks and installation methods.

                                                                        If we were going with a typical user windows-like approach, he’d declare it a failure after Steam failed to install from the default source. Going further with other solutions is both a good thing because it’s possible and a bad thing, because newbies get into a situation like a broken desktop. So once you start going past the basics it’s really on the user to understand what they’re doing. Otherwise it’s comparable to “I messed with some windows DLLs / registry trying to get Steam to work, despite warnings and now it doesn’t boot” - but that’s just not something average users do.

                                                                        1. 14

                                                                          on windows you basically have two options: you install it and it works or it doesn’t

                                                                          On Windows you install Steam and it works. Installing Steam and it not working isn’t really an experience people have with Steam on Windows.

                                                                          In Linux you have the same two options + playing around with various tweaks and installation methods.

                                                                          I guess? But the Linux (Pop!_OS?) equivalent of “I messed with some windows DLLs / registry trying to get Steam to work, despite warnings and now it doesn’t boot” is [0] kind of the only experience that was available? It seems like there was no way to install it and have it work, or even install it and have it just not work. The only way to install it broke the OS?

                                                                          [0] Disclaimer: I didn’t watch the videos, so I’m going off my understanding of the comment I originally replied to

                                                                          1. 12

                                                                            Installing Steam and it not working isn’t really an experience people have with Steam on Windows.

                                                                            Not just that but you actually do have a lot of tweaks to play around with. They’re not common knowledge because it’s incredibly rare to need it in order to get something like Steam working. You don’t really need them unless you’re developing software for Windows.

                                                                            I had this “it’s a black box” impression for a long time but 10+ years ago I worked in a Windows-only shopped that did a lot of malware analysis and the like. It’s quite foreign, since it comes from a different heritage, but the array of “power tools” you have on Windows is comparable to that of Linux. The fact that typical users don’t need them as frequently is a good thing, not an evil conspiracy of closed-source vendors to make sure you don’t have control over your hardware.

                                                                            1. 3

                                                                              Installing Steam and it not working isn’t really an experience people have with Steam on Windows.

                                                                              That’s a bit hard to quantify, but sure they do. Just search for “Steam won’t start” or “steam installer fails” on Reddit or their forums. It’s also common enough for many SEO-spam sites to have listicles for that phrase that are actually steam-specific.

                                                                              And my point was that this wasn’t there only experience available. The alternative was not to type “yes I’m sure I know what I’m doing” (or whatever the phrase was) when he did not. He went out of his way to break the system after the GUI installer refused to do it. I think you really should watch they fragment for the discussion context.

                                                                          2. 3

                                                                            there’s no chance it’s going to break your OS

                                                                            Presumably because it’s the primary platform they test for.

                                                                            1. 1

                                                                              there’s no chance it’s going to break your OS

                                                                              Of course with a simple installer (copy all files to a directory and add an entry to the windows registry) it’s quite hard to have a bug with breaks your OS. But a simple installer don’t have the features a package management system, i.e. central update mechanism. I don’t want to say package manager are better then the installer way used on Windows[0]. The problem I have with this case it’s not he has clicked some random button and then everything was broken. He has read the error, ignored all warnings and typed the prompt char by char and then wounder why it’s goes wrong.

                                                                              I don’t say the UI[1] is perfect. The problem I have is this “I ignore all warnings and complain if it goes wrong” mentality[2]. apt is not a program witch bugs you with unnecessary questions or warnings. Install a package only ask for conformation if it does more then only install the requested package. The annoying conformation question is there only if you try to remove essential packages and is designed to give enough hassle to bring the user to question about this commands.

                                                                              [0] I think systems with package manager are better, but this is not the point of the comment

                                                                              [1] The error message in the GUI and the handling in the command line

                                                                              [2] Yes some (or most) users don’t want to understand error messages, but shouldn’t they not stop at the error and look for (professional) help? And no copy paste a command from a random blog post is not help, if you don’t understand the error or the blog post.

                                                                            2. 21

                                                                              The entire point of Linus’ challenge is that desktop Linux is full of barriers and traps for new users who don’t (yet) know what they’re doing.

                                                                              Explaining “well, it’s like that because you told it to florb the waggis instead of confeling rolizins, so it’s all your fault” may very well be technically correct, but it doesn’t change the fact that the OS hasn’t worked well for the user. “I want to install Steam in 5 minutes without learning about package sudoku solvers, or bricking my computer” is an entirely reasonable use-case.

                                                                              Web dev community had a reckoning with this, and thinking has changed from “users are too stupid to understand my precious site” to “all my new users know only other sites, so I must meet their expectations”. If Linux wants to get new users it needs to be prepared for users who know only Windows, macOS, or even just Android/iOS.

                                                                              1. 4

                                                                                Explaining “well, it’s like that because you told it to florb the waggis instead of confeling rolizins, so it’s all your fault” may very well be technically correct, but it doesn’t change the fact that the OS hasn’t worked well for the user. “I want to install Steam in 5 minutes without learning about package sudoku solvers, or bricking my computer” is an entirely reasonable use-case.

                                                                                That’s well and good, but there is a perfectly good fast path for this; install Pop!_OS or Ubuntu on a day where there’s not a bug in the packaging system, which is the vast majority of all days. Yep, it sucks that there was a bug, but that’s simply not going to affect anyone going forward - so why are LTT giving advice based on it?

                                                                                1. 11

                                                                                  For every distro D there exists a problem P that is solved in a distro E.

                                                                                  That endless cycle of “then abandon your whole OS and install a completely new one” thing is another annoying problem “Linux desktop” has. It’s not any single distro’s fault, but it’s a pain that users need to deal with.

                                                                                  In my case: I want to use Elementary, but I hosed it trying to update Nvidia drivers. So I was told to switch to Pop!_OS — they do it right. But this one gets stuck seemingly forever when trying to partition my disk, presumably because of the combination of NVMe and SATA that I have. Manjaro worked with my disks, but I’ve run into bugs in its window manager, which wouldn’t be an issue in Elementary. I still use macOS.

                                                                                  1. 6

                                                                                    For every distro D there exists a problem P that is solved in a distro E.

                                                                                    Right, I agree that in general this is a problem; we need better ways to integrate the best ideas from multiple projects.

                                                                                    But for the problem stated, which was “I want to install Steam in 5 minutes without learning about package sudoku solvers, or bricking my computer”, Pop!_OS or Ubuntu are the way to go. Your problem is not that; it’s “I want Pantheon and a fast Nvidia card,” and Nvidia have intentionally made that harder than it needs to be.

                                                                                    To be totally clear, I’m under no illusions that every user can simply pick up a free desktop and be on their way, but I think it’s pretty unhelpful to cultivate a discourse which simultaneously says “Users should have a fast path for these common use cases” and “Users should be able to get whichever window manager, packaging system, and customizations they want.” Those are both valuable goals, but the former inherently precludes the latter, especially in a world where some hardware companies, like Nvidia, are actively hostile to free desktop projects.

                                                                                2. 3

                                                                                  I switched from windows to Mint a couple of years back for gaming, in a similar experiment to this one (only not so public). I had no issues at all, steam was in the official applications, it installed with one click. Every game that steam claimed worked on linux did work. There were issues with my non-standard multi-monitor set up (there were issues with this in windows too, but they were worse in linux*) but nothing that prevented playing the games. It was only once I enabled the steam beta program which sets steam to attempt to open all games in wine that I had to get down in the weeds with configuring stuff and some things didn’t work. Steam has pretty clear warnings about this when you turn it on though.

                                                                                  I feel like for a tech tips site those guys are pretty non-technical. I never really watched their stuff anyway but now it seems like they should be calling me for help (and I am pretty noob when it comes to linux). This is the biggest criticism for me of this whole experiment. If these guys are an authority on computer tech informing users, they should simply be better at what they do. It is almost like they are running an investment advice channel and going ‘oh no I lost all my money investing in a random startup, guys don’t do the stockmarket it’s broken’. They should be informing people interested in linux what to do and what not to do, and if they are not qualified to do that they should state that and recommend alternatives sources of advice.

                                                                                  *I have a suspicion most of these issues were on the application level not the OS level. Games were probably getting the monitors list from the wrong place. Ironically once I set my monitors up in the way that the developers on both windows and linux were expecting me too, the problems on linux disappeared, but a few small issues persisted on windows.

                                                                                  1. 2

                                                                                    As a waggis / rolizins engineer, maybe I’m out of touch, but I don’t think “Doing this will cause everything to break. If you want everything to break, then type ‘Yes, please cause my computer to break!’” is quite as obscure a message as anything about florbing and confeling. This required not only a (very rare) bug in the dependency tree but also either a user that deliberately wanted to break his Linux install for YouTube content, or one that is the very embodiment of Dunning-Kruger.

                                                                                    Not only did the dependency tree break, but the package manager was smart enough to recognize that the dependency tree had broken, and stopped him from doing it and told him so. He then went out of his way and used another package management tool to override this and allow him to break his installation anyway. This tool then was also smart enough to recognize the dependency tree was broken, and again warned him what was about to happen. He read this message and copied the text from this warning into a confirmation prompt.

                                                                                    He could just as easily have typed sudo rm -rf /usr. He could just as easily have deleted system32 on Windows.

                                                                                    The only possible solution that could have prevented him from doing this would be to not tell him his own sudo password and to give him a babysitter to do everything requiring privilege escalation for him so he doesn’t hurt himself, but that solution has logistical issues when you try to scale it up to every desktop Linux user.

                                                                                    1. 3

                                                                                      You need to have more empathy for the user.

                                                                                      The prompt wasn’t “destroy my system”, it was “do as I say”, and user said to install Steam.

                                                                                      No other operating system is stupid enough to delete itself when you tell it to add a new good application from a reputable publisher. Crappy Windows installers could damage the OS, but Steam doesn’t.

                                                                                      It’s normal for OSes to sound dramatic and ask for extra confirmation when installing software from unusual sources, so the alarming prompt could easily be interpreted as Linux also warning about dangers of “sideloading” a package, which can be dismissed as “I’m not installing malware, just Steam, so it’s fine”.

                                                                                      From user perspective the screen contained “Install Steam, wall of technogibberish user didn’t ask nor care for, type ‘Yes, do as I say!’”. The system frequently requires to type weird commands, so it requiring to type one more weird command wasn’t out of ordinary.

                                                                                      The only possible solution… [condescending user blaming]

                                                                                      The real solution would be for Linux to work properly in the first place, and actually install Steam instead of making excuses. Linux is just an awful target for 3rd party applications, and even the other Linus knows this.

                                                                                      1. 2

                                                                                        No other operating system is willing to give the user the ability to break the desktop environment intentionally (though I recall a lot of Windows bugs in the past that did this unintentionally). One of the fundamental problems Linux faces is that most users don’t actually want as much power as running as root gives you. They’ll say the do, but they really don’t, and their operating system choice generally reflects that.

                                                                                        It’s normal for OSes to sound dramatic and ask for extra confirmation when installing software from unusual sources

                                                                                        This is pretty obviously because it’s axiomatically impossible for the OS to actually tell if something the user does with sufficient privileges will break something (inter alia, you’d have to be able to solve the Halting Problem to do this). In this case, the package manager was obviously correct, which should be applauded. There are two obvious responses to this (maybe there are non-obvious ones I’m missing as well): restrict the user’s ability to do things to actions with a low likelihood of breaking the OS or trust the user to make a decision and accept the consequences after a warning.

                                                                                        Broadly, Windows, the MacOSs, and the mobile operating systems have been moving towards restricting the user’s ability to do risky things (which also includes a lot of things proficient system operators want to do). That seems to be in response to consumer demand but I don’t think that we should enshrine the desires of the bottom 60% of users (in terms of system operation competence) as the standard to which all systems should be designed. This is not related to an “it should just work” attitude towards 3rd party software as there’s generally been a significant decrease in things like OS API stability over the past two decades (e.g. this rant of Spolsky’s). Users just think that anything they want to use should “just work” while anything they don’t care about should be marginally supported to minimize cost: the problem is that many people want different things to work.

                                                                                        On the other hand, some users don’t want the operating system reasoning for them (at least some of the time). I don’t want an operating system “smart” enough to prevent me from doing something stupid on my project boxes or in a VM I’m playing with especially if it’s just something that looks stupid to the OS but I’m doing for some (moderately good) reason.

                                                                                        1. 4

                                                                                          You’re boxing this into a dichotomy of restricting user or not, but this isn’t the issue here.

                                                                                          The issue is not about power, but about usability. You don’t need to block all failure paths. You need to communicate clearly and steer users towards success paths, so they never even come close to the dangerous commands by accident.

                                                                                          1. 2

                                                                                            I wouldn’t say this is really about power, so much as control though I tend to be a bit of a pedant about defining “power”.

                                                                                            I think the communication here was reasonably good, though it could be improved. I think the real mistake Linus made was in choice of distribution. That is a real problem in the Linux community (and I think the one we should be focused upon here). I think the opportunity to improve communication here is marginal at best.

                                                                                        2. 2

                                                                                          You need to have more empathy for the user.

                                                                                          I do. I’m just saying that there’s nothing anyone could have done to prevent this except disallow even the root user from uninstalling xorg, and even then he could have just manually removed crucial files if he felt like it. OS maintainers are going to make mistakes occasionally. “Just don’t make mistakes ever” isn’t a viable strategy for avoiding things like this. What is a viable strategy is to build tools that detect and correct for errors like the one in Pop!_OS’s dependency tree. And that’s exactly what happened. He just disregarded the numerous protections from this bug that his OS afforded him.

                                                                                          “From the user perspective,” the screen contained a list of packages that were about to be installed, a list of packages that were about to be uninstalled, and a message saying that the packages that were about to be uninstalled were essential to the operation of his computer and he should stop now rather than electing to uninstall those packages, along with a prompt that very deliberately requires you to have read that warning in order to proceed.

                                                                                          The real solution would be for Linux to work properly in the first place, and actually install Steam instead of making excuses.

                                                                                          Linux worked properly, apt even worked properly. Pop!_OS’s dependency tree was briefly broken. The package manager then recognized there was something wrong and explicitly told him he was about to uninstall his desktop and that he shouldn’t do it. It wasn’t “destroy my system.” That was me being (generously) 5% hyperbolic. In reality it was a warning that he was about to uninstall several essential packages including his desktop and a recommendation that he shouldn’t do this unless that was what he wanted to do. He was then required to enter a very specific message which was part of that warning, verbatim.

                                                                                          Here’s the thing, no operating system has avoiding pushing out a bad or bugged update periodically. What’s great about Linus’s example is that Pop!_OS pushed out a bad update but the error was limited to one package, and the package manager was smart enough to stop Linus from breaking his system, and told him that it had stopped him from breaking his system. Linus then decided to use another tool that would allow him to break his system. This tool too was smart enough to notice that the package system had broken, and prevented him from breaking his system. He then deliberately bypassed these safeties and uninstalled gdm and xorg.

                                                                                          What’s crucial to note here is that exactly nobody is making excuses for Pop!_OS — they messed up their dependency tree, yes — but also, this is a perfect example of all of these systems working exactly as intended. The package manager was smart enough to stop him from breaking his system even though the dependency tree was mangled, and he then overrode that and chose to break his system anyway. That’s more than can be said for many other operating systems. The tools he was using detected the error on Pop!_OS’s side and saved him

                                                                                          It’s also worth noting that he literally didn’t brick his system, he could have fixed his machine if he’d just installed from the command line the same packages he had just uninstalled. Like, he didn’t actually break his system, he just uninstalled a few packages that were flagged as essential to stop newbies from uninstalling them because it might confuse them if they were uninstalled.

                                                                                          1. 2

                                                                                            Your assertion that nothing could be done is provably incorrect. Alpine doesn’t have this problem — by design — and it isn’t any less capable than Debian family. It’s a matter of design of tools’ UI, and this part of apt is a poor design.

                                                                                            People don’t accidentally uninstall their OS when installing Steam on other OSes, because everywhere else “install a new user program” and “catastrophically alter the whole system” are separate commands.

                                                                                            Users generally don’t read walls of text. In usability circles this is accepted, and UI designers account for that, instead of wishing they had better users. Users aren’t illiterate, they just value their time, and don’t spend it on reading things that seem to have low value or relevance. The low signal-to-noise ratio of apt’s message and surprising behavior is apt’s problem, not user’s reading problem. And “this is just the way the tool works” is not a justification for the design.

                                                                                      2. 1

                                                                                        The entire point of Linus’ challenge is that desktop Linux is full of barriers and traps for new users who don’t (yet) know what they’re doing.

                                                                                        I have understand this. The problem I have with some of the complains is they proclaim the one or other way is clear better during the challenge. This is a bit more obvious in the file extension example[0]. I completely understand the experience is frustrating. But the “it is frustrating for me because the system don’t behave like I expect from the knowledge of an other system” don’t mean this system is bad.

                                                                                        Yes systems try to adopt behavior from other systems to make it for users better to adopt. But this has it down side, because you can’t change a bad design after the user get used to it. In this example users get used to ignore errors and warnings and just “click ok”.

                                                                                        Explaining “well, it’s like that because you told it to florb the waggis instead of confeling rolizins, so it’s all your fault” may very well be technically correct, but it doesn’t change the fact that the OS hasn’t worked well for the user

                                                                                        I don’t want to imply they are dump or just don’t want to learn the system. It is frustrating, if a system don’t work the way you expect. I would like to see a discussion after the challenges with an expert explaining why the UI behaves different.

                                                                                        [0] Which I don’t write today, it’s late again

                                                                                        1. 5

                                                                                          When doing usability evaluations, it’s normal to discount specific solutions offered by frustrated users, but never the problems they face.

                                                                                          There were a few problems here:

                                                                                          • Lack of hardware support. Sadly, that’s a broad problem, and difficult to fix.

                                                                                          • User needed to download and run a script from GitHub. I think distros could improve here. For a random developer who wrote a script, it’s difficult to distribute the code in a better way. There’s a very high bar for getting something to be an official package, and hardly any other viable alternative. There are several different packaging formats (some tedious to build, some are controversial), a few unofficial package repositories, a few “app stores” for some distros. All this fragmentation is a lot of work and maintenance headache. It makes just dumping a script on GitHub very easy and attractive in comparison. It may not be a failing of any single person or distro, but it is a failing of “Linux desktop” in aggregate.

                                                                                          • Browser and file manager did a crappy job by treating HTML with .sh extension as if it was a totally normal thing a user may want to do. The fight about file extensions has been lost in the ‘90s. I’ve been there, tweaking detection by magic bytes in my Directory Opus on AmigaOS, and fiddling with creator codes when copying stuff from classic MacOS. The reality is that file extensions exist, and are meaningful. No normal person stores web pages as “.sh” files.

                                                                                      3. 20

                                                                                        At the risk of being that condescending Linux user (which would be pretty awful since I’m not really using Linux anymore) my main takeaway from these videos is “don’t use hipster distros”.

                                                                                        Or, okay, hipster distros is where innovation happens. I get it, Gentoo was a hipster distro when I started using it, too. Okay, maybe don’t recommend hipster distros to beginners?

                                                                                        I saw Manjaro mentioned here. I tried Manjaro. It’s not a beginners’ distro. It’s great if you’re a burned out Arch user and you like Arch but you already know the instructions for setting up a display manager by heart and if you have to do it manually again you’re going to go insane. There’s a (small!) group of people who want that, I get it. But why anyone would recommend what is effectively Arch and a rat’s nest of bash scripts held together with duct tape to people who wouldn’t know where to begin debugging a broken Arch installation is beyond me. I mean the installer is so buggy that half the time what it leaves you with is basically a broken Arch installation for heaven’s sake! Its main value proposition is in a bunch of pre-installed software, all of which can be trivially installed on Ubuntu.

                                                                                        I haven’t used Pop!_OS but IMHO a distribution that can’t get Steam right, Steam being one of the most popular Linux packages, is just not a good distribution. It’s particularly unsettling when it’s a distro that’s supposed to have some level of commercial backing, and Steam is one of the most popular packages, so presumably one of the packages that ought to get the most testing. Hell even Debian has instructions that you can just copy-paste off their wiki without breaking anything. And the only reason why they’re “instructions”, not just apt install steam, is that – given their audience – the installation isn’t multilib by default.

                                                                                        There’s certainly a possibility that the problem here was in the proverbial space between the computer and the chair, sure. But if that’s the case again, maybe it’s just time we acknowledged that the way to get “better UX” (whatever that is this year) for Linux is not to ship Gnome with the umpteenth theme that looks like all other theme save for the colors and a few additional extensions. It’s safe to say that every combination of Gnome extensions has already been tried and that’s not where the magic usability dust is at. Until we figure it out, can we just go back to recommending Ubuntu, so that people get the same bad (I suppose?) UX, just on a distribution with more exposure (and, thus, testing) and support channels?

                                                                                        Also, it’s a little unsettling that the Linux community’s approach to usability hasn’t changed since the days of Mandrake, and is still stuck in the mentality of ESR’s ridiculous Aunt Tilly essay. Everyone raves about consistency and looking professional. Meanwhile, the most popular computer OS on the planet ships two control panels and looks like anime, and dragging things to the thrash bin in the second most popular OS on the planet (which has also been looking like anime for a few years now) either deletes them or ejects them, which doesn’t seem to deter anyone from using them. Over here in FOSS land, the UI has been sanitized for consistency and distraction-free visuals to the point where it looks like a frickin’ anime hospital, yet installing Steam (whether through the terminal or the interface it makes no difference – you can click “Yes” just as easily as you can type “Yes”) breaks the system. Well, yeah, this is what you get if you treat usability in terms of “how it looks” and preconceived notions about “how it’s used”, rather than real-life data on how it’s used. It’s not an irredeemable state of affairs, but it will stay unredeemed as long as all the debate is going to be strictly in terms of professional-looking/consistent/beautiful/minimal/distraction-free interfaces and the Unix philosophy.

                                                                                        1. 14

                                                                                          The issue about Linux distro here is that they didn’t know the differences between them, why that matters, and that Linux isn’t one thing. Without a knowledgeable person to ask what to use, this is how they ended up with these different flavours. They also didn’t know about desktop environments, or how much influence they have over their Linux experience.

                                                                                          It’s unfortunately a hard lens for many technical people to wrap their head around. Heck, we are starting to see people that don’t need to interact with hierarchical file systems anymore. Something natural to everyone here, but becoming a foreign concept to others.

                                                                                          1. 6

                                                                                            Certainly. My response was mostly in the context of an underlying stream of “Ubuntu hate” that’s pretty prevalent in the circles of the Linux community that also have a lot of advice to give about what the best results for “best Linux distro for gaming” should be. I know I’m going to be obtuse again but if the l33t h4x0rz in the Linux community could just get over themselves and default to Ubuntu whenever someone says “I’ve never touched Linux before, how can I try it?” a lot of these problems, and several distributions that are basically just Ubuntu with a few preinstalled programs and a custom theme, would be gone.

                                                                                            There’s obviously a huge group of people who don’t know and are not interested in knowing what a distribution is, what their desktop environment is, and so on. As the Cheshire Cat would put it, then it doesn’t really matter which one they use, either, so they might as well use the one most people use, since (presumably) their bugs will be the shallowest.

                                                                                            I know this releases all sorts of krakens (BUT MINT WORKS BETTER OUT OF THE BOX AND HAS A VERY CONSISTENT INTERFACE!!!1!!) but the competition is a system whose out-of-the-box experience includes Candy Crush, forced updates, a highly comprehensive range of pre-installed productivity apps of like ten titles, featuring such amazing tools like Paint 3D and a Calculator that made the Win32 calculator one of the most downloaded programs in history, two control panels and a dark theme that features white titlebars. I’m pretty sure any distribution that doesn’t throw you to a command prompt on first boot can top that.

                                                                                            1. 1

                                                                                              Oh, I totally agree, I was just clarifying that they did some googling to try and find something to use, and it’s how they ended up with this mess of difficulties.

                                                                                            2. 2

                                                                                              I think you cut to the heart of the matter here. I also think the question they asked initially (what’s the “best” gaming Linux distro) wasn’t well formed for what they actually wanted: what the easiest to configure was. To forestall the “that’s a Linux problem” crowd, that’s an Internet problem, not a Linux problem. If you Google (or ddg or whatever) the wrong question, you’re going to get the wrong answer.

                                                                                              I think we have to resign ourselves to the fact that users generally don’t want to learn how to operate their systems and don’t want meaningful choices. Therefore, many users are not good candidates for a *nix.

                                                                                            3. 2

                                                                                              Until we figure it out, can we just go back to recommending Ubuntu, so that people get the same bad (I suppose?) UX, just on a distribution with more exposure (and, thus, testing) and support channels?

                                                                                              I wish Ubuntu offered an easier flow for getting a distribution with the right drivers out of the gate. This is what Pop_OS! does (source):

                                                                                              Pop!_OS comes in two versions: Intel/AMD and NVIDIA. This allows us to include different settings and the proprietary NVIDIA driver for NVIDIA systems, ensuring the best performance and use of CUDA tools one command away. On Oryx Pro systems, you can even switch between Intel and Nvidia graphics using a toggle in the top right corner of your screen.

                                                                                              IMO this is superior to in Ubuntu where you need to follow complex instructions to get NVIDIA proprietary drivers: https://help.ubuntu.com/community/BinaryDriverHowto/Nvidia

                                                                                              And you need to follow different instructions for AMD graphics

                                                                                              Also if you buy a System76 laptop all the drivers for your computer come set up, no driver manager needed. With Ubuntu you can buy from Dell but not with the same variety of hardware as System76.

                                                                                              I agree that Ubuntu is a good option but I would like to see it improve in these aspects before I would recommend it to a random non-power user who wants to play video games.

                                                                                              1. 2

                                                                                                I haven’t used Ubuntu in a while, and that page doesn’t help because the instructions look like they haven’t been updated since Ubuntu 12.04, but the way I remember it all you needed to do was go to “Additional Drivers” or whatever it was called, choose the proprietary driver, hit OK and reboot. Has that changed in the meantime? Last time I used a machine with an NVidia card I was running Arch and it was literally just pacman -S nvidia, please tell me Ubuntu didn’t make it more complicated than that!

                                                                                                Also… is the overlap between “people who write CUDA code” and “people who can’t install the proprietary NVidia drivers” really that big? Or is this aimed at people using third-party CUDA applications, who know statistics but suck at computers in general (in which case I get the problem, I’ve taught a lot of engineers of the non-computer kind about Linux and… yeah).

                                                                                                Also if you buy a System76 laptop all the drivers for your computer come set up, no driver manager needed.

                                                                                                If you choose the “Ubuntu LTS” option when ordering, doesn’t it come with the right drivers preloaded? I mean… I get that Pop!_OS is their thing, but shipping a pre-installed but unconfigured OS is not exactly the kind of service I’d expect in that price range.

                                                                                                1. 2

                                                                                                  For a novice user, do you expect them to know before they download the OS whether they have an nVidia or AMD GPU?

                                                                                                  I seem to recall that a big part of the motivation for the complex install process for the nVidia drivers was the GPL. The nVidia drivers contain a shim layer that is a derived work of the kernel (it hooks directly into kernel interfaces) and so must be released under a GPL-compatible license and of the proprietary drivers, and the proprietary driver itself, which is first developed on Windows and so is definitely not a derived work of the kernel and can be under any license. The proprietary drivers do not meet the conditions of the GPL and so you cannot distribute the kernel if you bundle it with the drivers. The GPL is not an EULA and so it’s completely fine to download the drivers and link them with your kernel. The GPL explicitly does not restrict use and so this is fine. But the result is something that you cannot redistribute.

                                                                                                  FreeBSD and Solaris distributions do not have this problem and so can ship the nVidia drivers if they wish (PC-BSD and Nexenta both did). I wonder how Pop!_OS gets around this. Is it by being small and hoping no one sues them?

                                                                                                2. 1

                                                                                                  From what I can tell, steam isn’t even open source. And while you assert it to be one of the most popular Linux packages, I hadn’t even heard of it until this video came up in all the non-gaming tech news sites despite having used Linux for 25+ years. Was it even a Pop!OS package or were they installing an Ubuntu package on an Ubuntu derivative and assuming it’d just work?

                                                                                                  1. 8

                                                                                                    it’s proprietary, yeah, but i just feel like someone has to tell you that there are several orders of magnitude more Steam users than Linux desktop users, and it’s not only a package in Pop!_OS and Ubuntu, it’s a package in Debian and just about every distro for the last decade.

                                                                                                    i honestly have gotta applaud you for being productive enough a person to have never heard of Steam. if you look at the install data from popularity-contest, ignoring firmware and libraries (i.e. only looking at user-facing applications), Steam is the third most-installed non-free package on all Debian-based distros, behind unrar and rar. pkgstats.archlinux.de suggests Steam is installed on 36% of Arch Linux installations. Steam is not only an official package on Pop!_OS but one of the most installed packages on desktop Linux overall.

                                                                                                    1. 5

                                                                                                      And while you assert it to be one of the most popular Linux packages, I hadn’t even heard of it until this video came up in all the non-gaming tech news sites despite having used Linux for 25+ years

                                                                                                      Someone else already pointed out how popular it is but just for the record, any one of us is bound to not have heard about most of the things currently in existence, but that does not make them pop out of existence. Whether you’ve heard of it or not affects its popularity by exactly one person.

                                                                                                      Also, lots of useful applications that people want aren’t even open source, and a big selling point of Pop!_OS is that it takes less fiddling to get those working (e.g. NVidia’s proprietary drivers). An exercise similar to this one carried out with, say, Dragora Linux, would’ve probably been a lot shorter.

                                                                                                      Was it even a Pop!OS package or were they installing an Ubuntu package on an Ubuntu derivative and assuming it’d just work?

                                                                                                      Most of Pop!_OS is Ubuntu packages on an Ubuntu derivative. Does it matter what repo it came from as long as apt was okay installing it?

                                                                                                      Edit: to make the second point clear, Pop!_OS is basically Ubuntu with a few custom Gnome packages and a few other repackaged applications, most of the base system, and most of the user-facing applications, are otherwise identical to the Ubuntu packages (they’re probably rebuilt from deb-srcs). No idea if what they tried to install was one of the packages System76 actually repackages, or basically the same as in Ubuntu, but it came from their “official” channel. I.e. they didn’t grab the Ubuntu package off the Internet, dpkg -i it and proceed to wonder why it doesn’t work, they just did apt-get install steam, so yes, it’s a Pop!_OS package.

                                                                                                  2. 10

                                                                                                    I mean, I have Big Opinions® on the subject, but my tl;dr is that Linux isn’t Windows, we shouldn’t give false expectations, have our own identity, etc. etc. But….

                                                                                                    So he typed in “Yes, do as I say!” and his installation was broken. He claimed later: “the thinks that I did are not entirely ridiculous or unreasonable”. He ignored all warnings and “dictated the computer” “Yes, do as I say!”, how is this not a clear user error[0]?

                                                                                                    I mean, the system should refuse to do that. Alpine’s and others refuse to allow the system to enter a boned state. One of the Alpine developers was rightly criticizing Debian for this issue in apt, citing it as one of the reasons why they stopped using Debian. The attention to the problem Linus gave in an embarrassing light was the push finally needed to fix it.

                                                                                                    1. 5

                                                                                                      Knowing how Internet guides work, now all guides will say “apt --allow-solver-remove-essential <do dangerous stuff> instead of “Type Yes, do as I say at the prompt”.

                                                                                                      1. 3

                                                                                                        I like luke’s perspective that some distros should do different things. I think it’s reasonable for arch to be a ‘power user distro’ that is willing to bork itself. But PopOS is ‘an operating system for STEM and creative professionals’, so it probably should have some safeguards.

                                                                                                        That being said I don’t think arch should ever be recommended to a brand new user. Linus shouldn’t even be on arch because 1) there should be better resources for picking a good distro for absolute beginners and 2) PopOS never should have that broken of a steam package in the first place.

                                                                                                        1. 1

                                                                                                          That being said I don’t think arch should ever be recommended to a brand new user.

                                                                                                          I would qualify this; there are many users for whom arch was there first distro and it went great, but the key thing is these are not your typical computer user; they are people who are technically minded (not necessarily with deep deep knowledge of anything in particular, but they’re probably at least the person their friends ask for help), are up to and interested in learning about the system, and generally have been given some idea of what they’re getting into. That is to say, arch is definitely for “power users,” but that set includes some users who have not actually used Linux before.

                                                                                                          For my part, Arch was the first distro that was actually reliable enough for me to do more than play with; I spent a year or so fussing with other stuff while dual booting windows, and Arch is the first one that actually worked well enough for me wipe the windows partition and stay. This was 15 years ago and I haven’t left, though I keep eyeing NixOS these days.

                                                                                                          I think at the time folks still had fresh memories of before Linux desktop environments were even a thing, and there was this mentality that the barrier to entry was mostly around user interfaces. People hadn’t really internalized the fact that Linux had caught up decently well even by then (this was KDE 3.x era), but the problem was stuff needed to work better out of the box, and it needed to not break whenever you upgraded to the next release of the distro.

                                                                                                        2. 1

                                                                                                          I mean, the system should refuse to do that

                                                                                                          The system had refused to do that. Then the user has told the system to shut up and do as he said. You could argue that this should not be possible, but if you are in the situation where you have fucked up your packages? The way around should be present within the package manager, because without it you need to do the way around without your package manager by deleting files and changing the database file.

                                                                                                        3. 7

                                                                                                          To answer some of your questions:

                                                                                                          First so similar we don’t get the issue, because under Windows there is no package manager accessible for somehow third party software.

                                                                                                          Technically not true; there is a Windows package manager and has been for a long time, and that’s the Windows Installer (MSI files). There’s also APIs and supported methods for 3rd-party installers to register an install with the system. What’s historically been missing are official package repositories for installing and updating applications (ala. APT, RPM, etc… repos). That’s slowly changing with the Microsoft Store, winget, and others, but this is an area Linux has long been very far ahead.

                                                                                                          So lets assume there is an windows update which removes the wrong file and breaks your system. On the install the update would remove the wrong file and breaks your system.

                                                                                                          This is incredibly rare. I won’t claim it hasn’t happened, but more common (while still very rare) is an update which causes a bluescreen on boot or exposes a bug in a critical system process. In either case, we’re talking very rare, but I’d suggest that’s true of Linux too.

                                                                                                          Other example the steam installer manage to have a bug with removes some necessary files from your Windows installation. Is there anything Windows protect you from this bug[1]?

                                                                                                          Yes, several things, and this is a genuine major contrast to Linux. Off the top of my head:

                                                                                                          1. Window system files cannot be modified by default even with administrator privileges. You can’t simply run an elevated Command Prompt and run the equivalent of rm -rf C:\Windows. That’s because most operating system files are both owned and only writeable by a special account (TrustedInstaller). You can still modify or delete these files, but you have to jump through several hoops. At a minimum, you need administrator privileges (ala. root), and would have to take ownership of the file(s) of interest and subsequently grant yourself the relevant privileges. There are other ways you could gain the relevant access, but the point is it’s not a thing you could do by accident. That’s similarly true for installers, which also would need to take the same approach.

                                                                                                          2. Windows has long had numerous recovery options for when things go pear shaped. Notable ones include Safe Mode and its various permutations (since forever), the ability to uninstall operating system updates (also forever), System Restore (since XP?), System Reset (Windows 10?), and a dedicated recovery partition with a minimal Windows 10 installation to serve as a recovery environment wholly independent of the main operating system. Obviously, none of these are a guarantee for recovery of an appropriately damaged system, but it’s long been the case that Microsoft has implemented numerous recovery/rollback mechanisms.

                                                                                                          On Linux, it’s usually limited to one or more previous kernel versions, and that’s about it? Yes, there’s single-user mode, but that just drops you into a root shell, which is wholly unsuitable for non-experts to use.

                                                                                                          1. 1

                                                                                                            there is a Windows package manager and has been for a long time, and that’s the Windows Installer (MSI files). There’s also APIs and supported methods for 3rd-party installers to register an install with the system.

                                                                                                            I believe we use the same words for different thinks. When I talk about a package manager I mean a system witch provides packages and resolves dependencies. If I understand your comment correct an MSI file installs Software and registers the Software. But there is no way a MSI file claims is it incompatible with version 3.6 of explorer. So that on install the installer solve the dependence graph and present what he need to install and remove.

                                                                                                            On Linux, it’s usually limited to one or more previous kernel versions, and that’s about it?

                                                                                                            This depends on your system. On debian based OS there are the packages still in the package cache. So you can easy downgrade. There are other options witch allows easy recovery from such bugs. There are most of the time not setup by default and still require some skill to solve your problem.

                                                                                                            1. 2

                                                                                                              I believe we use the same words for different thinks. When I talk about a package manager I mean a system witch provides packages and resolves dependencies. If I understand your comment correct an MSI file installs Software and registers the Software. But there is no way a MSI file claims is it incompatible with version 3.6 of explorer. So that on install the installer solve the dependence graph and present what he need to install and remove.

                                                                                                              It’s true that MSI (and most competing technologies) generally will not compute and resolve a dependency graph for package installation, but it’s also worth noting this is in part because it’s far less applicable to Windows systems. As the operating system is a single unified system, versus hundreds or even thousands of discrete packages sourced from different projects and maintainers, it’s unusual for an application on Windows to have many dependencies. So in this respect the packaging tools functionality is very much in response to the needs of the underlying platform.

                                                                                                              A system with the same sophistication for dependency resolution as the likes of Apt or Yum is simply just not as useful on Windows. Of course, that’s a separate argument from a system which provides a centralised catalogue of software ala. Linux software repositories. That’s an area Windows is very much still playing catch-up on.

                                                                                                              This depends on your system. On debian based OS there are the packages still in the package cache. So you can easy downgrade. There are other options witch allows easy recovery from such bugs. There are most of the time not setup by default and still require some skill to solve your problem.

                                                                                                              I think we have different definitions of easy here. Typically such an approach would minimally involve various command-line invocations to downgrade the package(s), potentially various dependency packages, and relying on cached package installers which could be removed at any time is less than ideal. Given the upstream repositories usually don’t to my knowledge maintain older package versions, once the cache is cleaned, you’re going to be in trouble. The point I’d make is that if something goes wrong with package installation that breaks your system, on most Linux distributions the facilities to provide automated or simple rollback are fairly minimal.

                                                                                                              1. 1

                                                                                                                As the operating system is a single unified system, versus hundreds or even thousands of discrete packages sourced from different projects and maintainers

                                                                                                                I would doubt that Windows itself has/is no modular system. The Updater itself must also have some sort of dependency management. FreeBSD as an other unified OS is currently working on a package management system for there base system.

                                                                                                                A system with the same sophistication for dependency resolution as the likes of Apt or Yum is simply just not as useful on Windows

                                                                                                                Why not? Currently all software ships it dependencies on there own and updater have to implemented in all software. Maybe not with one big graph for all software, but with a graph for each installed program and with a duplicate elimination.

                                                                                                                1. 1

                                                                                                                  I would doubt that Windows itself has/is no modular system. The Updater itself must also have some sort of dependency management. FreeBSD as an other unified OS is currently working on a package management system for there base system.

                                                                                                                  You’re right, Windows itself is very modular these days, but the system used for managing those modules and their updates is independent of other installers (inc. MSI). There’s some logic to this, given the updates are distributed as a single cumulative bundle, and MS clearly wanted to design something that met Windows needs, not necessarily broader generalised package dependency handling requirements. The granularity is also probably wrong for a more general solution (it’s excessively granular).

                                                                                                                  On my system, there’s around ~14,600 discrete components, going off the WinSxS directory.

                                                                                                                  Why not? Currently all software ships it dependencies on there own and updater have to implemented in all software. Maybe not with one big graph for all software, but with a graph for each installed program and with a duplicate elimination.

                                                                                                                  Several reasons. One is that most Windows software is predominantly relying on Windows APIs which are already present, so there’s no need to install a multitude of libraries to provide required APIs as is often the case on Linux. They’re already there.

                                                                                                                  Where there are 3rd-party dependencies, they’re usually a small minority of the application size, and the fact that software on Windows is much more likely to be closed source means it’s harder to standardise on a given version of a library. So if you were to try and unbundle 3rd-party dependencies and have them installed by package manager from a central repository, you’d also need to handle multiple shared library versions in many cases.

                                                                                                                  That’s a soluble problem, but it’s complex, and it’s unclear if the extra complexity is worth it relative to the problem being solved. I suspect the actual space savings would be minimal for the vast majority of systems.

                                                                                                                  I’m not saying it’s a bad idea, just that it’s solving a problem I’d argue is far less significant than in *nix land. Again, all of this is independent of centralised package repositories, as we’re starting to see with winget, scoop, choco, etc …

                                                                                                            2. 1

                                                                                                              On Linux, it’s usually limited to one or more previous kernel versions, and that’s about it?

                                                                                                              https://documentation.suse.com/sles/11-SP4/html/SLES-all/cha-snapper.html

                                                                                                              By default Snapper and Btrfs on SUSE Linux Enterprise Server are set up to serve as an “undo tool” for system changes made with YaST and zypper. Before and after running a YaST module or zypper, a snapshot is created.

                                                                                                              1. 1

                                                                                                                Excellent. Like ECC RAM, those who are already expert enough to devise ways to do the task are given the tools.

                                                                                                                This doesn’t happen on mainstream user- friendliness- oriented distros.

                                                                                                                I do wonder about a Nix- based highly usable distribution. All the tools are there to implement these protections, lacking only a general user interface.

                                                                                                                1. 1

                                                                                                                  I think that’s an unfair summary. Implementing this properly takes time and few distros have even started to default to filesystems where this is possible. It’s coming desktops too: https://fedoraproject.org/wiki/Changes/BtrfsWithFullSystemSnapshots

                                                                                                                  1. 1

                                                                                                                    Of course it’s coming.

                                                                                                                    I still think the criticisms are valid and help drive these technologies arriving for the common user.

                                                                                                                2. 1

                                                                                                                  That’s pretty cool. I hope it becomes more widely accessible on end-user distributions (I expect SLES is a pretty tiny minority of the overall desktop/laptop Linux userbase).

                                                                                                              2. 1

                                                                                                                bug

                                                                                                                It was a good old package conflict, wasn’t it? The normal way this happens is if you try to install a package from a foreign distro.

                                                                                                                Different distros have different versions of packages, so unless the foreign package’s dependencies happens to line up with every installed package, the only way to install the foreign package is going to be to uninstall everything that depens on a conflicting version of something, which can be quite much.

                                                                                                                If so, I wouldn’t call it a “bug”, since that’s a term used on software – the package manager itself, not its input. For user expectations, this means that bugs are fixable, whereas package conflicts (at least of the self inflicted kind) are not. The software can only heuristically refuse to do stupid things.

                                                                                                              1. 7

                                                                                                                Let’s talk specifics. That machine is fine, except for the disk subsystem:

                                                                                                                • HP’s Pxxx RAID controllers are one of two series which have lost data for me. It might be better now, but I’d much rather have individually addressed disks and use mdadm or ZFS.

                                                                                                                • That’s just not enough disk space, and SAS spinners are not much faster than consumer SATA spinners. You will want to replace them with 1 to 4TB 2.5” SATA SSDs as soon as you have the money. This will also reduce the power draw and thus the heat, so that’s a bonus.

                                                                                                                Oh, the RAM is adequate but you will want more. Get it soon; DDR3 RDIMMs will start to disappear soon. 16 x 16GB sticks will cost you about $600 for new-old-stock. 8 x 16 might be enough.

                                                                                                                Also – rack servers assume that the air is clean and filtered. They have no dust filtering. Putting it directly on the ground is probably a bad idea.

                                                                                                                1. 1

                                                                                                                  I agree that 4x300 GB is probably too small for serving up video and gaming unless you have a fairly small collection, but I’m curious about how you arrived at that large a requirement for SSDs (I’m reading you as saying 4-16 TB of SSD capacity). I’m looking at ~11 MB/min of video for 2160p 4K video resulting in average movie size being ~1.2 GB. 1-2TB of effective capacity seems sufficient,

                                                                                                                  Your point about power use is good though given how expensive server SSDs are I think you’d have to do some math to figure out if it’s worth it (to be honest though, I haven’t done that: I’ve got a solar array that reliably makes more energy than I use so I’m pretty cavalier with the power use).

                                                                                                                  Also not sure why you’re recommending that much RAM. I’ve got 48 GB and never use a significant amount of it, though I don’t have any containerization of virtualization running at the moment (it’s on my todo list but alas, life…).

                                                                                                                  In short, what’s the intended uses you’re recommending that configuration for? That seems a lot for what nalzok’s proposing to use his for.

                                                                                                                  1. 1

                                                                                                                    nalzok says: “home lab… media/gaming server and a playground”.

                                                                                                                    Such a machine should use RAID10, or for ZFS, stripe over two pairs of mirror vdevs. I’m recommending between 2TB and 8TB of effective storage.

                                                                                                                    My media server (MythTV, Owntone, a few other services) has 6TB in RAID10. It’s nearly full and I have to make decisions about pruning recorded TV fairly regularly. Just about 1TB of that is music, the rest is video, recorded or ripped.

                                                                                                                    Why 128-256 GB of RAM: because (a) everything you cache in RAM is faster and less wear on your storage; (b) home lab servers have a tendency to run out of RAM for running VMs and containers before they run out of non-peak CPU; (c) now is the time to buy it, when it is available, as opposed to three years from now when you wish you had bought more RAM but nobody has it.

                                                                                                                    1. 2

                                                                                                                      Thanks, maybe I’m just underestimating how memory hungry the setup will become once I start setting up VMs. This is making me consider buying more memory.

                                                                                                                      I still don’t understand that much video. At my average for storage that equates to something like 7.5k hours of video for me.

                                                                                                                      1. 1

                                                                                                                        MythTV Recording Statistics

                                                                                                                        Number of shows: 441 Number of episodes: 24902 First recording: Monday February 19th, 2007 Last recording: Sunday December 5th, 2021 Total Running Time: 14 years 9 months 16 days 2 hrs 45 mins Total Recorded: 2 years 1 month 6 days 8 hrs 52 mins Percent of time spent recording: 14%

                                                                                                                1. 1

                                                                                                                  My brother and I have an R610 running Debian, a couple of switches, and a rack mounted router in a full rack he picked up for free from work. At the moment it sits in his office about four or five feet from his desk. Fan noise is an issue sometimes, though that’s improved significantly since we junked a firewall we had been playing around with. I do have to make sure to not place it under heavy load when he’s in the office though. The long term goal is to hang dry wall and divide the office into a server room and office proper to mitigate the noise and give access to the rack, circuit breakers, etc… without cutting through the office.

                                                                                                                  The Dell certainly doesn’t run with fans at full speed all the time. There’s noticeable differences in fan noise between when I have it at full load (usually transcoding video) and when it’s running its base load (Miniflux, Gitit, NGinx, Huginn, Emby, semifunctional QGis server, tmux session with way too many windows). The ASA we were playing around with ran far louder.

                                                                                                                  The one thing I think you’re totally missing (or at least didn’t mention) is that you mentioned you want to use the server for gaming but didn’t mention plans for a video card. I’ve played around with some not particularly graphics intensive games (Paradox grand strategy junk) on mine and lack of video card even for that is an issue. 1U chassis servers are often difficult to fit with video cards (both in terms of space and power within the unit). There’s external solutions to that (e.g. this) but those tend to increase the noise even more.

                                                                                                                  I don’t see information on what the riser card setup is for that server on the Amazon posting, which is going to be another major consideration when it comes to fitting a card. I think there’s some discussion of this specifically for that server in r/homelab, which I highly recommend as a resource.

                                                                                                                  For the first few months we had our server we ran it sitting on the bottom of the rack rather than on rails. I never saw a problem with heat management even when transcoding video for hours at a time though that was metal on metal. I’d be careful to check operating temperature if you’ve got it on some less heat conductive surface although it likely won’t be a problem.

                                                                                                                  You may want more disk space if you want to run in anything other than RAID 0 unless you have a fairly small media collection and are happy uninstalling and reinstalling games regularly. Keep in mind that RAID arrangement can affect read/write performance for disks. Not sure how much video you’d expect to stream simultaneously. We’ve tested with six video streams simultaneously from a RAID 10 setup of 4x500 GB drives running at 5.4k IIRC and not run into any problems (we don’t actually run more than three video streams at the same time in normal use though, yet - will likely change when my kids are older).

                                                                                                                  I echo the recommendation to look at a larger unit (2U or more). I want to pick up an R510 at some point so I’ve got more space to work with in terms of additions.

                                                                                                                  1. 1

                                                                                                                    Did I miss something in this essay? Seems like the title says not to select programming languages too soon and then it’s Python, Python, Python.

                                                                                                                    Is Python not a programming language?

                                                                                                                    I feel like with this title there might be something interesting to bring out, but this essay didn’t do it, at least for me. I feel like the author is arguing against their own thesis.

                                                                                                                    1. 2

                                                                                                                      It’s written as though the default language for all products is Python, i.e. Python’s not a “choice” in any meaningful sense. Note the choice to “Prototype in Python” is basically just waved away as “you have to start somewhere.” Overall, this reads like a rehash of the language choice bits of Paul Graham’s Beating the Averages but with Python rather than Lisp. Given the popularity of Python though, it doesn’t give you the edge Graham claims he gained from using Lisp.

                                                                                                                      To be a bit more charitable to the author, I think the argument may be something along the lines of “use the language you know best and worry about optimization later” with the assumption that a great many people know Python best. Depending upon the project, that might not be bad advice but it certainly seems over-generalized here.

                                                                                                                      1. 1

                                                                                                                        To be a bit more charitable to the author, I think the argument may be something along the lines of “use the language you know best and worry about optimization later”

                                                                                                                        I substituted that in and kinda made it all work, but hell, that sure made it a weak essay.

                                                                                                                        Thanks.