Most active commenters

    ←back to thread

    917 points cryptophreak | 49 comments | | HN request time: 0.002s | source | bottom
    1. andreldm ◴[] No.45761642[source]
    If handbrake scares them, don’t you dare to demonstrate how to use ffmpeg. I remember when I used handbrake for the first time and thought “wow, it’s much more convenient than struggling with ffmpeg”.
    replies(7): >>45761715 #>>45761913 #>>45761996 #>>45762179 #>>45762626 #>>45762929 #>>45764672 #
    2. phoronixrly ◴[] No.45761715[source]
    Handbrake's UI is in the uncanny valley for me -- too complicated for use by laymen, and way too limiting for use by people who know what they're doing...
    replies(2): >>45761770 #>>45761778 #
    3. dfxm12 ◴[] No.45761770[source]
    My dad, a total layman, was able to use handbrake as a step in digitizing old family video tapes.

    I think in the context of this thread, we shouldn't overgeneralize or underestimate "normal people".

    replies(2): >>45761850 #>>45764910 #
    4. fellowniusmonk ◴[] No.45761778[source]
    ffmpeg with disposable or llm backed dnd interfaces.

    for certain types of tooling UIs should be cheap, disposable and task/worlflow specific.

    replies(2): >>45761937 #>>45762131 #
    5. sharperguy ◴[] No.45761850{3}[source]
    A "normal person" is just someone whose time and mental energy are focused on something other than the niche task your app is aiming to solve. With enough time and focus, anyone can figure out any interface. But for many, something which requires a smaller investment to achieve the results they need is preferrable.
    replies(1): >>45762425 #
    6. whimsicalism ◴[] No.45761913[source]
    imo LLMs make all of these UIs unnecessary, i'm happy to use ffmpeg now
    7. throwaway173738 ◴[] No.45761937{3}[source]
    Actually I think this is a killer use case for local LLMs. We could finally get back to asking the computer to do something without having to learn how to string 14 different commands together to do it.
    replies(1): >>45762306 #
    8. MarkusWandel ◴[] No.45761996[source]
    At least with ffmpeg, for 99% of use cases you can just google "how do I do X with ffmpeg" and get a copypasta command line.

    Whereas with complicated GUI tools, you have to watch a video to learn how to do it.

    replies(4): >>45762099 #>>45762129 #>>45762226 #>>45762333 #
    9. nicce ◴[] No.45762099[source]
    One of the things LLM shines. For double checking the command explanations, I ask commands to grep the sections from manual instead of relying LLM output blindly.
    10. xnx ◴[] No.45762129[source]
    Excellent point. Soon computer use AI agents will bridge this gap.
    11. jraph ◴[] No.45762131{3}[source]
    The last thing we want for a user-friendly interface is nondeterminism. Some procedure that works today must work tomorrow if it looks like you can repeat it. LLMs can't be the answer to this. And if you go to the lengths of making the llm deterministic, with tests and all, you might as well code the thing once and for all and not ship the local llm to the end user at all.
    replies(1): >>45762542 #
    12. pxc ◴[] No.45762179[source]
    Yes. It's been a few years since I regularly used Handbrake, but I remember thinking of it as very simple, especially with its presets-based workflow. I was used to stuff like various CLI tools, mkvmerge and its GUI, and avidemux at that time.

    It struck me as a weird example in the OP because I don't really think of Handbrake as a power user tool.

    13. left-struck ◴[] No.45762226[source]
    I think GUI tools lend themselves more to being able to discover functionality intuitively without needing to look anything up or read a manual, and especially so if you’re coming back to a task you haven’t done in a while. With CLI I constantly have to google or ask an LLM about commands I’ve done many times, whereas with a gui if I do it once I can more easily find my way the next time. Anyway both have their place
    replies(1): >>45762475 #
    14. multjoy ◴[] No.45762306{4}[source]
    I’ve been computer touching since the mid eighties.

    Exactly what golden era of computing are you harking back to, and what are you doing that requires 14 different commands?

    replies(1): >>45779143 #
    15. xnorswap ◴[] No.45762333[source]
    We're going full-circle, because LLMs are amazing for producing just the right incantation of arcane command-line tools. I was struggling to decrypt a file the other day and it whipped me up exactly the right openssl command to get it done.

    From which I was able to then say, "Can I have the equivalent source code" and it did that too, from which I was able to spot my mistake in my original attempt. ( The KDF was using md5 not sha ).

    I'm willing to bet that LLMs are also just as good at coming up with the right ffmpeg or imagemagick commands with just a vague notion of what is wanted.

    Like, can we vignette the video and then add a green alien to the top corner? Sure we can (NB: I've not actually verified the result here) : https://claude.ai/share/5a63c01d-1ba9-458d-bb9d-b722367aea13

    replies(1): >>45763167 #
    16. SoftTalker ◴[] No.45762425{4}[source]
    Also, even the most arcane and convoluted interfaces become usable with repetition. Normal people learn the most bureaucratic business workflows and fly through them if that is their job. Then if you dare to "improve" any aspect of it you will hear them complain that you "broke" their system.
    replies(1): >>45772672 #
    17. thaumasiotes ◴[] No.45762475{3}[source]
    > I think GUI tools lend themselves more to being able to discover functionality intuitively without needing to look anything up or read a manual

    Well, there are different issues.

    Reading a manual is the best you can do, theoretically. But Linux CLI tools have terrible manuals.

    I read over the ssh man page multiple times looking for functionality that was available. But the man page failed to make that clear. I had to learn about it from random tutorials instead.

    I've been reading lvm documentation recently and it shows some bizarre patterns. Stuff like "for more on this see [related man page]", where [related man page] doesn't have any "more on this". Or, here's what happens if you try to get CLI help:

    1. You say `pvs --help`, and get a summary of what flags you can provide to the tool. The big one is -o, documented as `[ -o|--options String ]`. The String defines the information you want. All you have to do is provide the right "options" and you're good. What are they? Well, the --help output ends with this: "Use --longhelp to show all options and advanced commands."

    2. Invoke --longhelp and you get nothing about options or advanced commands, although you do get some documentation about the syntax of referring to volumes.

    3. Check the man page, and the options aren't there either. Buried inside the documentation for -o is the following sentence: "Use -o help to view the list of all available fields."

    4. Back to the command line. `pvs -o help` actually will provide the relevant documentation.

    Reading a manual would be fine... if it actually contained the information it was supposed to, arranged in some kind of logically-organized structure. Instead, information on any given topic is spread out across several different types of documentation, with broken cross-references and suggestions that you should try doing the wrong thing.

    I'm picking on man pages here, but actually Microsoft's official documentation for their various .NET stuff has the same problem at least as badly.

    replies(1): >>45767950 #
    18. fellowniusmonk ◴[] No.45762542{4}[source]
    Sorry, I see how my post lacked sufficient clarity.

    The idea behind a cheap UI is not constant change, but that you have a shared engine and "app" per activity.

    The particular workflow/ui doesn't need to ever change, it's more of a app/brand per activity for non-power users.

    This is similar to how some apps historically (very roughly lotus notes springs to mind) are a single app but have an email interface/icon to click, or contacts, or calendar, all one underlying app but different ui entry points.

    19. soraminazuki ◴[] No.45762626[source]
    If you only care about converting media without tweaking anything, ffmpeg offers the simplest UI ever.

        ffmpeg -i input.avi output.mp4
    replies(3): >>45762850 #>>45766399 #>>45769237 #
    20. a_shovel ◴[] No.45762850[source]
    Proposing a CLI command as a candidate for "simplest UI ever" is a great gag.
    replies(1): >>45763048 #
    21. bobbylarrybobby ◴[] No.45762929[source]
    I actually think ffmpeg’s UI is simpler than Handbrake for those at all acquainted with the command line (i.e., for those who understand the concept of text-is-everything-everything-is-text). Handbrake shows you everything you can possibly fiddle with whether or not you plan on fiddling with it. Meanwhile ffmpeg hides everything, period, and you ask for specific features by typing them out. It's not great for discovery but once you get the hang of it, it is incredibly precise. One could imagine taking someone for whom Handbrake was too much and showing them “look, you just type `ffmpeg -i`, the input file, and the output file, and it does what you want”. I imagine for many people this would be a perfectly lovely interface.
    replies(2): >>45764112 #>>45771576 #
    22. ekjhgkejhgk ◴[] No.45763048{3}[source]
    Come on. "type ffmpeg, then hyphen i then the input filename then the output filename". I would've understood this when I was 8. Because I was super smart? No, because I was making a genuine effort.
    replies(5): >>45763358 #>>45764401 #>>45765442 #>>45767638 #>>45770301 #
    23. 8note ◴[] No.45763167{3}[source]
    > I'm willing to bet that LLMs are also just as good at coming up with the right ffmpeg or imagemagick commands with just a vague notion of what is wanted.

    they are. ive only used ffmpeg via llm, and its easy to get the LLM to make the right incantation as part of a multi-step workflow.

    my own lack of understanding of video formats is still a problem, but getting ffmeg to do the right thing only takes a vague notion

    24. pwg ◴[] No.45763358{4}[source]
    The portion you've overlooked is there is an entire population of users out there who have never seen, nor used, a command line, and telling them to "just type this out" ignores all the background command line knowledge necessary to successfully "just type this out":

    1) They have to know how to get to a command line somewhere/how (most of this group of users would be stymied right here and get no further along);

    2) They now have to change the current directory of their CLI that they did get open to the location in their filesystem where the video is actually stored (for the tiny sliver who get past #1 above, this will stymie most of them, as they have no idea exactly where on disk their "Downloads" [or other meta-directory item] is actually located);

    3) For the very few who actually get to this step, unless they already have ffmpeg installed on their PATH, they will get a command not found error after typing the command, ending their progress unless they now go and install ffmpeg;

    4) For the very very few who would make it here, almost all of them will now have to accurately type out every character in "a-really_big_filename with spaces .mov", as they will not know anything about filename completion to let the shell do this for them. And if the filename does have spaces, and many will, they now need to somehow know 4a) that they have to escape the spaces and 4b) how to go about escaping the spaces, or they will instead get some ffmpeg error (hopefully just 'file not found', but with the extra parameters that unescaped spaces will create, it might just be a variant of "unknown option switch" error instead).

    replies(6): >>45763837 #>>45764041 #>>45764529 #>>45764921 #>>45765189 #>>45766623 #
    25. tester457 ◴[] No.45763837{5}[source]
    How are we so blind to these beginner hurdles?

    Few people are able to see through the eyes of a beginner, when they are a master.

    The 4th one is a pain to teach. Every other file and directory has spaces... so I encourage liberal use of the TAB key for beginners.

    26. hydrogen7800 ◴[] No.45764041{5}[source]
    This describes me somewhat. I use FEA software and only recently started using it to execute jobs in CLI. I still trip over changing directories. Fortunately notepad++ has an option to open CLI with the filepath of the currently open file. I also didn't know right-click is paste in CLI. Don't use ctrl+c accidentally. But ctrl+v does work in powershell (sometimes?). "Error, command not found" is puzzling to me. Where does the software need to live relative to the directory I am using? This is all still very foreign to me, and working in CLI feels like flipping light switches in a dark room.
    replies(1): >>45764414 #
    27. zahlman ◴[] No.45764112[source]
    FFMpeg's command line is practically a programming language.

    Someone who only wants to convert from one format to another, and isn't accustomed to CLIs, is far better served by "drag the file here -> type an output filename and extension in the text box".

    The problem (and the reason both FFMpeg and Handbrake exist) is that tons of people "only" want to do two or three specific tasks, all in the same general wheelhouse, but with terrible overlap.

    28. LambdaComplex ◴[] No.45764401{4}[source]
    To grab a random part of an ffmpeg command in my history: "-q:a 0 -map a"

    Sorry, that's pretty damn indecipherable.

    replies(1): >>45765014 #
    29. ThatFave ◴[] No.45764414{6}[source]
    To answer your last question, on your operating system there is something called “PATH”. It is a user- or systemwide variable that dictates where to look for programs. It basically is a list of directories, often separated by “:” Further reading: https://www.java.com/en/download/help/path.html (this may have Java references but still applies)
    replies(1): >>45764980 #
    30. diabeetusman ◴[] No.45764529{5}[source]
    To add on to this, there's no standardized way of indicating what needs to be typed out and what needs to be replaced. `foo --bar <replace me>` might be a good example command in a README, but I had to help someone the other day when they ran `foo --bar <test.txt>`, not realizing they should have replaced the < and > as well as just the text.
    31. threetonesun ◴[] No.45764672[source]
    Using ffmpeg to convert one file to another remains probably my main use of general LLM web searches. This isn't to say it does a good job with that, but it's still ahead of me.
    replies(1): >>45766872 #
    32. phoronixrly ◴[] No.45764910{3}[source]
    Was he able to use it correctly though to be able to digitize video with exacltly the correct setttings so that no notable loss of quality was introduced? How long did it take him to randomly test settings?
    33. 1718627440 ◴[] No.45764921{5}[source]
    They are using text inputs, where you press enter to send stuff daily. Most of the hurdle is just overcoming the preconception that at black in put window means hard mode.

    They can right-click in the folder view of their OS file viewer. On Windows they can also just type the command into the path bar.

    When you tell them the command, you could also just install it. Also you could just tell them to type the name of the app 'ffmpeg' into the OS store and press install. They do this on their phone all the time.

    34. jcranmer ◴[] No.45764980{7}[source]
    The GP here appears to be on Windows, given their reference to PowerShell. And on Windows, the path separator is ";", not ":".

    One of the things I've noticed is that people trying to help the true beginners vastly overestimate their skill level, and when you get a couple of people all trying to help, each of them is making a completely different set of suggestions which doesn't end up helpful at all. Recently, I was helping somebody who was struggling with trying to compile and link against a C++ library on Windows, and the second person to suggest something went full-bore down the "just install and use a Linux VM cause I don't have time to help you do anything on Windows."

    35. Dylan16807 ◴[] No.45765014{5}[source]
    Yes, your example that completely ignores the premise is pretty damn indecipherable.

    "If you only care about converting media without tweaking anything"

    36. soraminazuki ◴[] No.45765189{5}[source]
    The reality is that we've been infantilizing users for far too long. The belief that people can't handle fundamental concepts is misguided and primarily serves to benefit abusive tech companies.

    Two decades ago, users understood what "C:\Documents and Settings\username\My Documents" meant and navigated those paths easily. Yet, we decided they were too "stupid" to deal with files and file paths, hiding them away. This conveniently locked users into proprietary platforms. Your point #2 reflects a lie we've collectively accepted as reality. Sadly, too many people now can’t even imagine that a straightforward way to exchange data among different software once existed, but that's a situation we're deliberately perpetuating.

    This needs to change. Users deserve the opportunity to learn and engage with their tools rather than being treated as incapable. It’s time we started empowering users for a change.

    37. ◴[] No.45765442{4}[source]
    38. virgil_disgr4ce ◴[] No.45766399[source]
    This is an interesting position because that's only simple if you already know it. From the perspective of discoverability, it's literally the worst possible UI, because a string of that length has, say, 30^30 possible combinations, among which only one will produce the desired effect, and a bash prompt gives you no indication of how to arrive at that string.
    39. array_key_first ◴[] No.45766623{5}[source]
    Well, you're cheating a bit here. You're basically assuming the user has never seen a text prompt before. Which is a good assumption.

    But, if we assume the user has never seen a graphical application before, then likely all GUI tools will be useless too. What is clicking? What does this X do? What's a desktop again? I don't understand, why do I need 1 million pixels to change an mp3 to an avi? What does that window looking thing in the corner do? Oh no, I pressed the little rectangle at the top right and now it's gone, it disappeared. No not the one with the X, I think it was the other one.

    Pretty much all computer use secretly relied on hundreds if not thousands of completely arbitrary decisions and functionality you just have to know. Of all of that, CLI tools rely on some of the least amount of assumptions by their nature - they're low fidelity, forced to be simple.

    replies(1): >>45769997 #
    40. moffkalast ◴[] No.45766872[source]
    Just like with regexes I've yet to get a wrong result by doing "give me an ffmpeg command that does this and this" with an LLM, with Handbrake I'm never quite sure what I'm doing, too many checkboxes and dropdowns with default values already filled in.
    41. asielen ◴[] No.45767638{4}[source]
    It is easy but annoying. I nearly always find it easier to write a short script and run that rather than type terminal commands directly.
    42. Ezhik ◴[] No.45767950{4}[source]
    It's so frustrating that most man pages explicitly go out of their way to avoid having examples or answering "how do I X" questions.
    43. jdthedisciple ◴[] No.45769237[source]
    first u gotta tell them how to install ffmpeg... scary stuff
    44. yallpendantools ◴[] No.45769997{6}[source]
    The difference is a lot of "computer education" (as opposed to computing education most in this forum have) has happened with GUIs. "Simple" CLI tools doesn't mean they're understandable or even user-friendly.

    Heck, even computing education (and the profession even!) has been propped up by GUIs. After my first year in CS, there were like only three to five of us in a section of forty to fifty who could compile Java from the command line, who would dare edit PATH variables. I'm pretty sure that number didn't improve by much when we graduated. A lot of professionals wouldn't touch a CLI either. I'm not saying they are bad programmers but fact of the matter is there are competent professional programmers who pretty much just expect a working machine handed to them by IT and then expect DevOps to fix Jenkins when it's borked out.

    Remember: HN isn't all programmers. There are more out there.

    > But, if we assume the user has never seen a graphical application before, then likely all GUI tools will be useless too.

    We don't even need to assume, we just need to look at history. GUIs came with a huge amount of educational campaigning behind it, be it corporate (i.e., ads/training programs that teach users how to use their products) or even government campaigns (i.e., computer literacy classes, computer curriculum integrated at school). That's of course followed by man-years upon man-years of usability studies and the bigger vendors keeping consistent GUI metaphors across their products.

    Before all of this, users did ask the questions that you enumerated and certain demographics still do to this day.

    > Of all of that, CLI tools rely on some of the least amount of assumptions by their nature - they're low fidelity, forced to be simple.

    "Everything should be made simple, but not simpler." Has it occurred to you that maybe CLI tools assume too little?

    replies(1): >>45776442 #
    45. ThrowawayTestr ◴[] No.45770301{4}[source]
    Type what into where?
    46. gwbas1c ◴[] No.45771576[source]
    It's funny: "in my head," Handbrake and ffmpeg are two different tools, with very different purposes. Even though they "do the same thing," the context when I use one over the other is very different.

    Handbrake is easier in that I don't have to think too hard about how to use it; but that I think a lot more critically about the options that I choose.

    FFmpeg is easier when I go in knowing the exact options I want; often pulled from notes that I've stored away, or combined with scripts.

    47. sharperguy ◴[] No.45772672{5}[source]
    Well yes you force them to find other workarounds because their current workaround are no longer relevant. Because no system will ever fit everyones usecase.
    48. array_key_first ◴[] No.45776442{7}[source]
    I agree with pretty much all of this, I think where the divergence is what to do about it. IMO, tool wise, nothing - this is an education issue.

    And onto your point about CLI tools often making too little assumptions: this is 100% true, and also a superpower. There's a reason that a tool like ffmpeg can spawn 1000 GUI programs from it, each with their own draws. It's a generic tool, not necessarily an application. Many CLI programs are like this.

    That can raise the complexity but it's a tradeoff. Many GUIs are too "happy path" centralized, and that happy path is different for different people, so they become cumbersome and unintuitive in too many use cases. A great example would be just about everything Microsoft makes.

    49. throwaway173738 ◴[] No.45779143{5}[source]
    Linux shells, and that was an exaggeration. The shell is about as general purpose as it gets, but it’s hard to know a priori how to do a certain use case. But if you can explain it in plain language the LLM can do that for you. And at that point maybe you don’t need a gui except to present and manipulate visual output of the shell.