Has anybody ever done a usability study on the Linux CLI interface?



  • @El_Heffe said:

    @gu3st said:

    Windows CMD line can do absolutely nothing... it might as well not exist.
    @gu3st said:
    nothing useful can be done from the command line (other than launching applications.. which are GUI..
    How odd . . . . . . . . back several years ago when I was tinkering with Firefox, I had a batch file which:

    • Pulls Firefox source
    • Applies various custom patches
    • Compiles it
    • Packages everything into a single self-extracting executable file
    • Uploads that file to my FTP server

    All done from the Windows CMD line, no GUI applications are ever launched.  And that's just one of my simpler batch files.   Sorry, you you are the one who is retarded.

    That seems incredibly inefficient. Ever heard of incremental builds?



  • There are a LOT of things wrong with Linux and CLI tools, but come on, some of this stuff is the way it is for good reasons.

    "Are you root?" is a rhetorical question. apt-get doesn't care if you're root. All apt-get knows is that it tried to write a file and it didn't have permissions. It DOESN'T say "Try that again with sudo!" for good reasons:

    1. If "are you root?" isn't enough of a hint, you really do need to go research things.
    2. Telling a new user to stick sudo in front of an arbitrary command is much more likely to hurt them than help.
    3. Who says your system even has sudo?
    4. Security is considered vastly more important than the ease for a new user to make system-level changes.

    If your sudo didn't ask for authentication, it's just configured that way, and it isn't normal. The point of sudo isn't just to use a magic word to do system-level changes. The point is when you DON'T use sudo, you know you can't fuck anything up too bad. That's the real value of it. Oh and preventing unauthorized BS.

    I constantly get to deal with systems where clueless users have easy-to-access admin privileges. Guess what that leads to? Dead systems and/or malware up the ass.

    Clueless users + admin privs = disaster. Making it "easier" is not holistically helpful.

    Some of your points I completely agree with. The "official" instructions for almost everything are garbage. They would be fine if they started with "If you don't need the very newest version, just do `sudo apt-get install mongodb` AND YOU'RE DONE."

    The package information from apt-get is vitally important if you are actually responsible for the system you are modifying. I always check the "to be installed" packages because, as the sysadmin, I care what crap ends up installed. I may happen to know that our vitally important systems depend on a particular version of a package, or even the absence of one. No one cares if you don't want to see it. Just ignore it or use the GUI.



  • @gu3st said:

    Are you on shrooms or just naturally retarded?

    It's all natural. But do you know where I can get some high quality stuff man? Hook me up.

    @gu3st said:

    Windows CMD line can do absolutely nothing... it might as well not exist.

    Well it's been basically deprecated for like... 15 years at this point. So I'm sure there is a lot it can't do. But then again, it only exists in modern Windows for backwards compatibility anyway.

    @gu3st said:

    Unless you're intending to make the (true) remark that the Windows GUI can also do nothing (if both of them are first class citizens)

    The Windows GUI can do nothing, folks. This is where the true high quality shrooms gets ya. Man.

    @gu3st said:

    The OS was designed to be used as a GUI, so effectively.. nothing useful can be done from the command line (other than launching applications.. which are GUI.. which are impossible to script that way like a true command-line app can be.

    MacOS Classic was 100% scriptable, and it had no CLI at all. None. Zip. Zero. Nada. And scripting it was a far sight easier than scripting anything in the Linux world (you could just hit "record" in the scripting tool), and more powerful to boot. Alas, Apple's been taken over by the Unix-loving NeXT folks, and that tech's all basically dead at this point.

    Anyway, as far as scripting Windows... well, that's the supported and recommended way of doing system administration and has been for ages. You can even pick your language, VBA or JavaScript.

    @gu3st said:

    A command line is an excellent way to accomplish a lot of tasks.

    Yes, but unfortunately none of those tasks are in the list of top 100 tasks people do with their computer.

    @gu3st said:

    GUI's are helpful a lot of the time, I'll agree.. but Windows is so.. monolithic and GUI based that the command line is useless, which is a shame cause there's a lot of useful things that a command line is capable of.

    Which command line?

    Oh wait, let me guess: you think CMD is "the" command line because in reality you actually know jack shit about Windows, right? That's usually the case with people like you. Look, saying "the command line" when referring to Windows is NONSENSICAL. There is no "the" command line.

    @gu3st said:

    Building an OS around a monolithic GUI is about as idiotic as voting Republican... Legitimate rape.. what wankery.

    MacOS Classic seemed to sell all right and, as a reminder, it had zero CLI. None. Zip. Zero. Nada.



  • @Ben L. said:

    So TRWTF is you overcomplicating apt-get install mongodb

    How did I over-complicate it?

    @Ben L. said:

    and then complaining when your changes to the system fuck shit up?

    I didn't fuck any shit up, the server's working fine.

    @Ben L. said:

    You're using a command line interface interface where there's a GUI already available

    I didn't know the GUI was available until somebody posted it in this thread.

    @Ben L. said:

    and you have no fucking clue how to use either.

    The server's working fine.



  • @superjer said:

    There are a LOT of things wrong with Linux and CLI tools, but come on, some of this stuff is the way it is for good reasons.

    Ok...

    @superjer said:

    "Are you root?" is a rhetorical question. apt-get doesn't care if you're root. All apt-get knows is that it tried to write a file and it didn't have permissions. It DOESN'T say "Try that again with sudo!" for good reasons:

    1. If "are you root?" isn't enough of a hint, you really do need to go research things.
    2. Telling a new user to stick sudo in front of an arbitrary command is much more likely to hurt them than help.
    3. Who says your system even has sudo?
    4. Security is considered vastly more important than the ease for a new user to make system-level changes.

    Rhetorical or not, it's still a stupid question, which is what I take issue with.

    1) Why should I have to research things to install a DBMS?

    2) I agree; see my criticism of the sudo system in a previous post

    3) So not only can APT not look up what user it's running under, it can't even tell what OS it's running in? I'll assume it's you who is the stupid one and not the Linux API because I refuse to believe there's no "hey buddy what OS is this?" call, or a "hey buddy, does sudo exist in this environment?" call. I refuse to believe Linux is that broken.

    4) Confusing, inaccurate errors don't contribute towards security. sudo, as it's configured out-of-the-box in Ubuntu Server doesn't appear to contribute towards security, unless there's something I'm missing.

    @superjer said:

    If your sudo didn't ask for authentication, it's just configured that way, and it isn't normal.

    That's how the most popular Linux distribution configured it by default, I think that pretty much defines "normal" in the Linux world.

    @superjer said:

    The point of sudo isn't just to use a magic word to do system-level changes.

    Good because that's stupid.

    @superjer said:

    The point is when you DON'T use sudo, you know you can't fuck anything up too bad. That's the real value of it.

    Except that requires the user to limit their usage of it to only when it's needed, which the system discourages. It also requires that malware isn't able to use sudo, which the system allows. So the value of it is... what? Placebo? You can pretend it's secure?

    @superjer said:

    Oh and preventing unauthorized BS.

    Malware running under my user account can use sudo without requiring any kind of authentication. So again, it has no value.

    @superjer said:

    I constantly get to deal with systems where clueless users have easy-to-access admin privileges. Guess what that leads to? Dead systems and/or malware up the ass.

    Then fix the system so it can't happen. Both OS X and Windows have fixed that problem in a pretty clever and easy-to-implement way. (In fact, I wager Ubuntu has too, since when I first tried to log in it chided me and said, "don't log in as root, log in as ubuntu". So I assume the "ubuntu" user account has privileges limited in such a way to prevent system breakage.)

    @superjer said:

    They would be fine if they started with "If you don't need the very newest version, just do sudo apt-get install mongodb AND YOU'RE DONE."

    Except that gets you a 404 error on the most popular distro. So those directions are still wrong.

    @superjer said:

    The package information from apt-get is vitally important if you are actually responsible for the system you are modifying. I always check the "to be installed" packages because, as the sysadmin, I care what crap ends up installed.

    Why do you care? If the system requires you to care about implementation details, it's broken. (Which, BTW, is one of the many reasons Java on the desktop is broken. You're required to know/care that it runs in a JVM which is a separate software download from the OS.)

    @superjer said:

    I may happen to know that our vitally important systems depend on a particular version of a package, or even the absence of one.

    Why would that be an issue? Windows allows you to have multiple versions of the same software installed at the same time. It's even smart enough to de-dupe .dlls that are the same between the two versions.

    @superjer said:

    No one cares if you don't want to see it.

    I'm saying if the Linux community had a healthy attitude, nobody would want to see it because 1) it's an implementation detail and nobody fucking cares, and 2) all the problems you mentioned would be non-issues because the OS wouldn't be broken.

    As long as showing that information is necessary, something is wrong with Linux. The correct response isn't just to shrug and mug at the camera and say "that's Linux folks! Cue laugh track!" The correct response is to fucking fix it like all competing OSes have done years ago.



  • @blakeyrat said:

    Which command line?

    Oh wait, let me guess: you think CMD is "the" command line because in reality you actually know jack shit about Windows, right? That's usually the case with people like you. Look, saying "the command line" when referring to Windows is NONSENSICAL. There is no "the" command line.

    If you're going to stoop to that level of pedantic dickweedery, fine.

    @blakeyrat Thread Subject said:

    Has anybody ever done a usability study on the Linux CLI interface?

    Which one?  sh, bash, csh, tcsh, zsh, ksh . . . all have different structures, different capabilities, some are easier to use than others.

    The .deb manipulation tools and the apt-* series of utilities originated with Debian and just so happened they were used with a Linux kernel; they are not "Linux" utilities.  There is now a port of Debian that runs the FreeBSD kernel, making it even less correct to call them Linux utilities.

    To paraphrase, "In reality you actually know jack shit about Linux, right?"



  • @blakeyrat said:

    Rhetorical or not, it's still a stupid question, which is what I take issue with.

    Maybe it is a stupid question. But it's an OK hint.

    @blakeyrat said:

    1) Why should I have to research things to install a DBMS?

    I agree. Mongo should have told you to use the GUI or a simple one-liner.

    @blakeyrat said:

    3) So not only can APT not look up what user it's running under, it can't even tell what OS it's running in? I'll assume it's you who is the stupid one and not the Linux API because I refuse to believe there's no "hey buddy what OS is this?" call, or a "hey buddy, does sudo exist in this environment?" call. I refuse to believe Linux is that broken.

    sudo is part of your distribution, not necessarily part of Linux. You can always apt-get remove sudo.
    APT can easily check for OS or sudo but it just doesn't care, and shouldn't care.

    @blakeyrat said:

    4) Confusing, inaccurate errors don't contribute towards security. sudo, as it's configured out-of-the-box in Ubuntu Server doesn't appear to contribute towards security, unless there's something I'm missing.

    Well maybe Ubuntu really is that stupid. I stopped using it when the GUI went to shit.

    @blakeyrat said:

    @superjer said:
    If your sudo didn't ask for authentication, it's just configured that way, and it isn't normal.
    That's how the most popular Linux distribution configured it by default, I think that pretty much defines "normal" in the Linux world.

    I don't think it's the most popular for servers. You're right though, if that's the default it is horribly broken.

    @blakeyrat said:
    @superjer said:
    I constantly get to deal with systems where clueless users have easy-to-access admin privileges. Guess what that leads to? Dead systems and/or malware up the ass.
    Then fix the system so it can't happen. Both OS X and Windows have fixed that problem in a pretty clever and easy-to-implement way. (In fact, I wager Ubuntu has too, since when I first tried to log in it chided me and said, "don't log in as root, log in as ubuntu". So I assume the "ubuntu" user account has privileges limited in such a way to prevent system breakage.)

    Unfortunately I only "get" to fix most systems, not enforce policy. I don't care how it got there, I'm just pointing out a pattern.

    @blakeyrat said:

    @superjer said:
    They would be fine if they started with "If you don't need the very newest version, just do sudo apt-get install mongodb AND YOU'RE DONE."
    Except that gets you a 404 error on the most popular distro. So those directions are still wrong.

    The directions are right, Ubuntu was apparently having server issues. I tried it here and it works fine.

    @blakeyrat said:

    @superjer said:
    The package information from apt-get is vitally important if you are actually responsible for the system you are modifying. I always check the "to be installed" packages because, as the sysadmin, I care what crap ends up installed.
    Why do you care? If the system requires you to care about implementation details, it's broken.

    The system does NOT require that. My 3rd party and in-house software has dependencies. The system is trying to be helpful, that's all.

    @blakeyrat said:

    (Which, BTW, is one of the many reasons Java on the desktop is broken. You're required to know/care that it runs in a JVM which is a separate software download from the OS.)

    Um, I hate Java at least as much or more than you, so no worries there.

    @blakeyrat said:

    @superjer said:
    I may happen to know that our vitally important systems depend on a particular version of a package, or even the absence of one.
    Why would that be an issue? Windows allows you to have multiple versions of the same software installed at the same time. It's even smart enough to de-dupe .dlls that are the same between the two versions.

    Doesn't that depend on the software? I can't have 2+ IE's installed. Or just about any other MS software. You actually CAN have multiple versions of things on Linux, but you need to install it somewhere outside of the system dirs, or in /opt. I'm not aware of package manager support for doing that.

    @blakeyrat said:

    @superjer said:
    No one cares if you don't want to see it.
    I'm saying if the Linux community had a healthy attitude, nobody would want to see it because 1) it's an implementation detail and nobody fucking cares, and 2) all the problems you mentioned would be non-issues because the OS wouldn't be broken.
    As long as showing that information is necessary, something is wrong with Linux. The correct response isn't just to shrug and mug at the camera and say "that's Linux folks! Cue laugh track!" The correct response is to fucking fix it like all competing OSes have done years ago.

    Well as usual you'd be right if you're assumptions were right. But the "implementation details" have nothing to do with the OS being broken or not, and everything to do with helping me manage non-OS software.



  • @nonpartisan said:

    If you're going to stoop to that level of pedantic dickweedery, fine.

    That's not stooping, that's standing tall and beaming with pride.

    @nonpartisan said:

    Which one? sh, bash, csh, tcsh, zsh, ksh . . . all have different structures, different capabilities, some are easier to use than others.

    Fair enough; which one has a better APT than the rest? Oh wait they all have the same APT? I guess that wasn't very useful then was it.

    How is it even possible to have multiple shells on an OS made by people who don't understand the value of separating the UI from the underlying code? Do all these libraries basically re-implement EVERYTHING? Or are they all nearly-identical? Those are the only two options I see.

    @nonpartisan said:

    Blakeyrat's rules:

    1. If it's Linux, it sucks.

    2. If it's open source, it sucks.

    Corollary: Open source software can't possibly be useful to anyone.

    3. If it's commercial software, it at least gets a chance.

    4. If it's Microsoft, it is automatically fabulous unless it proves itself otherwise.

    1. Hm. Android is passable, because they've fixed a lot of the problems with Linux on the desktop. But... yeah fair enough.

    2) I've never said that. Being open source is a big indicator for "suck", but I don't (for example) think Chrome sucks. Or the Twitterizer library. Or for that matter MVC4 is open source now.

    3) Everything gets a chance. Except Lotus Notes.

    4) You've obviously never heard me talk about the SQL installer. Hell, SQL Server Management Studio is trash too, it only gets a pass because ALL tools in that space are trash and SSMS is marginally better than all the others. And you've never read that thread about the newer versions of Windows Live, goddamned talk about awful software.



  • @superjer said:

    The directions are right, Ubuntu was apparently having server issues. I tried it here and it works fine.

    It failed consistently until I did "apt-get update" (IIRC.) It wasn't a server issue, it was a "that command on its own doesn't download mongodb, you need to issue another command first" issue.

    @superjer said:

    The system does NOT require that. My 3rd party and in-house software has dependencies. The system is trying to be helpful, that's all.

    Why are dependencies something you ever need to think about for more than 4 milliseconds ever? That is exactly the problem I'm talking about.

    @superjer said:

    Doesn't that depend on the software? I can't have 2+ IE's installed.

    I was talking mostly about .dlls, because I get the sense that that's what you were referring to. You're right, you can't have two simultaneous installs of IE without some hackery, which is due to a (security) decision to force all applications to use the most recent version of MSHTML.dll at all times. So you've picked literally the ONLY application that's a counter-example to my claim. Congratulations.

    @superjer said:

    Or just about any other MS software.

    Huh? What software are you referring to? My computer right now has THREE versions of Visual Studio installed, my old computer at my last workplace had installed (and yes, all at the same time) those THREE versions of Visual Studio, TWO version of SQL Server, and TWO versions of Office.

    The only product I can think of that doesn't allow mixing of versions and isn't IE is Windows Live. Which is complete shit. Utter shit. Excrement.

    @superjer said:

    Well as usual you'd be right if you're assumptions were right. But the "implementation details" have nothing to do with the OS being broken or not, and everything to do with helping me manage non-OS software.

    Why do you NEED to manage software "non-OS" or otherwise? The OS should be managing software FOR you.



  • @blakeyrat said:

    @ekolis said:
    The CLI is the API.

    And nobody in the last 20 years has realized what a terrible idea that is and/or made any move to fix it?

    No I guess everybody who gave a shit gave up on Linux ages ago and moved to OS X.

    There are other distributions.  Some of them aren't even based on the source of your current rant.



  • @blakeyrat said:

    How is it even possible to have multiple shells on an OS made by people who don't understand the value of separating the UI from the underlying code? Do all these libraries basically re-implement EVERYTHING? Or are they all nearly-identical?

    • Many people in the Unix world understand the value of separating the UI from the underlying code.  Even the people who created the problem you're complaining about here understand that.  The issue is, they had this crazy idea that the API could also be a basic UI, and you happened to get misled into trying to use that.
    • A shell is not a library.  Most of them contain a *lot* of code that isn't part of their libraries.  ls -l /bin/bash shows that it is not a small program, considering it doesn't do a gui.  zsh is also quite large.
    • It's possible to make many very different programs, while still largely using the same set of 10 libraries.
    • One of the early ideas of open source was one could have competing libraries, as well as competing programs.  It hasn't turned out to work well in practice, but, yeah, there are a number of instances where some libraries re-implement something that other libraries had implemented first.  For that matter, it's happened in the Windows world, too.

    @blakeyrat said:

    3) Everything gets a chance. Except Lotus Notes.

    So Sametime gets a chance?  Lotus SAMETIME1 gets a chance?  Bah.  You know nothing.

    1 The only program I've ever used whose spell checker flagged 'to', 'as', 'in', and 'by' as misspelled words while using an English dictionary.  And, even better, only did so for some of the instances when they were used in that message.



  • @blakeyrat said:

    Fair enough; which one has a better APT than the rest? Oh wait they all have the same APT? I guess that wasn't very useful then was it.

    It was as useful as your subject line was accurate.



  • @blakeyrat said:

    Fair enough; which one has a better APT than the rest? Oh wait they all have the same APT? I guess that wasn't very useful then was it.
    RedHat doesn't include apt.  Slackware doesn't include apt.  It's not a Linux utility.  It is a Debian-based distribution utility.

    @blakeyrat said:

    How is it even possible to have multiple shells on an OS made by people who don't understand the value of separating the UI from the underlying code? Do all these libraries basically re-implement EVERYTHING? Or are they all nearly-identical? Those are the only two options I see
    Not sure exactly what you mean by this.  Several (all?) of those shells come from the UNIX era.  Since Linux has UNIX-style underpinnings, they've been adapted to the Linux kernel and libraries that are typically found in a Linux configuration (libc, libreadline, etc.).  The apt utilities  are the equivalent of the Windows Installer.  glibc is a GPL-based implementation of the libc library.  Why are there so many different libraries that do the same thing?  I'm only guessing that when the kernel was growing up, different people had different visions on how to do the same thing.  So you've got the Gnome and KDE libraries (and the GUIs that go with them).  Package manager . . . you ended up with apt/.deb for Debian, yum/.rpm for RedHat . . . whatever Slackware does . . . .deb and .rpm have become the de facto standards (besides compressed tarballs).  The question you ask is akin to "Why is there Microsoft Word (and WordPerfect and OpenOffice and AbiWord and . . .)?"  Because there were different ideas of how a word processor should work.  If that's not what you're asking, then I don't understand what it is you're asking.

    @blakeyrat said:

    2) I've never said that. Being open source is a big indicator for "suck", but I don't (for example) think Chrome sucks. Or the Twitterizer library. Or for that matter MVC4 is open source now.
    Okay.  2) If it's open source, it almost always sucks.

    @blakeyrat said:

    4) You've obviously never heard me talk about the SQL installer. Hell, SQL Server Management Studio is trash too, it only gets a pass because ALL tools in that space are trash and SSMS is marginally better than all the others. And you've never read that thread about the newer versions of Windows Live, goddamned talk about awful software.
    Yes, I did read those.  Those packages proved themselves otherwise, as stated in the rule.

    And a side question to all of this . . . you said earlier in the thread you got MongoDB running on Windows.  Why not just run it on the platform you understand?



  • @blakeyrat said:

    It failed consistently until I did "apt-get update" (IIRC.) It wasn't a server issue, it was a "that command on its own doesn't download mongodb, you need to issue another command first" issue.
    I can't explain why apt-get update needed to be run.  Fortunately, [url="http://support.microsoft.com/kb/971187"]you never have install[/url] [url="http://support.microsoft.com/kb/324516]problems with Windows Installer.[/url]  And "apt-get update" from a shell is a fuckton simpler to run than having to hack around the Registry.

    Seriously, if you've never had the instructions be incomplete or otherwise bad for installing a software package, you've led a sheltered life indeed.



  • @blakeyrat said:

    @superjer said:
    The system does NOT require that. My 3rd party and in-house software has dependencies. The system is trying to be helpful, that's all.
    Why are dependencies something you ever need to think about for more than 4 milliseconds ever? That is exactly the problem I'm talking about.


    So once you get mongodb installed, I assume you're going to use it? Maybe you'll write some software on the system that uses mongodb. And then you'll go to install package-x and it says "that will also upgrade mongodb to version 3.4.5." And you think -- hey, maybe I should check that my software will work with mongodb 3.4.5?

    @blakeyrat said:
    @superjer said:
    Doesn't that depend on the software? I can't have 2+ IE's installed.
    I was talking mostly about .dlls, because I get the sense that that's what you were referring to. You're right, you can't have two simultaneous installs of IE without some hackery, which is due to a (security) decision to force all applications to use the most recent version of MSHTML.dll at all times. So you've picked literally the ONLY application that's a counter-example to my claim. Congratulations.


    I've had problems with Office as well. And not being able to install multiple IIS's.

    @blakeyrat said:
    The only product I can think of that doesn't allow mixing of versions and isn't IE is Windows Live.

    "literally the ONLY", huh?

    @blakeyrat said:
    @superjer said:
    Well as usual you'd be right if you're assumptions were right. But the "implementation details" have nothing to do with the OS being broken or not, and everything to do with helping me manage non-OS software.
    Why do you NEED to manage software "non-OS" or otherwise? The OS should be managing software FOR you.


    I don't know how you expect the OS to magically manage my software, or other internal software, or 3rd party software. If I write some random program, no OS is going to know what version(s) of mongodb it needs. No OS does that.



  • @blakeyrat said:

    I don't have the weird mental illness that tells Linux users to never follow the official directions for a product on the product's official website.

    Heh … you should try getting answers to such questions on support forums … (Could be my experience with the Ubuntu ones coloured my perception, though.)

    @blakeyrat said:

    It didn't require a password or anything to type in "sudo" in front of the command, so obviously there's no authentication involved in running a program as root

    If it didn't, then that's probably the biggest WTF in the whole thing — though not one you can attribute to mongodb. However, did you perhaps use sudo a few minutes earlier and did type a password there? Because you won't be asked again for a certain amount of time (which seems to differ per system).

    @blakeyrat said:

    for all I know it's 3 years out-of-date

    Trust me, on a Linux system you're often better off using software that's years old than trying to get the latest version …

    @blakeyrat said:

    1) NONE of the information in it is anything I need to know.

    Linux user mentality: "Tell me everything!"

    @blakeyrat said:

    2) It tells me the version number of everything EXCEPT the one product I need to know the version number of, the one I'm ACTUALLY INSTALLING

    Of course it doesn't — the true Linux geek would already know that by having downloaded the latest source code version and compiling it manually, right? ;)

    @blakeyrat said:

    This is the typical Linux user experence? I'd have a more pleasant experience if you just hired a midget to kick me in the crotch for an hour.

    Numerous are the times I simply gave up on trying to install software on my Linux box, thinking: "Fuck this, I can do fine without it after all!" Admittedly, in my case I generally ran up against the Linux version of DLL hell, but it seems like your overall experience doesn't differ that greatly from mine.



  • @blakeyrat said:

    1) Why should I have to research things to install a DBMS?
     

    WAT? Is this a "why should I be expected to learn what the hell I'm doing?" question?



  •  Blakey, my respect for you went down a couple of notches. I'd expect you'd be able to find your way around a command line. In the past, I've installed packages from source when they weren't available on Solaris – try that for a laugh.



  • @nonpartisan said:

    Which one? command.com, cmd.exe . . . all have different structures, different capabilities, some are easier to use than others.

    @blakeyrat said:

    Fair enough; which one has a better Add/Remove Software than the rest? Oh wait they all have the same Add/Remove Software? I guess that wasn't very useful then was it.
     

    .. to paraphrase how your question appeared. Apt is simply a text-based front-end to the "dpkg" command which manages software. On the graphical desktop, there is a graphical package management tool that's .. a front-end to all the apt* commands..

    @blakeyrat said:

    It failed consistently until I did "apt-get update" (IIRC.) It wasn't a server issue, it was a "that command on its own doesn't download mongodb, you need to issue another command first" issue.
     

    Granted, you need knowledge of how to use apt do to that. But I wouldn't have expected apt tutorials on a MongoDB readme.



  • @Gurth said:

    Linux user mentality: "Tell me everything!"
     

    That's a hangover from the Unix days, in which Sysadmins were exposed to all information and left to decide what was important and what could be safely discarded. Microsoft approached it from a different direction - "don't scare the user with all this information, they may be new to computers and we don't want to frighten them" so elected to hide much of it, or at least present decision-making steps for alternate pathflows to provide a "get out here" route.

    More modern Linux distros are striking a half-way stage between the two: graphical dialogues will have the messages presented in a less frightening manner but with the option to reveal more information - an attempt to engage the "novice user". IME, I've had later releases successively turn down the verbosity and I've had to adjust settings to return them back to the required detail level.



  • @blakeyrat said:

    2) Wouldn't you just get sick of having to type "sudo" for almost everything and just start putting it in front of everything you type by default? Hell I was sure tempted to, and I only typed in like 20 commands. In which case you get zero protection.
     

     It's a case of bad instructions. They could not be bothered to say "Get root before doing any of these steps"; instead, they happily prefixed every command with "sudo". The way to get a root shell through sudo is "sudo -s" or "sudo -i". (I don't even install/set up sudo most of the time, so blind copy-pasting of these commands would fail.)

    A _lot_ of people are confused about the function of the sudo command because there are these bad instructions floating around; they just pepper it everywhere and then wonder why some things (such as input redirection) don't work. See, it must be a magic command. (See also the relevant xkcd...)

    @powerlord said:

    It's a case of a badly worded error message. As you've shown in the very next command, you don't need to be root to run it as long as your account is on the sudoers list for apt-get.

     Technically, sudo switches user to root. Hence, you are root when running the command through sudo.

     Anyway, what the mongodb instructions boil down to are: 1) add our repository 2) install the package from our repository 3) configure and run our software. Since Blakey failed to do step 1, he would naturally fail to find the package in step 2. Anyway, that's another weakness in much of the "documentation" I see floating around the webs. Such documentation feels the need to tell you what needs to be done without telling you why it needs to be done. The inexperienced user/admin is usually none the wiser after reading it. The experienced user/admin usually can wade through the rubbish to find the relevant parts and does them.



  • @hhaamu said:

    Technically, sudo switches user to root. Hence, you are root when running the command through sudo.

    Wrong. I think you need to sudo man sudo



  • @blakeyrat said:

    ... Here's my experience trying to install mongodb on a ubuntu (cloud) server:

    ...

    These errors are 100% unsolvable except to the geekiest of geeks...

    So they're not a problem at all for anyone who might want to install mongodb?


  • Let me sum up your entire message: The installation instruction and packing for Mongo db sucks. They are indeed wrong and confusing. This is however not really the fault of linux itself. But it does lead me to the next question: Do you really trust your data, to a database which can't even write a package and a installer which don't suck? (This is a serious question, all other databases I have used have managed to implement a package which is easy to install in linux, even if you don't use the version from your distribution). 

    And if you really want to write about how bad the linux command line sucks, write a rant about bash(The name of the shell). Especially how bad the handling of * and spaces in filenames are. And how much the scripting language in bash sucks. (It got a type system and syntax, which make php look sane).

    Bashing Bash is however a bit unfair. It is stuck using a 20 year old syntax and semantic because there are milions of scripts our there which depend on this. And far to many users who already know the odd design of bash and which don't want to learn anything different. But that is a rant for a different day

     



  • @nonpartisan said:

    @blakeyrat said:
    It failed consistently until I did "apt-get update" (IIRC.) It wasn't a server issue, it was a "that command on its own doesn't download mongodb, you need to issue another command first" issue.
    I can't explain why apt-get update needed to be run.

    @Cassidy said:
    Apt is simply a text-based front-end to the "dpkg" command which manages software.

    Ahem?

    DPKG is equivalent of Windows Installer (MSI). It takes an installation file ("package") you have on your computer, and installs it. It can also remove installed software.

    APT is a bit like Windows Update, and a bit like an appstore. It downloads the package you requested and its dependencies, and tells DPKG to install them.

    In cases of conflicts, it tells you that CrapWare 3.0 requires libshit 2.x, but you requested it to install Something 1.5 that needs libshit 3.1. It'll offer you to cancel installation, uninstall Crapware so you can update the library, or (if available), update Crapware to a libshit-3.1-compatible version.



    Now, the catch here. In order to quickly provide you with a list of apps available to be installed, APT keeps a local database of available packages.

    If you have an out of date database, it'll fail to download the packages that have been in the meantime removed from the repository server (probably replaced with newer versions).

    That's why you run "apt-get update" or "aptitude update", to refresh the database so APT knows what versions of software are currently available for download.





    I agree that:

    • most of the official tutorials suck like heck, and provides "magic spells" without explaination.
    • The part that you are [b]almost never[/b] supposed to install software "from the official site" on Linux, and use your distribution's repository instead is, indeed, confusing to someone who's used to Windows.
    • You might argue, and it's a fair point, that the "database update" process should run automatically when you request an installation, at least by default.

      (Still, there should be an option to disable this - it's either processing intensive if you use differentials, or bandwidth intensive if you decide to disable differentials and just download the whole new DB, and on an embedded system [youknowthememe])
    • Generally, on Linux the GUI is much less verbose and much more "on autopilot", so you'd probably have a better experience using it.





      Also, Blakey... be fair, at least. "Which shell has a better APT" makes exact same sense as "Does Powershell or Explorer have better (msiexec/chkdsk/Word/Visual Studio)". These are external tools, and behave the same no matter if you'll launch them from one or another user interface.



      Honest question: If you'd use GUI, would you found the process of "[start menu equivalent] -> System -> Install Software -> wait a moment as the apt update runs automatically -> browse the list of categories, expand 'Databases', tick MongoDB, ignore the '375 dependencies automatically selected for installation' message in the status bar, click Execute, watch the progress bar, click OK at the success message" intuitive enough?

      Also, would you also rant at mobile phones & co that when you try to manually install software it's harder and requires knowledge you don't need if you'll just use the official appstore?

  • ♿ (Parody)

    @blakeyrat said:

    Why do you NEED to manage software "non-OS" or otherwise? The OS should be managing software FOR you.

    YES! YES! YES! This is my biggest problem with Windows. Fortunately, I can spend most of my time on Debian based Linux systems, so the OS does manage my software for me.



  • @nonpartisan said:

    @blakeyrat said:
    It failed consistently until I did "apt-get update" (IIRC.) It wasn't a server issue, it was a "that command on its own doesn't download mongodb, you need to issue another command first" issue.
    I can't explain why apt-get update needed to be run.
    @bannedfromcoding said:
    Ahem?

    Yeah, I'd explained that in an earlier post. I just made an assumption that Blakey had read it.

    I find it ironic that Blakey knows full well there's some Linux geeks here that could have provided some guidance or assistance but he still plowed along in complete isolation so he can rant about how people who are unfamiliar with these concepts can easily become frustrated. Attempts at explaining things are met with sneers and replies showing a deeper level of misunderstanding - if I didn't know better, I'd say he relishes trying to demonstrate his ignorance.



  • @blakeyrat said:

    @ubuntu said:

    Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/l/linux/linux-libc-dev_3.2.0-25.40_amd64.deb 404 Not Found [IP: 91.189.92.190 80]
    E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

    Oh and by the way? When it says "run apt-get update" it really means "run sudo apt-get update" because GOD FORBID YOU LEAVE OFF THE MAGIC WORD fuck you fuck you fuck this fuck everything

     

    APT will also run on systems without sudo.

    That's one of the big actual issues with Linux - there rarely is any single standardized way of doing thing across all distros/etc. Even if you know `sudo apt-get ...`, then you will be lost as soon as you step outside of Ubuntu (or Debian, with sudo installed).

    Sometimes variety and alternatives are good, sometimes you wish everyone would  just ditch rpm's and everyone could start using .deb/apt  - but then all the RedHat admins in the world would scream out :)

     

    If you want something that will combine all the APT/sudo/etc stuff standardized at the distro level, use a distro tool, like Ubuntu's own software center etc. Otherwise, you need to learn what tools your distro has standardized on.

     



  • @Cassidy said:

    Yeah, I'd explained that in an earlier post. I just made an assumption that Blakey had read it.

    Yeah it just doesn't make sense. Why does APT download from where its cache says to instead of where the live server says to? And if it tries to download from the cached path, and hits a 404 error, why doesn't it check the live server to resolve the error? "Your cache is out-of-date, let's just fail in a retarded way instead of checking the live server."

    The answer is of course "because the makers of APT don't give a fuck", but I thought I'd ask the question anyway.



  • @Cassidy said:

    @blakeyrat said:
    1) Why should I have to research things to install a DBMS?
    WAT? Is this a "why should I be expected to learn what the hell I'm doing?" question?

    I knew what I was doing: installing mongodb. I didn't need to learn that, I already knew it.

    The problem is that accomplishing the task "install mongodb" requires a lot of knowledge that has nothing to do with knowing what the hell I'm doing. It shouldn't.



  • @Severity One said:

    Blakey, my respect for you went down a couple of notches. I'd expect you'd be able to find your way around a command line.

    What makes you think I can't?

    As I already posted, I was the sole administrator of a Linux server running a website and MUD for many years, that server never got hacked or broke (well the ISP fucked it up once), and I only had SSH access to it. I frequently use AWK in my work, when given big .csv or .tsv files. (In fact I think a graphical AWK would be both fairly easy to build and extremely useful, I've never gotten around to it.) I've run desktop Linux on my computers many times in the past, although I usually don't go more than a couple months before I come across some issue that forces me back to Windows. (Most recently, Ubuntu on a HP 1000tx convertible laptop would make extremely loud system beeps for no reason at no predictable time. How a bug like that slipped through QA I can-- haha! QA! I can't even finish the sentence sorry.)

    The thing is:
    1) I like usability. When I do a task on the CLI or otherwise, I have a really good idea of how much background knowledge and rote memorization was required for me to be able to do that task. Being aware of it allows me to suggest ways to minimize it, and also makes me sympathetic to people who do not have that knowledge who find computers horrible demon-machines from hell.
    2) I always think critically. If I'm sitting at a computer doing X, I'm always thinking to myself, "how could X be done better?" I think that attitude is essential for anybody interested in actually improving our field. (And BTW, my biggest complaint about Linux isn't "it's bad," it's "it's stagnant". Nothing changes, nothing improves, and the culture around it guarantees nothing ever will.)
    3) I have a pretty high bar for what I consider "good". No apologies there.

    I spent years in QA. I love QA. If you are Mark Shuttleworth and want to pay me what I'm making now to QA Ubuntu and related? I'd love that. Honestly. The problem is you can't make decent money on QA, so I had to move on to engineering, even if that not what I'd prefer to be doing. (And, as a side note, companies should be paying the big bucks to people good at QA. One good QA guy is worth 3 mediocre programmers.)

    Of course I always hate questions like yours too because it turns into "one true Scotsman". "Oh you've never compiled the kernel so you don't know." No, wrong. Criticism is always valid. You don't have to be a good actor to spot a bad one.

    And another note, while I'm going: it doesn't matter what Microsoft does. Linux has problems. Linux needs to fix those problems. It isn't relevant if Microsoft has the same problem. It not relevant if Linux is already better than Microsoft in some area. I feel like one of the reasons the Linux community will never get ahead is because they're so obsessed with Microsoft, and think once they've hit the Microsoft level of quality they're done. Wrong. You don't see the OS X community always obsessing over Microsoft; they're self-contained. That is a good thing.



  • @blakeyrat said:

    @Cassidy said:
    @blakeyrat said:
    1) Why should I have to research things to install a DBMS?
    WAT? Is this a "why should I be expected to learn what the hell I'm doing?" question?

    I knew what I was doing: installing mongodb. I didn't need to learn that, I already knew it.

    The problem is that accomplishing the task "install mongodb" requires a lot of knowledge that has nothing to do with knowing what the hell I'm doing. It shouldn't.

    Best I can tell, the install should have been two commands:

    1. sudo apt-get update

    2. sudo apt-get install mongodb

    Or use the GUI tool (Ubuntu Software Center I think). That's hardly "a lot of knowledge" but it does mean understanding the basics of the platform you're using. (I was about to use a car analogy, but . . . meh.)



  • @nonpartisan said:

    Best I can tell, the install should have been two commands:

    1. sudo apt-get update

    2. sudo apt-get install mongodb

    Yes, and the official instructions veered off into some weird territory that didn't make sense and had nothing to do with those two lines. We get it, we've gone over this before.

    Why shouldn't it have just been:

    @ubuntu that doesn't suck said:

    install mongodb-10gen

    - "mongodb-10gen" not found, found "mongodb", install that instead?

    Y

    - You need to elevate to run this command, enter administrative password: xxxxxxx

    - Cache out-of-date, updating...

    - mongodb installing...

    - mongodb installed and running as a service

    There, now nobody has to know the magical "sudo" command (and I'd added in some actual security with a password prompt). The stupid "apt-get" is renamed something sensible like "install". It's smart enough to do a search when it can't find a package. Whether something is cached or not is now not something the user has to worry about, as it should be. And I know the service is already running when it's done and I don't have to start it manually. The only "basics" I need to learn is the keyword "install" is used for installing software.

    Now quick, explain to me how my ideas are stupid!

    @nonpartisan said:

    Or use the GUI tool (Ubuntu Software Center I think)

    I told you, it's a cloud server. There's no GUI access as far as I can work out. Text-based GUIs like Aptitude are the best you get.



  • @blakeyrat said:

    The problem is that accomplishing the task "install mongodb" requires a lot of knowledge that has nothing to do with knowing what the hell I'm doing. It shouldn't.

     

    True, but you should at least put the blame where it belong. With the mongodb developers who made the fucked up package and documentation. If they had made a half decent job installing would be either 1 or 2 commands.

    Oh and I think I found the true wtf line:

    "If you use an Ubuntu version with “Upstart” (i.e. any since version 9.10 “Karmic,”) or are running with Upstart on Debian, use the following line:"

    Is af far as I can se the source for many of the problems. Why the hell do they use different packages depending on if the user is using Upstart? They should just have detected that duing installation. I guess most users don't even know if they are running Upstart.

     


     



  • @Cassidy said:

    That's a hangover from the Unix days, in which Sysadmins were exposed to all information and left to decide what was important and what could be safely discarded.

    Mostly what I find odd about this is that most Unix programs work on the "no news is good news" principle and so won't output anything unless the output is necessary for the task at hand or something goes wrong. Yet as soon as you do stuff like compile or install, the programs spew large amounts of stuff you don't need to know and won't have a use for unless something goes wrong. Here's an idea: cache all that output and only display it if something goes wrong. Better yet, try to only display things that may be relevant to the error, and then give the user the option of seeing all the output if they want to.



  • @blakeyrat said:

    The stupid "apt-get" is renamed something sensible like "install".

    Oh, but that part is easy:

    [code]alias apt-get install[/code]

    Might want to put that into one of your login scripts if you intend to use it a lot, though.



  • @Gurth said:

    Mostly what I find odd about this is that most Unix programs work on the "no news is good news" principle and so won't output anything unless the output is necessary for the task at hand or something goes wrong. Yet as soon as you do stuff like compile or install, the programs spew large amounts of stuff you don't need to know and won't have a use for unless something goes wrong.

    Not to mention the initial boot-up. Although now they cover it up with a thin veneer of splash screen.

    Windows: the version of the kernel, then a list of each boot-time driver installed

    Linux: 437 complete copies of Moby Dick interspersed with thousands of status lines, many of which are errors or warnings you just need to ignore every time. (Since I usually install on laptops, there's usually at least a couple power management errors in there.)

    This is like a bad stand-up routine. "Man! I went to that Linux neighborhood last night. A Windows user boots like this: 'driver driver driver blam!' (laughs) But man, those Linux users! They boot like this: 'bizzity bizzity spew spew spew bizzity spew!' (laughs)"

    @Gurth said:

    Here's an idea: cache all that output and only display it if something goes wrong. Better yet, try to only display things that may be relevant to the error, and then give the user the option of seeing all the output if they want to.

    But the real problem is that the CLI is the API. The real solution to this problem (as well as most others in Linux it seems) is to have a API separate from the UI, so that the UI could act on errors in an intelligent fashion. Or so that your alternate "better error handling" version could be used by people without hackery. ("Choice" seems to be one of those things the Linux community harps on about a lot.)



  • @blakeyrat said:

    As I already posted, I was the sole administrator of a Linux server running a website and MUD for many years, that server never got hacked or broke (well the ISP fucked it up once), and I only had SSH access to it. I frequently use AWK in my work, when given big .csv or .tsv files. (In fact I think a graphical AWK would be both fairly easy to build and extremely useful, I've never gotten around to it.) I've run desktop Linux on my computers many times in the past, although I usually don't go more than a couple months before I come across some issue that forces me back to Windows. (Most recently, Ubuntu on a HP 1000tx convertible laptop would make extremely loud system beeps for no reason at no predictable time. How a bug like that slipped through QA I can-- haha! QA! I can't even finish the sentence sorry.
    Sorry, I don't recall you ever posting this little bit of history . . . that's not to say you didn't.  But if you were the "sole administrator . . . for many years", I'd have expected you to have more background in using apt and understanding how it operates.  It makes me shake my head more that you were having this problem with MongoDB.  What distribution was running on it?

    I'm not sure what to say about the bug; everything has bugs, some serious, and software is sometimes released with serious bugs.  My specialty in bug investigation is with the Cisco IOS.  More than once a version has been released only to have them release a patched version three weeks later because there was some massive memory leak that testing didn't find.

    In terms of a graphical AWK, if you're looking at it in terms of columnar output, that probably wouldn't be too difficult.  The problem would be that AWK's output is not strictly tabular; it's really free form.  If I take a CSV file with fields for router name, IP address, installation date, IOS version . . . whatever . . . and I want columns 1 and 3, awk -F, '{print $1 $3}' input.csv results in something that looks columnar.  But the command could just as easily be awk -F, '{print "Router " $1 " was installed on " $3}' input.csv and . . . what are you going to do with that?

    I also now think much less of your criticisms when people respond with "s/abc/def/".  With the experience you've got you ought to know exactly what that means.  And truly, it's a very compact way to express one's difference in opinion.

    @blakeyrat said:

    And another note, while I'm going: it doesn't matter what Microsoft does. Linux has problems. Linux needs to fix those problems. It isn't relevant if Microsoft has the same problem. It not relevant if Linux is already better than Microsoft in some area. I feel like one of the reasons the Linux community will never get ahead is because they're so obsessed with Microsoft, and think once they've hit the Microsoft level of quality they're done. Wrong. You don't see the OS X community always obsessing over Microsoft; they're self-contained. That is a good thing.
    For better or worse, Microsoft is seen as the de facto standard.  Whether Linux should be like Microsoft is another question.  By your own comments:

    @blakeyrat said:

    Also BTW, I'm pleased to see Ubuntu has Services. Last I worked much with Linux, it was all "daemons" which is to say "programs that run all the time only because they're set to auto-run and there's no kind of OS-level logging or restarting available for them". Which is to say, shit.

    First off, daemons generally do have logging.  Second, "services" is a concept from another OS -- I know it as Microsoft (haven't worked with OS X -- they may use the same term) -- that you are imposing on Linux.

    @blakeyrat said:

    That's not to say other OSes are "hoop-less", Windows certainly has a couple

    Another comparison with Windows.

    @blakeyrat said:

    UAC is at least smart enough to know when you need to elevate permissions and prompt you at that time; if you forget sudo you just get a vague error that (if you're lucky) might mention permissions. So at the very least, UAC is a shit-ton smarter.

    And yet another.  I don't consider UAC to be smarter.  It automatically makes the request and you just need to click Yes past the window.  To force the use of sudo requires me to consciously type "sudo", which is a reminder of what I'm about to do before anything starts executing, and sudo forces me to enter my password the first time (yes, it caches that credential for a few minutes, which makes it convenient to finish doing other steps I may need to do at the same time).

    FWIW, the graphical interface (yes, I've seen your note now that you're using a cloud server without a GUI -- I'm just addressing a point of comparison) has something similar where running system utilities will pop up a dialog box saying that you're about to run something that can makes changes to your system and forcing you to enter your password.

    My point being that Microsoft is being considered as a yardstick.  If Linux does its own thing (I have no issues using apt-get, aptitude, etc.) people complain that it's not like Microsoft.  And if it's like Microsoft, then Linux has no innovation.  Linux can't win in an environment like that.

    @blakeyrat said:

    (Why isn't "proports" in Chrome's dictionary? Was the dictionary compiled by illiterates? WTF.)

    As a side note, I believe the word you're looking for is "purports".  Not a problem with Chrome.



  • @blakeyrat said:

    But the real problem is that the CLI *is* the API.
    What do you mean "the CLI *is* the API"??

    The API has open(), close(), read(), write(), etc.

    The shell CLI generally has "help", variables, decision structures, etc.

    rm, cp, mkdir, rmdir, etc. are all executable binaries that the shell runs when you type them.

    The shell is not the API.



  • @Gurth said:

    <font face="Lucida Console" size="2">alias apt-get install</font>

    Which, of course, should have read:

    <font face="Lucida Console" size="2">alias install="apt-get"</font>



  • @nonpartisan said:

    Sorry, I don't recall you ever posting this little bit of history . . . that's not to say you didn't.  But if you were the "sole administrator . . . for many years", I'd have expected you to have more background in using apt and understanding how it operates.  It makes me shake my head more that you were having this problem with MongoDB.  What distribution was running on it?

    See? See? We get into this stupid "no true scotsman" shit.

    WHO CARES WHAT DISTRO IT WAS RUNNING. IT IS NOT RELEVANT. WHO GIVES A FUCK HOW GOOD I AM AT CLI. IT IS NOT RELEVANT. I just finished explaining that like 3 posts up. Fuck. I hate you.

    @nonpartisan said:

    I'm not sure what to say about the bug; everything has bugs, some serious, and software is sometimes released with serious bugs.

    Yes, but a good OS would never release to the public with a bug that made the computer shout out an ear-shattering 120 dB bleep at random times.

    @nonpartisan said:

    I also now think much less of your criticisms when people respond with "s/abc/def/". With the experience you've got you ought to know exactly what that means. And truly, it's a very compact way to express one's difference in opinion.

    Yeah it means "I'm such a fucking nerd I can't even use English words and phrases anymore and I don't give a fucking shit if anybody else on the forum actually understands what the shit I'm saying or not."

    Why would you expect a person who is a champion of usability to have that mindset? Are you just retarded? Why should I "ought to know what it means?" Pretty sure in all my years of using Linux I've never come across that shit, or if I did I repressed the memory because it was too painful. God I hate you.

    @nonpartisan said:

    First off, daemons generally do have logging.  Second, "services" is a concept from another OS -- I know it as Microsoft (haven't worked with OS X -- they may use the same term) -- that you are imposing on Linux.

    That's because I'm not enough of a pedantic dickweed to type "the confluence of features and design that are known on Windows as 'services' but very well have a different name in a different OS." Because that's fucking stupid and I hate you.

    And the "logging" point means "centralized, organized logging". Meaning, the OS keeps track of when the Service starts, stops, or has an error and the Service itself keeps its logs in the same place. My impression is that pre-Service daemons put their logs "eh whatever" and there was no OS-level logging of when they started, stopped or had an error. Since the OS handles the logging, you can do a whole bunch of neat stuff (like centralizing the logging for an entire network on a single computer) at the OS-level without having to rewrite or reconfigure your Service. Additionally, Services can be auto-rebooted by the OS where (again in my experience) with daemons you had to write a little monitor program that would keep an eye out to restart it as necessary.

    The MUD I managed (but it wasn't enough to be a True Scotsman!) had one of those little shell-script programs to monitor it and restart it when it crashed.

    @nonpartisan said:

    To force the use of sudo requires me to consciously type "sudo", which is a reminder of what I'm about to do before anything starts executing, and sudo forces me to enter my password the first time (yes, it caches that credential for a few minutes, which makes it convenient to finish doing other steps I may need to do at the same time).

    It works for you. It does not work for the person who learns sudo as "the magic word that makes commands not fail" and uses it before every single command. As for requiring the password the first time, Ubuntu Server's default configuration doesn't do that. These points have been made multiple times in this thread, by multiple people, and you STILL HAVEN'T GOTTEN IT HAMMERED IN YOUR TINY SKULL YET i hate you.

    If sudo worked like UAC (only escalating when necessary), I would find it useful. Since it doesn't, I don't. PLEASE READ BECAUSE I AM NOT GOING TO TYPE THIS AGAIN YOU ILLITERATE FUCK.

    @nonpartisan said:

    (yes, I've seen your note now that you're using a cloud server without a GUI -- I'm just addressing a point of comparison)

    Oh you just SELECTIVELY read the thread. Fuck.

    @nonpartisan said:

    As a side note, I believe the word you're looking for is "purports". Not a problem with Chrome.

    Yes I realized that too late to edit the post. Stupidly I even Googled it, and the Google results made it look like "porports" was the correct spelling. Stupid Internet.



  • @nonpartisan said:

    What do you mean "the CLI is the API"??

    I mean that in a sensible design, APT would consist of at least two parts: 1) the library that does the actual work and provides an API, 2) one (or more) UIs that define how the user interacts with the library.

    The beauty of that is if I don't like the CLI, or if I like the CLI but I don't like the default APT CLI interface, I can build a new one which talks to the underlying library and handles errors in an intelligent way. There'd be nothing to stop me from writing my cleaner "install" command and putting it on the Ubuntu server.

    I'm not sure if it happened in this thread or Twitter, but yesterday someone explained to me that the reason Linux utilities spew out CLI errors is because they're all* just calling the underlying CLI to do the actual work. I asked, "well why doesn't the GUI tool call into the APT library directly instead of calling the CLI?" and I got this look like I had brain cancer in return. Even though that's obviously the only correct way of developing tools like this, and the way every other OS does it.

    @nonpartisan said:

    The shell is not the API.

    Let's see if I can rephrase this for your level of pedantic dickweedery: "things that should have an API do not, and instead exist only as user-facing executables"

    *) Pedantic Dickweeds: maybe not all but a lot of them, APT included



  • @nonpartisan said:

    My point being that Microsoft is being considered as a yardstick.  If Linux does its own thing (I have no issues using apt-get, aptitude, etc.) people complain that it's not like Microsoft.  And if it's like Microsoft, then Linux has no innovation.  Linux can't win in an environment like that.

    I missed this point the first time around.

    Linux needs to have feature-parity with Microsoft. It doesn't need to BE Microsoft.

    If Linux has something BETTER than Windows Services, then by all means shout it from the rooftops. I love to see new exciting features more than anybody. But it has to at least have something AS GOOD AS Windows Services.

    Right now, neither Linux nor OS X has feature-parity with Windows. I find that sad. (Although Apple has a talent for taking technologies Microsoft has but barely cares about and making people excited about them by adding a fancy GUI-- look at how OS X implements Windows' Previous Versions, with a huge fancy flying-though-space animation.)



  • I'm pretty sure you're either lying, or had Cygwin installed to add a bunch of UNIX utilities. I know for a fact that the Windows command line can basically echo stuff, delete a few filess and close itself.



  • I like turtles.



  • Homestuckies will get it. Everybody else can just look the other way.




  • @blakeyrat said:

    @gu3st said:
    Are you on shrooms or just naturally retarded?

    It's all natural. But do you know where I can get some high quality stuff man? Hook me up.

    @gu3st said:

    Windows CMD line can do absolutely nothing... it might as well not exist.

    Well it's been basically deprecated for like... 15 years at this point. So I'm sure there is a lot it can't do. But then again, it only exists in modern Windows for backwards compatibility anyway.

    @gu3st said:

    Unless you're intending to make the (true) remark that the Windows GUI can also do nothing (if both of them are first class citizens)

    The Windows GUI can do nothing, folks. This is where the true high quality shrooms gets ya. Man.

    @gu3st said:

    The OS was designed to be used as a GUI, so effectively.. nothing useful can be done from the command line (other than launching applications.. which are GUI.. which are impossible to script that way like a true command-line app can be.

    MacOS Classic was 100% scriptable, and it had no CLI at all. None. Zip. Zero. Nada. And scripting it was a far sight easier than scripting anything in the Linux world (you could just hit "record" in the scripting tool), and more powerful to boot. Alas, Apple's been taken over by the Unix-loving NeXT folks, and that tech's all basically dead at this point.

    Anyway, as far as scripting Windows... well, that's the supported and recommended way of doing system administration and has been for ages. You can even pick your language, VBA or JavaScript.

    @gu3st said:

    A command line is an excellent way to accomplish a lot of tasks.

    Yes, but unfortunately none of those tasks are in the list of top 100 tasks people do with their computer.

    @gu3st said:

    GUI's are helpful a lot of the time, I'll agree.. but Windows is so.. monolithic and GUI based that the command line is useless, which is a shame cause there's a lot of useful things that a command line is capable of.

    Which command line?

    Oh wait, let me guess: you think CMD is "the" command line because in reality you actually know jack shit about Windows, right? That's usually the case with people like you. Look, saying "the command line" when referring to Windows is NONSENSICAL. There is no "the" command line.

    @gu3st said:

    Building an OS around a monolithic GUI is about as idiotic as voting Republican... Legitimate rape.. what wankery.

    MacOS Classic seemed to sell all right and, as a reminder, it had zero CLI. None. Zip. Zero. Nada.

    I'm wondering where Applescript has been deprecated in OS X. Applications can no longer go script other applications (if they're distributed on the app store)... however Apps can still expose an Applescript interface and can script fucking anything that a user could do. You can also do Automator which is basically the same as the Classic OSX that you described.

    Also.. FreeBSD Debian.. that sounds intriguing!



  • @blakeyrat said:

    WHO GIVES A FUCK HOW GOOD I AM AT CLI. IT IS NOT RELEVANT. I just finished explaining that like 3 posts up. Fuck. I hate you.
     @blakeyrat said:
    it means "I'm such a fucking nerd I can't even use English words and phrases anymore and I don't give a fucking shit if anybody else on the forum actually understands what the shit I'm saying or not."
    @blakeyrat said:
    God I hate you.
    @blakeyrat said:
    That's because I'm not enough of a pedantic dickweed to type "the confluence of features and design that are known on Windows as 'services' but very well have a different name in a different OS." Because that's fucking stupid and I hate you.
    @blakeyrat said:
    These points have been made multiple times in this thread, by multiple people, and you STILL HAVEN'T GOTTEN IT HAMMERED IN YOUR TINY SKULL YET i hate you.
    @blakeyrat said:
    PLEASE READ BECAUSE I AM NOT GOING TO TYPE THIS AGAIN YOU ILLITERATE FUCK.

     



  • When the only tool you're dimly aware of is a hammer, everything looks like your thumb.

     



  •  I think what's happening here - as usual - is that Blakey and a number of others are simply speaking distinct languages. My 2$cs:

    • If you're administering a Linux server from the command line, you should know your command line tools. Sorry, but that's just the way it is. Servers aren't meant to be administered by click-monkeys.
    • When you've passed the first step, learn the tools relevant to your current system. A Debian-based system uses APT. If you don't like it, use a RedHat based system, or even go wild with Gentoo or Slackware.
    • Once you've learned to use APT, you'll know about the apt-get update thing and why it's there.
    • The error messages, IMHO, make perfect sense: the package was not found, and the file couldn't be locked. A friendly hint was even provided (are you root?). No idea why this pisses you off so much.

    Now, moving on to the whole "the CLI is the API" discussion:

    Blakey seems to think Windows and OSX applications are something magical that live inside the graphical shell. They are not; they're just binary applications like any other, and if they can't "connect" to a GUI they will in fact error out. A number of Windows applications I know of have very useful command line switches. In that sense, there is actually no difference between Windows, OSX and *nix systems. Windows keeps a dir.exe somewhere in the $PATH, just like *nix has /bin/ls.

    There is one important difference though, and that's in philosophy. Under Windows and (to a slightly lesser extent) OSX, applications are expected to do "everything" in and of itself. Under *nix, the philosophy is firmly "do one thing, and do it well". Hence, what you conceive of as an "application" is actually a number of binaries working together. If that scares you, so be it. I personally enjoy the sense of non-duplication it gives me.

    I don't know enough about the internal workings of Windows to say if dir.exe calls some higher level system API, or if it's the other way around. In any case I'm pretty sure *nix's ls needs a system API to access the file system as well, so it's a moot point as far as I'm concerned.

    Finally:

    @blakeyrat said:

    Linux needs to have feature-parity with Microsoft. It doesn't need to BE Microsoft.

    Let's firmly agree to disagree on THAT one. While obviously Linux has its own areas of improvement, name me one thing that Windows CAN and Linux CAN'T do. I'm sure you'll be able to find one, but I'll name you at least five in return that work the other direction.

    (edit: fixed stupid typo, it's getting late over here)

Log in to reply