I tried renaming a file in Ubuntu



  • @HardwareGeek said:

    Mostly good points, but a lot of this has nothing to do with the OS. Confusingly-named utilities (not part of the OS), badly designed GUIs, unresponsive and uncommunicative programs – crappy software is crappy software, no matter what OS it runs on, and it's not the OS's fault.

    I think you mean it's not the kernel's fault (cue standard rant about how Linux users can't decide what to call their stuff and how it changes constantly). The stuff we're talking about ships with the OS, so it's most certainly the OS's fault.



  • @boomzilla said:

    A better question would be how he defines "useful world" and "inherently discoverable".
     

    I was hoping the answer to my question would have featured those definitions.


  • sekret PM club

    @Cassidy said:

    @boomzilla said:

    A better question would be how he defines "useful world" and "inherently discoverable".
     

    I was hoping the answer to my question would have featured those definitions.

    Ok, fine, in short-speak:

    "Useful world": A world in which technology is useful, easy to use, and generally makes life a better place.
    "Inherently discoverable": Able to be picked up and used for common everyday tasks by anyone without needing to consult a manual, geeky friend, or forum thread to figure out how to do said common tasks.



  • @blakeyrat said:

    Ok, you've spent years learning Bash. How long have you spent learning VBScript or JScript or AppleScript?

    Your argument doesn't boil down to "the CLI is better", it boils down to "I know the CLI better". That's different.

    JScript or VBScript (not sure about AppleScript) would probably be much more cumbersome to type in an interactive shell. Besides, it's still a textual interface. Unix CLI wins over these just because it's more terse. And ironically, more discoverable. Where do I look up, I don't know, what objects are available through CreateObject and how can I use them? In bash I can try "help", "man", or in the worst case running the command with "--help" or "-h". Without even switching to a separate window with a help viewer or a browser. Most of the time some help will be there.

    Not that it's perfect. Being based upon manipulating text makes the Unix shell terribly inefficient and prone to bad coding. There are many gotchas which may bite you in the ass when your script is sloppy — and most of the time it is sloppy. Some of the programs' output is not machine-readable. So parsing it amounts to scrapping, and it's common, even though it often breaks in different locales.

    I would gladly see the traditional textual shell replaced with something similar to TermKit.


  • sekret PM club

    @spamcourt said:

    JScript or VBScript (not sure about AppleScript) would probably be much more cumbersome to type in an interactive shell. Besides, it's still a textual interface. Unix CLI wins over these just because it's more terse. And ironically, more discoverable. Where do I look up, I don't know, what objects are available through CreateObject and how can I use them? In bash I can try "help", "man", or in the worst case running the command with "--help" or "-h". Without even switching to a separate window with a help viewer or a browser. Most of the time some help will be there.

    I think here lies the biggest problem: What if you have no idea what the command is to do something? The basic instinct would be to type the word corresponding to the action you're trying to do. If the command for that action isn't that word, the shell will usually just kick back an error that that command can't be found, not offer suggestions based upon the help files. If the help files were all content-indexed, the shell might be able to have the ability to go "The command you typed doesn't exist, but here's a list of commands that may be what you're looking for, type command --help to learn more"



  • @e4tmyl33t said:

    I think here lies the biggest problem: What if you have no idea what the command is to do something? The basic instinct would be to type the word corresponding to the action you're trying to do. If the command for that action isn't that word, the shell will usually just kick back an error that that command can't be found, not offer suggestions based upon the help files. If the help files were all content-indexed, the shell might be able to have the ability to go "The command you typed doesn't exist, but here's a list of commands that may be what you're looking for, type command --help to learn more"
    There's apropos. And the bash shell provides hooks so that the "command not found" error can trigger running a shell script which could for example do what you just described. It shouldn't be very hard to write something like that. There is a script which does something vaguely similar, and I think Ubuntu installs it by default.



  • @e4tmyl33t said:

    I'm not arguing that the CLI should be removed entirely. For power-users, it may entirely be necessary to use a CLI to do things that the GUI can't do readily...but there's no reason to nearly *mandate* CLI usage just to use or configure a machine, as a lot of Linux users tend to argue for on forums and the like. Any common activity that someone who's completely unfamiliar with the operating system may want to do should have an easily understandable GUI attached to it. A properly designed operating system should be able to be installed, configured, and ready to use by a complete newbie for everyday usage without ever seeing a CLI or needing someone to decipher any part of the interface.
     

    I think, that it is way Linux is heading just now.

    First there should be robust and powerfull base system, then there came some GUI and then the GUI gets more and more tools. As the base system is configured via text files, the GUI program can parse them, make some nice dilagos/menus from them and then write back what was changed. The undelying system really does not care, whether  text file was generated by GUI program, or written in VIM (or generated from script by echo "something" >>file)

     

    So there came first automated installers, then more sofisticated configuration tools, then GUI programs for all that. I had seen Linux distributions, that was installed and used just from GUI, without user even aware of CLI. 

     But GUI has its problems - if you want make something really configurable (sometimes to point of programmable, like say sed or awk), then there is too much of choises to fit on one screen and there is too much of combination, so even when you go by different paths, then there is a lot of dialogs and tons of text fields to fill, so you get something overcomplicated again. Or you loose a lot of functionality. Usually both.

     

    So in my eyes, there should be to different areas - one easy, safe, GUI and limited for "newbies" and users, who does not care, just want to see playing kittens or write annual report or what. This should have some really limited (so not confusing) predefined administration.

    The other  area are more sofisticated tasks for people willing to learn difficult concepts in order to get done difficult, unusual and not pre-prepared tasks done. And that means something like CLI - or other IDE for programming. This area should not be confused with the sandbox mentioned earlier - here are different rules as it is mentioned for different kind of users and different tasks.

     

    The problem is, that many users of the first kind thinks, that because they can click Next-Next-Finish and install some prepared programs in one of few pre-prepared configuration, that they are also skilled enought to use the other area the same way with the same level of sand-boxing - which simply is not true.  It is the same as saying "because I made some HTML pages in Word and I was able to auto-upload them on web, I am perfectly skilled to write drivers in assembler - I just need some GUI interface like a ribbon from Word and I will be fine. I do not read about interrupts and RAM ranges and CPUs and such - there should be discoverable interface anyway. But this approach is not good. Computers are so complicated, that you just need to learn a lot to be able use them to fullness (or at least to some higher level). Abstractions are nice to enable you to do somthing right now, but they also inherently hides a lot of you, just to be easy to use. But computers are able to do not only easy tasks, but also complicated one.

     


  • ♿ (Parody)

    @e4tmyl33t said:

    I think here lies the biggest problem: What if you have no idea what the command is to do something? The basic instinct would be to type the word corresponding to the action you're trying to do. If the command for that action isn't that word, the shell will usually just kick back an error that that command can't be found, not offer suggestions based upon the help files. If the help files were all content-indexed, the shell might be able to have the ability to go "The command you typed doesn't exist, but here's a list of commands that may be what you're looking for, type command --help to learn more"

    Yes, this is always a problem, and it's no better using a GUI. And sometimes a GUI is even more difficult, since obscure options are usually right there in the man page for CLI tools and accessible right there, as opposed to buried under multiple dialogs and tabs.



  • @e4tmyl33t said:

    I think here lies the biggest problem: What if you have no idea what the command is to do something? The basic instinct would be to type the word corresponding to the action you're trying to do. If the command for that action isn't that word, the shell will usually just kick back an error that that command can't be found, not offer suggestions based upon the help files. If the help files were all content-indexed, the shell might be able to have the ability to go "The command you typed doesn't exist, but here's a list of commands that may be what you're looking for, type command --help to learn more"

    No, that is not the basic instinct. That the basic instinct for non-technical people who just poke at a system until it does something. Technical people know that the proper way to figure out what to do when you don't even know what command you want is to check a manual. Because having the system "suggest" commands to you is imprecise and will result in suggestions that may be entirely not what you want.

    Let's take Blakey's problem with rename. Imagine that he didn't know any renaming command at all, and instead typed "name". Then the system "helpfully" suggested "rename" to him. He uses it, and it DOES NOT DO WHAT HE WANTS. Worse, he now believes that "rename" does something that it really doesn't do, and might continue to use the wrong command in the future. If, on the other hand, he had looked up a list of commands and read through them carefully, he would know that the command he needs to use is "mv" and know exactly it does. And that doesn't even get into other, more esoteric cases, where the command he thought he wanted isn't even remotely similar to the real command. He'd just get a list of completely unhelpful "suggestions" and still be no better off.

    Which is fine for software intended for use by non-technical people. That's not what we have been talking about though. Instead we are talking about software intended for professional use by people who should be highly technical.

    Here's an analogy. My dad has an entertainment system he paid a couple grand for. It came with a nifty "universal remote" that has a nice interface where you can setup some common activities and commands. Which is great because when he just wants to watch tv, he presses the "Watch TV" button, and it works. This is analogous to what your "inherently discoverable" interface would do. However, a few years back I had to connect my computer to the system so I could stream some movies. That's not in the remote. The remote doesn't even have the functionality needed to do this. Instead, I had to read the manual, figure out where to connect the computer to the AV receiver, figure out how to switch the AV receiver input, change the resolution on the TV, and fiddle with some other settings to get the sound and everything working right (Video and Audio came from different inputs). It would not have been helpful at all if the remote assumed that because I wanted to "watch movies" then the "Watch TV" would be close enough. So the remote is good for my dad's casual use, but useless to my specialized use case. Now, if the entertainment system wasn't in my dad's house, but was instead in some commercial center where new devices are plugged in and out on a daily basis with wildly different configurations, the universal remote would end up being practically worthless.

     



  • @e4tmyl33t said:

    You or I could make that distinction. What about Bob, the guy who's never sat in front of a computer in his life? If he goes to copy a file on a brand new computer, and doing so either requires said confusingly-named utilities or a terrible UI, what is he likely to blame for this? He won't say "Dammit, these programs make it so hard to use them!", he'll say "What is this <OS> shit? Why don't it work?"
     

     

    Here is the root of it, I would say. Windows are targeted to such Bobs and they do a lot of work to actually hide nearly everything from them. And long time did not care for geeks.

    Linux is targeted at geeks, who wants do everything what is possible with given HW and do not want to be restricted to some "easy and safe sandboxes". Geeks, who are willing pay the prize in terms of hours of learning, just to be able to do more with the computer. And long time did not care for Bobs.

     

    (Well over time Windows released even something for geeks and Linux released something for Bobs, but the main audience is just totally different.)

     

    I had seen 3-wheeled cars made by car company - they looked like cars and behaved like cars, just was smaler and lighter.

    I had seen 3-wheeled motorcycles made by motorcyckle companies - they looked like motorcykles, just was more stable and massive.

    Both was 3-wheeled vehicles, but was targeted on different audience and was totally different in construction. Windows on PC and Linux on PC are both such 3-wheeled vehicles now.

     



  • @blakeyrat said:

    How long have you spent learning VBScript or JScript or AppleScript?

    Your argument doesn't boil down to "the CLI is better", it boils down to "I know the CLI better". That's different.

     

    So you say, that VBScript or JScript are now GUI generated and not long buch for text in programming language? And you just need to click some menus and dialog and not to write some cryptic commands with parameters?

     

    My argument was - There are some problems, which are much better managed by programming, then by clicking GUI.

    I do not care, whether I program in bash, python, Javascript, Java or other language. Everytime I had to program  something more complex, there was a lot of text and few of mouse clicking. There was a lot of calling programs/procedures/functions and such and very small of selecting radioboxes and checkboxes.

     

    Or are you impling, I am programming in GUI, when open bunch of terminals on X and  start typing in vim? Technically I am on GUI - I have pictures on background, I have mouse with nice arrow and all, but really I am programming some commands in text with parameters - and the result could be as well bash-script or python application with dilogs and menus - still I need to know, what does which command, and what parameters it takes.

     



  • @e4tmyl33t said:

    @spamcourt said:
    JScript or VBScript (not sure about AppleScript) would probably be much more cumbersome to type in an interactive shell. Besides, it's still a textual interface. Unix CLI wins over these just because it's more terse. And ironically, more discoverable. Where do I look up, I don't know, what objects are available through CreateObject and how can I use them? In bash I can try "help", "man", or in the worst case running the command with "--help" or "-h". Without even switching to a separate window with a help viewer or a browser. Most of the time some help will be there.

    I think here lies the biggest problem: What if you have no idea what the command is to do something? The basic instinct would be to type the word corresponding to the action you're trying to do. If the command for that action isn't that word, the shell will usually just kick back an error that that command can't be found, not offer suggestions based upon the help files. If the help files were all content-indexed, the shell might be able to have the ability to go "The command you typed doesn't exist, but here's a list of commands that may be what you're looking for, type command --help to learn more"

    This is something even I will admit could be vastly improved. If you know the command name, info or man will (usually) tell you everything you need to know to use it, but finding the name of the command if you don't already know it can be problematic.

    In bash, help gets a list of bash builtin commands, but no help with any other tasks like cp or mv. In csh, all it gets is "help: Command not found."

    apropos is what you probably want, but the name is completely non-obvious, and the output tends to be cluttered with irrelevant junk that happens to have the search string somewhere in the description. On my work system, "apropos rename" produces 81 results that include "Tcl_FSRenameFile," 4 different "rename" commands (rename (1), rename (2), rename (3p) and rename (n)) and a bunch of random cruft along with what you were probably looking for, "mv." And the one-line descriptions give no clue that you generally want to "move (rename) files" rather than "Rename files".

     



  • @e4tmyl33t said:

    I think here lies the biggest problem: What if you have no idea what the command is to do something? The basic instinct would be to type the word corresponding to the action you're trying to do. If the command for that action isn't that word, the shell will usually just kick back an error that that command can't be found, not offer suggestions based upon the help files. If the help files were all content-indexed, the shell might be able to have the ability to go "The command you typed doesn't exist, but here's a list of commands that may be what you're looking for, type command --help to learn more"

     


    You mean something like

    $ apropos rename|grep 1
    dpkg-name            (1)  - rename Debian packages to full package names
    git-mv               (1)  - Move or rename a file, a directory, or a symlink
    rename               (1)  - rename files
    zipnote              (1)  - write the comments in zipfile to stdout, edit comments and rename files in zipfile
    
    

    where the grep 1 selects only lines with 1, which are executable commands. This feature is in Linux longer, than I know it.


  • Discourse touched me in a no-no place

    @Cassidy said:

    @e4tmyl33t said:

    An OS should be inherently discoverable, at least in a useful world.
     

    Why?

    Almost anything should be discoverable, and the reason should be obvious enough that nobody should have had to answer. Do you like the idea of living in a world where everything fights you?



  • @Snooder said:

    Let's take Blakey's problem with rename. Imagine that he didn't know any renaming command at all, and instead typed "name". Then the system "helpfully" suggested "rename" to him. He uses it, and it DOES NOT DO WHAT HE WANTS. Worse, he now believes that "rename" does something that it really doesn't do, and might continue to use the wrong command in the future. If, on the other hand, he had looked up a list of commands and read through them carefully, he would know that the command he needs to use is "mv" and know exactly it does.

    Here's a possibility, rename is badly named and needs to be renamed to something more sane.
    rename-all or bulk-rename seems like a good start.

    By the way, just throwing this out there, but this is actually a plugin for the Thunar file manager:



  • @blakeyrat said:

    Exercise 1

    Question: I have a file: ~/folder1/folder2/file.txt. I rename "folder1" to "poop". Has the name of file.txt changed?

    If one has the perspective that the name of the file is where it can be found, yes its name is now '~/poop/folder2/file.txt' (hint: all absolute paths to the file are now broken!) The man file was presumably written by someone who know who came up with this shit (and might have held this same perspective on filenames), which is what you wanted to know in your OP. Sorry for answering your question.

    @blakeyrat said:

    You read my posts here, do you honestly think I'm retarded?
    My point was the difference between pretending to be a retard, and being a retard is negligable. You either didn't comphrend what i wrote, or you are pretending not to comphrend what i wrote, either way any reply will appear to be from someone who didn't comphrehend what i wrote!

     

     

    Oh and your supposed to know to type 'man' because that supposed to be one of the basics that you learn, like how DOS, and Windows CLI (CMD) had/have 'help.'

     



  • @e4tmyl33t said:

    I'm not arguing that the CLI should be removed entirely. For power-users, it may entirely be necessary to use a CLI to do things that the GUI can't do readily...but there's no reason to nearly mandate CLI usage just to use or configure a machine, as a lot of Linux users tend to argue for on forums and the like.

    I think this point is actually a bit of a furphy. I don't actually see a lot of Linux users arguing for mandatory use of a CLI for configuration; I have seen many arguments for continued availability of a CLI for that purpose, and a lot of proprietary software fanbois who wilfully misrepresent the latter position as the former for convenient construction of straw men.

    The reason you'll see so many CLI-based solutions posted on Linux help forums is that it's far less time-consuming to write out three or four command lines and say "paste this into a terminal" than it is to do a full step-by-step GUI walkthrough with all necessary screenshots. Trying to communicate a moderately complex configuration task in the restricted language of point-and-grunt is like programming in Brainfuck. I'm sure some people enjoy it; I'm not one of them.



  • @flabdablet said:

    The reason you'll see so many CLI-based solutions posted on Linux help forums is that it's far less time-consuming to write out three or four command lines and say "paste this into a terminal" than it is to do a full step-by-step GUI walkthrough with all necessary screenshots.

    Ah, so pure laziness. Gotcha.
    The way I see it is if a configuration task is sufficiently complex that you need to start using the CLI, then perhaps it's not that the CLI is better at configuring things but that the GUI tools are just really shit at it.


  • Discourse touched me in a no-no place

    @Salamander said:

    The way I see it is if a configuration task is sufficiently complex that you need to start using the CLI, then perhaps it's not that the CLI is better at configuring things but that the GUI tools are just really shit at it.
    The real problem is that as tasks go up in complexity, it far more rapidly gets harder to write GUIs to guide people through those tasks than it rate at which it gets harder to write CLIs to provide access to those tasks' functionality. We have GUI tools for some simple tasks like moving a file around or changing its name; those require very little expertise to use. We have GUI tools to support writing a program; those require some real expertise to use anyway (programming is generally a very complex task, even if we're all reasonably good at it here) and yet that's also a task that could in principle be done with simpler tools. (Some languages are easier to do that way than others.) Yet imagine a complete GUI to guide a user through writing a program; it'd have to start with a round of “20 Questions” or something just to work out what they want to do in the first place, and that might then lead to 220 different task-based GUIs to work from. I'm lazy enough to know that I don't want to write a million different task-focused GUIs without a lot of encouragement.

    In short, the size of the complexity space grows exponentially but the amount that a GUI can do tends to grow linearly with the effort that is thrown at it (unless you do a graphical programming language, and they're quite a lot harder to use well…)



  • @e4tmyl33t said:

    "Inherently discoverable": Able to be picked up and used for common everyday tasks by anyone without needing to consult a manual, geeky friend, or forum thread to figure out how to do said common tasks.
     

    That's great for people that want to be able to use something complex without any prior knowledge whatsoever, but represents a potential danger when said product is in the hands of someone unskilled.

    (example: a car)



  • @e4tmyl33t said:

    "Inherently discoverable": Able to be picked up and used for common everyday tasks by anyone without needing to consult a manual, geeky friend, or forum thread to figure out how to do said common tasks.
     

    That's great for people that want to be able to use something complex without any prior knowledge whatsoever, but represents a potential danger when said product is in the hands of someone unskilled.

    (example: a car)

    @e4tmyl33t said:

    What if you have no idea what the command is to do something? The basic instinct would be to type the word corresponding to the action you're trying to do.
     

    And this is why novices shouldn't be ignorantly attempting things on their own without any prior training or research. This basic instinct is the reasons people double-click on attachments "just to see what they do". The same people that wouldn't pick up some unnamed substance off the street and lick it "just to see what it is".

    @e4tmyl33t said:

    If the command for that action isn't that word, the shell will usually just kick back an error that that command can't be found, not offer suggestions based upon the help files.

    This depends upon the shell (and the distro and/or command) - but in most cases the former is correct.

     @e4tmyl33t said:

    If the help files were all content-indexed

    This statement suggests you believe they're not.

    @e4tmyl33t said:

    the shell might be able to have the ability to go "The command you typed doesn't exist, but here's a list of commands that may be what you're looking for, type command --help to learn more"

    Some shells/distros do, and some commands do - but as you've pointed out, it's quite a minotiry at the moment (I believe "fish" has some inline command-completion or command-suggestion capabilities).

     



  • @HardwareGeek said:

    If you know the command name, info or man will (usually) tell you everything you need to know to use it, but finding the name of the command if you don't already know it can be problematic.
     

    man -k searches the content-indexed help pages. 



  • @FrostCat said:

    Almost anything should be discoverable, and the reason should be obvious enough that nobody should have had to answer. Do you like the idea of living in a world where everything fights you?
     

    No, but I live in a world where a supplier could put effort into making something discoverable, or a customer could invest effort in learning how the product works. The more complex the product, the effort form both parties is required and I don't feel - as a business decision - a supplier should carry on gold-plating a product to make it completely idiot-proof.

    There is a responsibility of the user to determine how to use the product - whether they learn by feeling their way around and prodding at it until they've reached a certain comfort level, they half-read up on instruction manuals or they are formerly taught as part of an acclimatisation program before being let loose to fly solo.

    Now I have exactly Blakey's problem, but on the flipside: I'm trying to get SharePoint installed and working but the wizard doesn't follow best-practise so I'm now going through the manual stages. However, I know nothing about AD so an instruction of "ensure sp_farm has change rights to the content database" had me struggling with an unfamiliar GUI tool, and I had to ask someone what an "organisational unit" was for and why you'd use them. I eventually found the right option, but it took several goes until I got there.

    (and, ironically, the fix Microsoft gave was a PowerShell command - the techie fired up PS, cut n pasted in two lines of code and all was well).

    I recognise it's a noble desire to have technology designed and created so that the learning curve is gentle and people can hit the ground running, but the complexity of some technology these days simply means it's going to be an expensive decision. Blakey's ranting against how difficult Linux is to use and why there isn't some simple GUI method of managing the OS.. with desktop Linux, there is. That's the audience it's designed for. He's struggling to manage a server because there's an expectation a server admin is a skilled role and people are properly trained up, so there's no noob-style wizards to guide beginners through.

    Look at code examples on this site: many of them have come from people who have discovered coding and are feeling their way without any formalised training programme, so they're doing the best they can and make all the basic mistakes expected of a beginner. This is stuff I expect to find on a training course when the impact of poor code quality is discussed and analysed; it's not stuff I expect to find its way into production code but the reasons behind it is often "I'm a novice".



  • @Salamander said:

    The way I see it is if a configuration task is sufficiently complex that you need to start using the CLI, then perhaps it's not that the CLI is better at configuring things but that the GUI tools are just really shit at it.
     

    I wouldn't say the CLI is necessarily "better", just faster and easier to cut n paste a command - and some people feel more comfortable in the CLI than the GUI.

    OTOH, many GUI tools are really shit at things. Can't disagree there.



  • @Salamander said:

    @flabdablet said:

    The reason you'll see so many CLI-based solutions posted on Linux help forums is that it's far less time-consuming to write out three or four command lines and say "paste this into a terminal" than it is to do a full step-by-step GUI walkthrough with all necessary screenshots.

    Ah, so pure laziness. Gotcha.
    The way I see it is if a configuration task is sufficiently complex that you need to start using the CLI, then perhaps it's not that the CLI is better at configuring things but that the GUI tools are just really shit at it.

     

    While some GUI tools are shit, the reason lies in other point: There are too many GUI for doing configuration, but in the end it is text file modified some simple way.

    So you can describe one way for one GUI (and take a lot of screenshots, where the ida is usually hidden under the volume of unimportant details show around the solution line) which leads to log tutorial for one GUI and leave all users of other GUI helpless, 

    or you can describe one way in CLI, where there is only few lines of text and it solve the problem for all distributions and all types of GUI (because you just modify the resulting textfile)

    And also there is  way less irrelevant sugar aroud to hide, what is the desired change.

     

    BTW: Why are we here discussing in plain text (so CLI) and not just clicking some GUI buttons to have pictures desribe, what we mean? Maybe we want to describe it preciselly and there is not enought desriptive GUI for even such basic task as arguing on internet :)

     



  • @Cassidy said:

    This basic instinct is the reasons people double-click on attachments "just to see what they do". The same people that wouldn't pick up some unnamed substance off the street and lick it "just to see what it is".

    I'm pretty sure the middle of that Venn diagram is more populous than you're suggesting :-)



  • @gilhad said:

    Why are we here discussing in plain text (so CLI) and not just clicking some GUI buttons to have pictures desribe, what we mean? Maybe we want to describe it preciselly and there is not enought desriptive GUI for even such basic task as arguing on internet :)

    Can I customize the Ribbon?  leads to  super rage

    Can I learn this language?  leads to  super rage



  • @Salamander said:

    @flabdablet said:

    The reason you'll see so many CLI-based solutions posted on Linux help forums is that it's far less time-consuming to write out three or four command lines and say "paste this into a terminal" than it is to do a full step-by-step GUI walkthrough with all necessary screenshots.

    Ah, so pure laziness. Gotcha.

    What you describe as "laziness", most system administrators and help desk operators would describe as "effective time management".



  •  Why does everybody here presume that a GUI in itself is somehow instinctive or discoverable? Have you ever shown a chimpanzee a computer mouse? Or to a truly first-time computer user? A mouse is about as undiscoverable as they get.

    Granted, a keyboard is any more discoverable to English speakers only.

    But with ANY computer system, OS and UI, the presumption must be made that the user has had SOME training. This training might be on the level of observing mommy send an email, for the modern child. Ideally, the trainig is reading a manual; this gives the user the basic understanding and shows ways to get more information.

    So, unless your GUI has "How to use a mouse:" with diagrams on the screen at startup, don't speak of "intuitive". Please.

     



  • @Cassidy said:

    That's great for people that want to be able to use something complex without any prior knowledge whatsoever, but represents a potential danger when said product is in the hands of someone unskilled.

    (example: a car)

    Again, and I feel like a fucking broken record here, the danger is only there because Linux developers want it there. There's no inherent law of nature that says a CLI has to have dangerous operations with no safety net; human beings built it that way.

    My question is just, "why haven't they made it better in all these years?" You can read that ass, "why haven't they added a safety net to make it less dangerous?" if you like.


  • Considered Harmful

    @blakeyrat said:

    @Cassidy said:

    That's great for people that want to be able to use something complex without any prior knowledge whatsoever, but represents a potential danger when said product is in the hands of someone unskilled.

    (example: a car)

    Again, and I feel like a fucking broken record here, the danger is only there because Linux developers want it there. There's no inherent law of nature that says a CLI has to have dangerous operations with no safety net; human beings built it that way.


    I'm sure we could engineer cars that run on a track and you just push the "take me to work" button, but there'd be rioting in the streetstracks if we took away the capability to drive yourself. You'd find the same schism between self-driving and manually-driven car owners as you do between GUI junkies and CLI junkies.



  • @gilhad said:

    Geeks, who are willing pay the prize in terms of hours of learning, just to be able to do more with the computer.

    What is the "more" that a Linux user gets out of their computer than a Windows GUI user? What is actually the benefit of learning the Linux CLI? I would love to know.

    (The answer, though, I'm pretty sure is: "well you kind of have to, because Linux is so shitty that's literally the only way to do some things.")

    All I get out of Linux is doing the exact same things, but slower, and a different huge pain in the ass every week.



  • @gilhad said:

    While some GUI tools are shit, the reason lies in other point: There are too many GUI for doing configuration,

    That is a problem Linux has and has never fixed. Why? Well, let's go back to my thesis: they don't give a shit.

    @gilhad said:

    but in the end it is text file modified some simple way.

    Text file-based configuration sucks shit. If Linux moved away from it, they might be able to make things a little better.

    @gilhad said:

    or you can describe one way in CLI, where there is only few lines of text and it solve the problem for all distributions

    What if your solution uses "rename"? Which, as we've been discussing, is different on different distros? What if you use "emerge" and I use "apt-get"?

    The CLI demonstrably solve this problem you are claiming it does; the evidence is right here in this thread.



  • @OldCrow said:

    Why does everybody here presume that a GUI in itself is somehow instinctive or discoverable? Have you ever shown a chimpanzee a computer mouse? Or to a truly first-time computer user? A mouse is about as undiscoverable as they get.

    Granted, a keyboard is any more discoverable to English speakers only.

    But with ANY computer system, OS and UI, the presumption must be made that the user has had SOME training. This training might be on the level of observing mommy send an email, for the modern child. Ideally, the trainig is reading a manual; this gives the user the basic understanding and shows ways to get more information.

    So, unless your GUI has "How to use a mouse:" with diagrams on the screen at startup, don't speak of "intuitive". Please.

    Oh, snap!

    Hey guess what: the OS I laud for getting everything right? They got that right, too!



  • @joe.edwards said:

    You'd find the same schism between self-driving and manually-driven car owners as you do between GUI junkies and CLI junkies.

    But if the track goes all the exact same places, most of them faster (some of them admittedly a little slower), why wouldn't you put your car on the track?

    The CLI has two problems:


    1) It's a goddamned mess, and

    2) The only clear use it has is to compensate for a OS having shitty GUI tools.

    If there were a *clear* benefit to learning it, I might be more generous about what a goddamned mess is it. But no. The benefit to learning it is, "everything's a goddamned mess in Linux, and the CLI is slightlly less of a goddamned mess than the other stuff." Great.



  • @blakeyrat said:

    If there were a *clear* benefit to learning it, I might be more generous about what a goddamned mess is it. But no. The benefit to learning it is, "everything's a goddamned mess in Linux, and the CLI is slightlly less of a goddamned mess than the other stuff." Great.
     

    And I thought, the "clear bebnefit" for you is not being fired from your shitty work by your shitty boss... Otherwise you would be somwhere else, working with tools, you are able to learn at least little.

     

    @blakeyrat said:

    Well, let's go back to my thesis: they don't give a shit.

    Let me quess - they give so much shit, how much you paid them to give a shit ...

     

     

    @blakeyrat said:

    All I get out of Linux is doing the exact same things, but slower, and a different huge pain in the ass every week.

    Maybe it is because you try the same ways you learned on Windows or where and do not use Linux, but you are just trying talk it to be second Windows shit. 

    I was trying to use windows, but it never gave me so much freedom and so much tools to solve my problems, like Linux did. All was slow, inconvenient, hard to discover and still trying to do anything else, that I wanted. So I turned back to Linux and it was good. I suggest you should return to windows and leave Linux to them, who can use it linux way.

     



  • @blakeyrat said:

    Text file-based configuration sucks shit. If Linux moved away from it, they might be able to make things a little better.
     

    Like what? Like being unreadable binary blob like Windows, where nobody could say, what that binary blob does and what exactly the configuration is?

    It would help only to be unreadable like shit and just bash skilled users to be on the same basic like as any ape, binded to unintuitive dialog suggestions. No, thants, go shoot yourself to leg, I am not interested.

     



  • @flabdablet said:

    @Cassidy said:
    This basic instinct is the reasons people double-click on attachments "just to see what they do". The same people that wouldn't pick up some unnamed substance off the street and lick it "just to see what it is".

    I'm pretty sure the middle of that Venn diagram is more populous than you're suggesting :-)

    Darwin's pretty sure it'll self-diminish over time...



  • @gilhad said:

    Like what? Like being unreadable binary blob like Windows, where nobody could say, what that binary blob does and what exactly the configuration is?

    It would help only to be unreadable like shit and just bash skilled users to be on the same basic like as any ape, binded to unintuitive dialog suggestions. No, thants, go shoot yourself to leg, I am not interested.

    Why not just supply tools to set configuration values to a specific way?
    Does being able to read something with a text editor somehow make it better? If so, why?
    All I see from that approach is that it introduces more errors.



  • @gilhad said:

    And I thought, the "clear bebnefit" for you is not being fired from your shitty work by your shitty boss... Otherwise you would be somwhere else, working with tools, you are able to learn at least little.

    They need me a hell of a lot more than I need them. Pay's good though.

    @gilhad said:

    I was trying to use windows, but it never gave me so much freedom and so much tools to solve my problems, like Linux did.

    What problems. Sock it to me. This is what I'm asking.



  • @gilhad said:

    Like what? Like being unreadable binary blob like Windows, where nobody could say, what that binary blob does and what exactly the configuration is?

    They include an app to read it.

    No; they suck because they have tons of issues. Raymond Chen spells them out here, so I won't rehash. (Note: some of those things Chen points out apply only to .ini files, but most of them apply to *all* text-based configuration files.)



  • @Salamander said:

    Why not just supply tools to set configuration values to a specific way?
    Does being able to read something with a text editor somehow make it better? If so, why?
    All I see from that approach is that it introduces more errors.

     

    The tools are already supplied - text editors, GUI front ends, or you can write your own easily to meet your needs - main moto of Linux is not restrict evrybody from potencially dangerous operations, but to enable skilled people to customize it to their needs.

     

    Does it better, because you cen edit it hoe you want, or make your own configuration tools. Also you can read and write comments there, to be sure, what you had on mind, when you set it some way. 


    On the other hand - why should be better (for skilled user) to NOT be able configure his own compter easily?

     You can choose - one system enables you to take responsibility and do whatever you want, the other takes away responsibility from you by restricting you to just little subset of possibilities, without regards to your actual needs.

    I choose freedom, but I understand, that somebody want be "enslaved in name of safety" - but Linux is not targeted at such people - windows or OSX are.

     



  • @blakeyrat said:

    What is the "more" that a Linux user gets out of their computer than a Windows GUI user?

    It's hard to put a finger on. I sysadmin a fleet of school Windows workstations, so I spend a lot of time working with Windows, and honestly it's the last thing I'd ever run on any of my home machines. Those all run Debian, they just work, and when I mess about with them it's fun.

    The fundamental difference between the two environments, in my experience, is that when I'm having my time wasted by a Debian box it's because I'm trying to figure out how to make something work (which I actually don't need to do much of any more because the Debian maintainers do an excellent job of making things Just Work as soon as they're installed); when I'm having my time wasted by a Windows box it's because I'm trying to figure out how to suppress some irritatingly dysfunctional behaviour that's been pissing me off for weeks (like automatic updates slowing the machine to a crawl and/or forcibly restarting it right when I need it to do its fucking job and get out of my face).

    I'm also a big fan of software that's not trying to upsell me every five minutes and doesn't need anti-malware bandaids to stop the house teenagers rendering it inoperable by downloading fuck knows what into fuck knows where for fuck knows why.

    @blakeyrat said:

    What is actually the benefit of learning the Linux CLI? I would love to know.

    If it's something your job forces you to use, then learning it ought to save all the rage and frustration involved in trying to use it without having done so.

    But if learning Bourne shell and only enough of the Linux CLI userland to let you do your job is something you're doing with gritted teeth while clinging to a principle that CLIs as a class are just Wrong From The Start, you're unlikely to enjoy it much. Personally I did it because I was curious about it, and as somebody with a strong aesthetic appreciation for elegance in language design, I'm really glad I did. Bourne shell ranks with Javascript in my pantheon of sadly underappreciated languages.



  • @blakeyrat said:

    @gilhad said:
    Like what? Like being unreadable binary blob like Windows, where nobody could say, what that binary blob does and what exactly the configuration is?

    They include an app to read it.

    No; they suck because they have tons of issues. Raymond Chen spells them out here, so I won't rehash. (Note: some of those things Chen points out apply only to .ini files, but most of them apply to *all* text-based configuration files.)

     

    To correct you - MOST of them apply only to INI files or to Windows, cause they are shitty system - 

    • INI files don't support Unicode.  - WINDOWS ONLY PROBLEM
    • INI file security is not granular enough. Since it's just a file,  - You can have more, than one configuration file, if you need, usually you have one central and one per user - so again WINDOWS ONLY PROBLEM

    • Multiple writers to an INI file can result in data loss. - Ususally you need not write to INI files concurently - so no real problem
    • INI files can suffer a denial of service. - Again  WINDOWS ONLY PROBLEM
    • INI files contain only strings. If you wanted to store binary data, you had to encode it somehow as a string. - Nice, so far I had encoded numbers, IP adresses and strings - so much problems with it ...
    • Parsing an INI file is comparatively slow. Each time you read or write a value in an INI file, the file has to be loaded into memory and parsed. If you write three strings to an INI file, that INI file got loaded and parsed three times and got written out to disk three times. WINDOWS ONLY PROBLEM 
    • Many programs open INI files and read them directly. This means that the INI file format is locked and cannot be extended. Even if you wanted to add security to INI files, you can't. What's more, many programs that parsed INI files were buggy, so in practice you couldn't store a string longer than about 70 characters in an INI file or you'd cause some other program to crash. WINDOWS ONLY PROBLEM
    • INI files are limited to 32KB in size. WINDOWS ONLY PROBLEM
    • The default location for INI files was the Windows directory! WINDOWS ONLY PROBLEM
    • INI files contain only two levels of structure. WINDOWS ONLY PROBLEM
    • [Added 9am] Central administration of INI files is difficult. Since they can be anywhere in the system, a network administrator can't write a script that asks, "Is everybody using the latest version of Firefox?" They also can't deploy scripts that say "Set everybody's Firefox settings to XYZ and deny write access so they can't change them." MAINLY WINDOWS ONLY PROBLEM- on Linux you have those files in /etc and in ~/.progname

     

    So to sum your note: WINDOWS sucks with INI files.


     



  • @Salamander said:

    Does being able to read something with a text editor somehow make it better? If so, why?

    For me, it means that I can use tools I'm already productive with to manipulate configuration information that's usually pretty well self-documented, as opposed to needing to find one kind of tool to do things with the Registry, another kind to do things with system services, another to do things with system logs, another kind to do things with machine policy... all of which work slightly different ways, and all of which have gaping functional gaps.

    Unix was originally built for text processing, and it has a shitload of useful tools for doing that. Being able to apply all of that functionality to the system's own configuration information is something I frequently find useful, and bemoan the lack of on Windows.

    Reading system logs in Windows is slow, because Event Viewer sucks. Search them? Good luck with that, especially if the pattern you're searching for is complicated enough to need a regex to describe. Want to do a search and replace in the Registry because you're moving the root of the user profiles tree to a different drive? Good luck with that (hint: easiest way, using the tools supplied with the system, is to export the whole fucking Registry to a flat text file and do your search and replace with a text editor). Oh, I'm not supposed to touch the Registry because there's supposed to be a specialized GUI or some cunning COM API to do that specific task the Right Way instead? Good luck with tracking that down before lunch. And on and on and on.

    You like the Windows way better? Good for you. Enjoy it! Personally, I'm glad I only have to mess with it for my job.



  • @flabdablet said:

    as somebody with a strong aesthetic appreciation for elegance in language design, I'm really glad I did. Bourne shell ranks with Javascript in my pantheon of sadly underappreciated languages.
    I suppose it also includes INTERCAL, BASIC, COBOL and PHP.



  • @gilhad said:

    The tools are already supplied - text editors, GUI front ends, or you can write your own easily to meet your needs - main moto of Linux is not restrict evrybody from potencially dangerous operations, but to enable skilled people to customize it to their needs.

    Alternative: Allow skilled people to customise things to their needs while stopping dumb shit that cannot possibly work.
    Besides, I disagree with the notion that text editors are configuration tools for a specific program. They are text editors. They do not know anything about the file format (Which does exist, albeit implicitly); they just happen to not fail spectacularly the moment you try using them.

    @gilhad said:

    Does it better, because you cen edit it hoe you want, or make your own configuration tools. Also you can read and write comments there, to be sure, what you had on mind, when you set it some way.

    No you can't. Any edit you make must be something understood by the program using the configuration file.
    And who says you can't have comments in a binary file?

    @gilhad said:

    On the other hand - why should be better (for skilled user) to NOT be able configure his own compter easily?

    What are you on about? Supplying program-specific configuration tools doesn't make configuration harder; if anything it makes it easier because the tools are aware of what is and is not an allowed value and they can give helpful advice when you fuck it up.
    Haven't you used a IDE before?
    You must have at least used a document editor with spellcheck, right?

    @gilhad said:

    You can choose - one system enables you to take responsibility and do whatever you want, the other takes away responsibility from you by restricting you to just little subset of possibilities, without regards to your actual needs.

    I choose freedom, but I understand, that somebody want be "enslaved in name of safety"

    Again, anything you put in a configuration file must already be supported by the program that uses it.
    Are you really that dumb that you cannot understand this, or do you expect a program to magically understand any bullshit you put in a configuration file?
    Also, stop throwing around the word "freedom"; It makes you look like a wanker.



  • @flabdablet said:

    Reading system logs in Windows is slow, because Event Viewer sucks. Search them? Good luck with that, especially if the pattern you're searching for is complicated enough to need a regex to describe. Want to do a search and replace in the Registry because you're moving the root of the user profiles tree to a different drive? Good luck with that (hint: easiest way, using the tools supplied with the system, is to export the whole fucking Registry to a flat text file and do your search and replace with a text editor). Oh, I'm not supposed to touch the Registry because there's supposed to be a specialized GUI or some cunning COM API to do that specific task the Right Way instead? Good luck with tracking that down before lunch. And on and on and on.

    So the tools written for all that stuff happened to be rather shitty, therefore text-based configuration is superior?
    Does not follow.



  • @Salamander said:

    Alternative: Allow skilled people to customise things to their needs while stopping dumb shit that cannot possibly work.


    OK, give me such tools, which I could use both manually and in scripts and I will use them most of the time. Until I will come to something, that such tool is not able to do as simply as I can by editing text file.

     

    @Salamander said:

    Besides, I disagree with the notion that text editors are configuration tools for a specific program. They are text editors. They do not know anything about the file format (Which does exist, albeit implicitly); they just happen to not fail spectacularly the moment you try using them.

    Which is more, than do nearly all GUI tools I met on Windows...

    @Salamander said:

    No you can't. Any edit you make must be something understood by the program using the configuration file.

    While using GUI I must make changes understood by BOTH of the program AND the GUI editor. Also I found hard to automate tasks over GUI editors, especially, if they change a little on each update.

    @Salamander said:

    And who says you can't have comments in a binary file?
    Maybe I looked bad, but I did not found usefull comments in Windows registry.

    Are we talking about some mystery future configuration tools, which will be written by spendind many people-years in some distant future, or about what we have now and here and what is relativelly probable in next year or two?

    @Salamander said:

    What are you on about? Supplying program-specific configuration tools doesn't make configuration harder; if anything it makes it easier because the tools are aware of what is and is not an allowed value and they can give helpful advice when you fuck it up.

    Except that writing such tool to be usefull and convenient to use AND to be able set  ALL possible configuration combinations AND be easily accesible from scripts is still so terribly much of work, that nearly nobody does it. And so we are stuck with incomplete and inconvenient restrictive tools usually.

    @Salamander said:

    Haven't you used a IDE before?

    Yes, I did. And those IDEs helped me with some tasks, while leaving plain text files on disk, which I could modified in ways, that those IDEs did not allow. (So it is again - text files on disk, accesible by all text tools and also by some nice application, helping in usual cases)

    @Salamander said:

    You must have at least used a document editor with spellcheck, right?
    Yes, I did. Many times. Usually it corrected some my mistakes and tryied to insert another mistakes.In some cases the corrections totally reverted the main sense of the writing. So I appreciate help in showing, what spellchecker thinks is not correct, but I disable autocorrection as first thing and leave myself to be the final judge, of what will be in the document.

    @Salamander said:

    Again, anything you put in a configuration file must already be supported by the program that uses it.

    No, it is not entirely true - many programs are able to ignore unknown options (but you may say, that is part of understanding too)

    @Salamander said:

    Are you really that dumb that you cannot understand this, or do you expect a program to magically understand any bullshit you put in a configuration file?

    No, but I had many times seen, that configuration tools rejected some kinds of configuration (or just not offered), but program gladly accepted it and worked properly.

     

    (BTW: I am not native english speaker, it is my 4. human language I learned, so I apologize for any mistakes in spelling and grammar, as well as for sometimes bad choising of words. There are a lot of words, I do not know, how to say in english and even much more that I recognize, but I do not activelly use. My vocabulary is limited. )

     



  • @Salamander said:

    @flabdablet said:

    Reading system logs in Windows is slow, because Event Viewer sucks. Search them? Good luck with that, especially if the pattern you're searching for is complicated enough to need a regex to describe. Want to do a search and replace in the Registry because you're moving the root of the user profiles tree to a different drive? Good luck with that (hint: easiest way, using the tools supplied with the system, is to export the whole fucking Registry to a flat text file and do your search and replace with a text editor). Oh, I'm not supposed to touch the Registry because there's supposed to be a specialized GUI or some cunning COM API to do that specific task the Right Way instead? Good luck with tracking that down before lunch. And on and on and on.

    So the tools written for all that stuff happened to be rather shitty, therefore text-based configuration is superior?
    Does not follow.

     

    The point here is, that the graphical tools on Windows are shitty, or at leat too much limited.

    There is much larger range of tools for manipulating text and when the configuration/logs/events/whatever is text based, it can be managed by the (fast and powerfull) text manipulating tools.

    GUI tools are good for easy tasks. But if you have difficult task at hands and the author of GUI did not envisioned such task, then you have problem. With text data and text manipulating tools you have much large range of possible actions and you can solve much harder tasks with relative easiness.

     


Log in to reply