1. 6

    Very nice article with points I wish more people would consider — especially the “typeability” of commands.

    I will however defend cfdisk. It’s a replacement for fdisk in the subset of use cases where fdisk‘s advanced features aren’t needed. Similar programs, though admittedly not named for their UI toolkits, are htop referring to its predecessor top, and of course vim mirroring its vi legacy. These short commands tend to almost become words in their own right (e.g. fsck), and I believe this “incremental” naming scheme is helpful to users in conveying a general sense of the program’s scope and purpose (e.g. “oh so it’s fdisk with curses”).

    And hey, if a programmer is writing a new/different version of an existing tool but they’re struggling to name it in a clever or aesthetically pleasing way, both they and their users are probably better off with a name like cfdisk. The programmer gets to get on with things, and the users don’t have to get used to an outlandish or strange command name.

    1. 18

      most linux distributions on the desktop suck because instead of focusing on the strengths (composable tools which have a thight scope), they try to imitate windows and macos failing spectacularly, mostly replicating the weaknesses. i for one can’t name 50% of the things in an unbuntu which are doing magick in the background. if they break, the most sensible option is to just reinstall.

      1. 25

        Most people just want to browse the web, check their email, type a document, etc. What they don’t want to do is learn about all those composable tools or otherwise spend a whole lot of time figuring out details of how their system works, which is perfectly reasonable. Are there trade-offs? Sure; but this doesn’t “suck”, it’s just different people with different requirements, priorities, and usage patterns.

        1. 23

          (Edit: um, this turned out more ranty than I thought it would, so just to be clear – I absolutely agree with you here, and my rant below is pretty much orthogonal to yours your comment. Also, I don’t think imitating Windows or macOS is a problem – but I do think that this imitation effort is driven by, and anchored in, a bunch of arrogant misconceptions about “non-expert” usage habits. That’s why it ends up “mostly replicating the weaknesses”, as @rbn nicely put it: because it’s guided by a sort of caricature image of the “novice user”, and we end up with software whose “novice-friendly” features are exaggerated to unrealistic proportions, so they end up being difficult to use for everyone, including novice users).

          I hear this a lot and every time I hear it, I have the same thing to say: spend a few weeks watching the people who “just” want to browse the web, check their email, type a document, and you’ll find that these things are not at all the simple things that the FOSS UX community insists on believing they are for some reason. Lots of these people don’t, and can’t do them on Linux not because it’s too complicated, but because it lacks the functionality they need. (Ironically, in large part because lots of “novice-friendly” software is written by people who have never stopped to ask a novice what they need, and have this silly picture in mind of “Aunt Tilly” who just wants to resize a photo every once in a while and is confused by all those buttons).

          My informal experience with teachers and seniors (mom’s a teacher and, of course, has a lot of teachers friends, and I used to help a volunteer-backed organization for seniors) has cured me of this sort of programmer’s arrogance:

          • “Just type a document” can involve sifting through a collection of about 20,000 clip arts, pictures and cartoonish things, and about 4,000 Word documents, all of them covering four years of elementary school. Most file managers and desktops are comically inadequate for that (the default is “huge icon mode” and switching to a normal mode for all folders involves sifting through menus and configuration windows like crazy, “symbolic icons” are just anonymous blobs of black and white when they’re small, the file manager chokes trying to thumbnail these, etc.). It’s also kindda hard to do that with an “open file” dialog that lacks a thumbnail option. Also, populating the GTK “Open file” dialog with about 30 bookmarks (4 years of school x 5-6 really important subjects + a few folders for school-related paperwork) makes it painful to watch.
          • LibreOffice is in fact surprisingly adequate for this, until you need to print something.
          • Smooth/inertial scrolling with a mouse looks smooth for like 30 seconds and that’s great if you need to open one PDF every once in a blue moon. If you do it for more than five minutes it makes you dizzy. If your job consists primarily of browsing PDFs and DOC files, there’s a good chance you won’t make it through the day without throwing up. That’s why it’s not the default in most commercial PDF readers, and also why virtually all of them allow you to disable it at least.
          • Lots of senior people don’t exactly have an IT genius around to help them when something breaks. Their children and grandchildren are away and aren’t really keen on helping their aging parents or grandparents with their computers. “Just browsing the web” or “checking their email” isn’t too easy when, every six months, you discover that a feature has disappeared (‘cause “no one was using it”) or that it’s been re-designed so it’s “more usable”.
          • “Just checking their email” sometimes involves sending your friends pictures of your grandchildren, or sending your grandchildren a picture from a cruise or whatever. Back to sifting through a few thousand pictures! (Edit: thankfully, this is becoming less and less of a problem with cloud-stored pics – which is another can of worms in and of itself of course, but oh well. Thing is, sifting through thousands of pictures isn’t some power user task, not in 2020, when you can store a few thousands of ’em on a phone and people really do return with hundreds of them from each vacation).
          • All of that routinely happens on entry-level laptops. With large fonts, Breeze and Adwaita are impossible to use on 1366x768 displays. Lots of dialog windows simply don’t fit on the screen, and there’s often hardly any room left for application content. The huge widgets are supposed to help with accessibility but – not that it’s a surprise – if you have poor eyesight, it’s bigger fonts that help, not bigger buttons per se. (inb4 “but touch-enabled laptops are the future”: try buying one of those on a senior’s income, and then try using it when you’re 70 and just holding your arm up for five minutes is uncomfortable).

          Unsurprisingly, desktops developed for “most people” (e.g. Gnome) don’t fare much better than those that aren’t. In fact, Gnome’s most successful “incarnation” – Ubuntu’s – is a pretty significant departure from upstream’s focus on visual simplicity and straightforwardness. And the biggest trouble we’ve had with either of them isn’t in esoteric things like whether the icons are the right size or not, it’s been primarily in the fact that support for desktop icons is finicky, followed closely by poor contrast that makes window content hard to read (Windows 10 also does some dimming for inactive windows, but only in menu items – at least for “legacy” Win32 apps. For some reason, it’s now fashionable to dim everything you can because novice users don’t use more than one application at a time and easily lose their focus. Hah.).

          1. 9

            (Edit: um, this turned out more ranty than I thought it would, so just to be clear – I absolutely agree with you here, and my rant below is pretty much orthogonal to yours. Also, I don’t think imitating Windows or macOS is a problem – but I do think that this imitation effort is driven by, and anchored in, a bunch of arrogant misconceptions about “non-expert” usage habits. That’s why it ends up “mostly replicating the weaknesses”, as @rbn nicely put it: because it’s guided by a sort of caricature image of the “novice user”, and we end up with software whose “novice-friendly” features are exaggerated to unrealistic proportions, so they end up being difficult to use for everyone, including novice users).

            everyone “old” has used computers for much of their lives now, and they are the generation which may even have touched a dos shell. the problem is that current ux trends, regardless where, are constantly throwing away the experience of their users. this isn’t limited to “old” people. i’ve not used android for some years and am always lost for half a minute if i try to change some settings in it. with linux, this isn’t limited to gui applications, but for the complete system as everyone seems to love reinventing wheels, only in a slightly non-round fashion.

            1. 8

              It’s my impression as well. Technology is now pervasive enough that “non-expert” users actually do use computers a lot, not because they want to become experts or because they’re the members of the computer-using vanguard of their generation, but because, well, what else are you gonna use?

              The teachers at the school were my mother teachers have all been using computers to do all their school-related work for at least 15 years now. They all check every box in the “not an expert” list, from “will click Yes in every dialog box” to “has no idea what’s inside a computer”. But that doesn’t mean they only use basic word processor functions or have no more than twenty or thirty files lying around. They do – they’re required to do – every school-related thing on a computer now, and have twenty years’ worth of silly children’s songs, cartoons, arts & crafts crap and stuff lying around. Sometimes it’s neatly sorted in a bunch of folders under Documents, sometimes – as you might expect – in a bunch of folders on the desktop, because that’s where they’re most easily accessible.

              The same goes for pics. Between school trips, birthday celebrations and whatnot, my mom must have tens of thousands of pictures on her hard drive. Every time there’s one of these, all the children, and sometimes all the parents, send her all the pictures they took. Watching someone try to make sense out of all that using Eye of Gnome’s super-declutered interface (which displays only a row of thumbnails at the bottom of the screen) is almost painful.

              This isn’t some “power user” usage habit. This is 2020, when everyone has like 10,000 pictures on their phone and takes twenty selfies every time they go out. The idea that “simple users” have “rudimentary requirements” dates from back when computers really were something you used only when good ol’ pen and paper weren’t good enough, or when you were forced to. That doesn’t happen anymore.

              1. 4

                This is a big qualm I have with encouraging “non technical” users to switch to desktop Linux. Because the UI changes all the time, you have to throw away all the skills and conventions you learned for older versions. GNOME 2 was fine. Sure, GNOME 3 might have some improvements (I would actually argue that it does not, but that’s another debate), but now existing users don’t know their way around any more. As a non-GNOME user looking in, it seems like GNOME 3 has continued to frequently make significant changes to the UI/UX that would throw me off if I did use it.

                I think changing the UI out from under the user is very disrespectful of their time investment in the platform. If GNOME was marketed under the notion of “we’re just making what we want to use personally, and if you don’t like it bug off” I could buy the argument “but it’s a FOSS project, they can do what they want”. However, if you want to market your project as being friendly for “non technical users”, I think there is a certain expectation you will provide more in that area than just lip service.

                In my experience with “old” or “non technical” users, they are normally people who have to use computers as a means to the ends of getting their real work done. They are usually sick of UIs constantly changing much more than they ever were of some drawbacks in one UI or another. In my anecdotal experience, these people could care less if the icons are skeuomorphic or flat, or whether the menus slide in or fade in, or what the drop shadow radius is. They just want to be able to learn how to use it once and then get on with what they actually want to use the computer for without having to learn how to use it all over again.

                1. 2

                  MATE is still fine. It’s well-maintained and better than GNOME2 without being worse in any regard. It’s not breaking the UX between releases in any way either. It just works.

            2. 4

              Agreed, but does that ‘most people’ apply to ‘most people who use the Linux desktop’ or ‘most people who use desktop computers’? If we replace ‘Linux’ with ‘house’ or ‘car’ we’d be clearly talking about a mass-market consumer commodity which I am not sure Linux really is. Maybe it would be better to focus less on the mythical ‘normies’ and accept that desktop Linux is a niche created by and for it’s own niche users?

              That being said, I do think having Ubuntu for example as a go-to normie friendly distro is wonderful. Just seems few projects can do that effectively.

              1. 1

                This is very true. I was able to show my family how to install their linux box, because it’s a self explaining installer UI. Because the desktop after this “just works”*. No “but you have to know XY to start wifi/use the GPU/setup email/printer/bluetooth” or such bullshit.

                All the people who want that amount of customization can still go and use their i3 and be happy. Just pick bare metal in the installer and be done. You won’t notice anything different.

                *Yes I’m aware of the warts you can stumble upon, I’m using linux daily, just right now..

                1. 1

                  Most people just want to browse the web, check their email, type a document, etc. What they don’t want to do is learn about all those composable tools or otherwise spend a whole lot of time figuring out details of how their system works, which is perfectly reasonable.

                  which has worked the same for at least 15 years. i can still use claws-mail, browsers are all the same now, abiword still exists. all those programs used to run everywhere. this isn’t about the application programs but the decisions in plumbing. which then in turn makes applications more complicated and less portable than before.

                  for example, all i know is that somehow it is considered to be fine that systemctl directly asks my password if required. just typing my password into some program which thinks it needs root feels completely wrong, and i don’t even know how these things work. some polkit-dbus-magick? maybe?

                2. 2

                  I find that “modern” Linux distributions have a lot of the problems that I had with Windows in the mid 2000s.

                  1. -5

                    This is why I vehemently refuse to run derivative distributions.

                    There’s quite the difference between the likes of Gentoo, Arch or Debian, and their derivatives.

                    The derivatives are, majorly, made by typically technically inept conmen for their usage by laymen, which I’ll refer to as suckers thereon, in the spirit of the speech referenced at the top of this thread.

                    To attract as many suckers as possible, effort is put, besides doing a ton of marketing (If you’re Mike Rocketworth and got some equity, this is easier to do), into ensuring the interface appeals to the lowest common denominator.

                    Thus it has to be really dumb, to the point of insulting to intelligence, and unbearable to use by the technically inclined. This is deliberate, as we don’t make good suckers for this specific type of con. Good suckers are people who will remain blind to the fundamental problems, will install it everywhere, will promote it in social media, will help the person orchestrating all this behind the curtain.

                    At some point, the large and dumb user base will be leveraged for economic gain.

                    That’s how it’s always been, and I don’t see this changing anytime soon.

                    1. 10

                      I personally like a lot of what Ubuntu has done, particularly on their software projects.

                      I’d argue that recent releases have gotten quite accessible, to the point where I have given my tech-illiterate mother a desktop with Ubuntu on it and haven’t run into any issues I couldn’t help debug over the phone. It just so happens there’s a lot that goes into making a usable GUI that non-{sysadmins,developers,geeks} can effectively use, while still being completely usable as my main driver for work. I’ve been happily running Ubuntu for years, and while I’ve mostly switched to Arch for my new installs, I don’t feel like my intelligence is being insulted or threatened because every piece of my system isn’t controlled by text files.

                      1. 7

                        So what is your alternative? That everyone should become an expert? I find the amount of contempt towards non-technical/IT people in your post rather bewildering to be honest.

                        1. 1

                          So what is your alternative?

                          Not using nor recommending derivative distributions.

                          That everyone should become an expert?

                          Why would everyone have to become an expert?

                          I find the amount of contempt towards non-technical/IT people in your post rather bewildering to be honest.

                          There’s none of that. It might be a language thing. Maybe the word “suckers” did rub you the wrong way? Con victims are traditionally referred to as suckers.

                          As to being bewildered over some website discussion post, I recommend against. It is, generally speaking, not worth it.

                        2. 5

                          The derivatives are, majorly, made by typically technically inept conmen for their usage by laymen, which I’ll refer to as suckers thereon, in the spirit of the speech referenced at the top of this thread.

                          Let’s hypothetically say someone was more focused on curing a disease than figuring out how to use Linux. The time they saved on stuff like that gave them more time to find the cure. They save all kinds of lives, including yours. Your verdict: they’re suckers and dumb for curing disease with easy to use products vs not doing it to master harder-to-use products that they spent a ton of time customizing. Don’t seem right to me…

                          Also, this isn’t hypothetical: it’s a situation that plays out regularly in many non-OS things you depend on or enjoy in life. You’re likely depending on the very people you curse for what you enjoy in life.

                          1. 2

                            Let’s hypothetically say someone was more focused on curing a disease than figuring out how to use Linux. The time they saved on stuff like that gave them more time to find the cure. They save all kinds of lives, including yours. Your verdict: they’re suckers and dumb for curing disease with easy to use products vs not doing it to master harder-to-use products that they spent a ton of time customizing. Don’t seem right to me…

                            i’m not in the discussion club, but this feels like a bad argument, suddenly including “THEY ARE SAVING LIVES!!1” here. in any case: it is expected from professionals to know their tools OR to hire someone who does.

                            Also, this isn’t hypothetical: it’s a situation that plays out regularly in many non-OS things you depend on or enjoy in life. You’re likely depending on the very people you curse for what you enjoy in life.

                            still it is valid to have criticism of things.

                            1. 1

                              It’s a technique I use when someone uses an argument that says everyone or everything is or isn’t such and such. From there, I pick the counterexample that most justifies not having that position. Both EMTs and hospital workers have griped to me about how their tech UI’s, among otherthings, cause them problems. So, I went right with that example.

                              Normally Id consider it cheap since person using it often going for rhetoric. In my case, a large subset of people in the original claim do fight with tech to save lives. I’ll leave that for your consideration.

                              1. 1

                                medical appliances are a whole different beast. i hope that they aren’t running desktop linux, but something without touchscreen but good hardware buttons :)

                                1. 1

                                  Well, I was including desktops and appliances. That said, you might find this interesting or worrying.

                                  The FDA part is half BS. The vendors of safe/secure RTOS’s, like INTEGRITY-178B and LynxOS-178B, have had offerings for this a long time. At least one straight-up advertised a medical platform. The suppliers appear to just be using insecure tech deliberately to soakup more profit.

                            2. 1

                              Your verdict: they’re suckers

                              For falling for a con. It literally is the name used for a con victim in the conmen world.

                              the large and dumb user base

                              I realize this is where most of the negative impressions my post got are likely coming from. I should be more careful with language. Dumb there meant “relatively technically illiterate”, and I should have used this full form.

                              You’re likely depending on the very people you curse

                              No cursing going on. I do not hate the victims.

                              At the end, I mostly take issue with:

                              • The conmen, due to their intentions.
                              • The shills, which cooperate with the conmen. Typically community influencers who happen to be acquaintances with the conmen, and vouch for them on request despite personal lack of belief on these projects.

                              I try not to be a shill, and not to promote projects I do not believe on. I often qualify my recommendations; This is why I do it. Experience has made me skeptic and somewhat cynical.

                              1. 2

                                By cursing, I meant talking down about them unnecessarily. The word is overloaded in my country. I apologize for any confusion.

                                Re conmen. I have two replies on this. One category refutes it due to them simply being forced to use it at school and work. To get benefits of those, they must use the tech regardless of their belief in it. The tech also still brings those benefits even if unworthy.

                                The second reminds me of when a founder of high-assurance security, Dr.Roger Schell, met Black Forrest Group of CIOs/execs to convince them to buy software. Many folks that think they’re dumb at tech (I did). They said they’d love to buy software at higher assurance but wouldnt be allowed to. Pressing them, they said they believed software developers all left bugs in on purpose to later sell them the fixes mixed with more buggy features. With features they needed, they’d never be able to buy it high quality anyway.

                                The same is true today. Users want to get something done. Microsoft’s monopoly position made about all the apps, hardware, etc work with Windows. They were also probably brought up on it. So, the option that gets them the most benefit at the lowest cost… money plus effort (more important)… is Windows. For a while, it had less surprises than alternatives, too.

                                So, there’s no con or at least most know it’s garbage. It’s simple economics and psychology. They benefit more by using it than not using it. There’s benefits to things like shell and programming if they invest the time. They can’t see it or have no need where they’re at.

                                What we can do is show them by building better tools that help them and integrate with their workflow. When they’re amazed, get them interested in the how. It’s what Ive been doing at work.

                            3. 4

                              What the hell makes you think people will care for your technical opinions if you call people “technically inept conmen” and “suckers” for having a hobby? Ease off on the condescension.

                              1. 1

                                I covered the choices for language in this reply.

                                The overall tone of my comment is a reflection of my hate of seeing people people being taken advantage of, salted with me being too tired to comment properly.

                              2. 3

                                i’m not convinced that every derivative distribution is a conjob, but some trends in linux sometimes sure have the feeling of one (booting in less seconds!11).

                                an example from my experience: while i prefer window managers, kde is working better/saner when packaged by a single person for slackware than with kubuntu.

                                1. 1

                                  i’m not convinced that every derivative distribution is a conjob

                                  Beware the claim was qualified with “majorly”. I know you’re not going for a strawman, but I feel necessary to prevent an accidental one.

                                  kde is working better/saner when packaged by a single person for slackware than with kubuntu.

                                  I am not surprised; Distributions with “flavors” for DEs are a strong marker for poor design decisions in the packaging preventing adequate support for multiple DEs.

                                  1. 2

                                    Beware the claim was qualified with “majorly”. I know you’re not going for a strawman, but I feel necessary to prevent an accidental one.

                                    sorry, didn’t quite read that majorly in your first post. it was kind of late :)

                            1. 9

                              How the hell is that a headache to zip a git checkout? Also what does the entry level blurb have to do with git bundle? If you can’t get it to work it’s probably the code’s fault and not that it wasn’t properly zipped? I don’t understand any of the premise or the problem. Thanks for the hint to git bundle though.

                              1. 2

                                Note that a simple archive of the entire repository will include site-local data (perhaps even sensitive data like access credentials for databases or API endpoints) that is otherwise excluded from the repository by gitignore rules. If I frequently had to create repository archives, I would probably grow annoyed with cleaning up those files before archiving, or I might forget to do so on occasion. git bundle exists for this exact use case, which is distinct from simply archiving your work tree that happens to have a git repository in it.

                                1. 1

                                  Not to mention that the zip file could include hook scripts, which might be a security risk.

                                  1. 1

                                    I have nothing against the use of git bundle and I’m happy I now know it exists, my criticism was mostly aimed at the perceived motivation of the blog post :)

                                  2. 0

                                    Also, bundle gives you smaller files than simply creating a zip file or a tarball, without the need for an additional tool for extraction, and it’s very easy to screw up the creation/extraction of archives such that you end up with a whole bunch of crap in your current working directory rather than the subdirectory that you expect it to be extracted to.

                                    The scenario is a bit contrived, but the problems it solves are not.

                                    1. 1

                                      I’m not disagreeing here, theres a reason I inspect every zip file AND always make a new dir and unzip it in there, on principle.

                                      But I’m not really sure if the overlap of “people who create a mess with zip files” and “people who would know about git bundle” is meaninful.

                                      1. -1

                                        I would imagine that the set of people who realise git bundle exists in the first place is very small, but has now grown a bit. git bundle is a superior solution to using archives for this kind of thing, in spite of its command line interface being leaky.

                                        Also, when a tool makes it really easy to shoot yourself in the foot, I blame the tool, not the user. It’s far too easy to accidentally create a zip file that will bite the person extracting it, and similarly easy to forget to check on the receiving side.

                                    1. 4

                                      The Tao Of Backup comes to mind:

                                      The novice asked the backup master which files he should backup. The master said: “Even as a shepherd watches over all the sheep in his flock, and the lioness watches over all her cubs, so must you backup every file in your care, no matter how lowly. For even the smallest file can take days to recreate.”

                                      The novice said: “I will save my working files, but not my system and application files, as they can be always be reinstalled from their distribution disks.”

                                      The master made no reply.

                                      The next day, the novice’s disk crashed. Three days later, the novice was still reinstalling software.

                                      I’ve burned myself a few times making assumptions about what parts of my filesystem I really need backups of. In the end, simply backing up almost everything has left me with considerable peace of mind. I still exclude some things from my backups (think /var/cache, /home/*/.cache and the like), but between blacklisting and whitelisting, the former seems preferable for backups. I’d rather have a few gigabytes of extraneous data in my backups than lose even a kilobyte of important data.

                                      1. 10

                                        I’m not touching an operating system without even an attempt at package signing with a ten-foot pole, “simplicity” be damned.

                                        1. 1

                                          But it’s a source-based distro; you build the packages.

                                          1. 2

                                            I don’t build them from thin air, though; I build them from package sources provided by the distribution. I can’t verify the integrity of those sources any other way than downloading them from GitHub and assuming they’re intact. Gentoo is source-based as well, but ebuilds still come with manifests containing checksums ultimately signed with PGP. Trusting the master repository is not a sufficient security model on its own. I probably don’t have to remind you that even GitHub can be compromised, and in fact, has been in the past.

                                            And yes, of course I could verify the integrity of my package sources by reviewing them before building, but honestly, if I have to review the package build files that come straight from my upstream distro maintainers for security breaches, I’m really left scratching my head over why I’m using the distro in the first place.

                                            1. 1

                                              Signature verification has now been integrated into the package manager! https://github.com/kisslinux/kiss/issues/60#issuecomment-538341425

                                              1. 1

                                                The author agreed and is now signing all commits from now. The integration of signature verifying to the package manager is tracked here; he’s deemed GnuPG 1.4 simple enough to include in the base system if the issues mentioned are resolved.

                                                1. 1

                                                  Well, the distro isn’t for everyone. But you do have a point; commits could be signed without impacting the simplicity of the base system, then you could at least optionally set up your system to verify it. I’ve brought it up with the author.

                                            1. 9

                                              […], and systemd is pretty much an attempt at a takeover of Linux by big corporations.

                                              Does anybody have the heart to show this person the commit log of a recent Linux release? They might have to install a BSD afterwards…

                                              1. 1

                                                They might have to install a BSD afterwards…

                                                I’m pretty sure the BSDs enjoy a similar level of corporate contribution, FreeBSD especially, receiving mountains of code and cash from the likes of Netflix and Apple.

                                              1. 3

                                                What a satisfying combination of username and submission title.

                                                1. 10

                                                  Note that Ctrl+Shift+V has nothing to do with Vim; it only happens to be the default paste shortcut in some popular terminal emulators. Vim’s paste option would have been worth mentioning here too.

                                                  I agree with Vaelatern’s comment. The title had me expecting things I “Didn’t Know”. In my view, “5 Common Beginner Tasks in Vim” would’ve made for a more honest title.

                                                  1. 4

                                                    That seems a bit silly compared to simply generating fixtures at test runtime.

                                                    1. 5

                                                      I’m rather glad they don’t exist. How horrifying.

                                                      1. 19

                                                        Mentioning the low LOC while using third-party libraries seems like cheating somehow. :P

                                                        1. 11

                                                          Nah. That’s penalizing the author for having the strength of character to not succumb to NIH syndrome.

                                                          1. 2

                                                            What about packaging all of the app in another library, and keeping a single line in the main repo. Does that count as a single LOC?

                                                            1. 14

                                                              I mean, there are myriad ways to play golf, but I personally feel that in this case “89 LOC” is just a way of saying “A really small amount of code for what it does”.

                                                              You can take potshots for the inclusion of an actual numeric count, and that’s fine, but the substance of the title is something I personally appreciate.

                                                              1. 5

                                                                Agreed, you make a good point.

                                                                I had to look at the “business card” ray tracer again; while having a low LOC, it includes some libraries and uses one letter variables. This submission’s notion of LOC is more production-code-like, which is somewhat more telling.

                                                          2. 11
                                                            require 'date'
                                                            require 'fileutils'
                                                            require 'kramdown'
                                                            require 'mustache'
                                                            require 'yaml'
                                                            

                                                            I don’t think this is cheating. Would anybody expect a static site generator to provide its own implementation of Markdown, Mustache and YAML?

                                                          1. 4

                                                            I’m still somewhat incredulous that Homebrew has yet to include an officially blessed way of removing unused dependencies. MacPorts provides the optional port_cutleaves utility, at least.

                                                            1. 7

                                                              I pray for hardware accelerated video decoding on Linux with every major release, but oh well… CSS-enabled scroll bars are a nice early christmas present too.

                                                              1. 0

                                                                I can’t say nothing more than ditto.

                                                              1. 3

                                                                Is there a performance advantage over just relying on a terminal multiplexer to do scrollback?

                                                                1. 3

                                                                  Yes. Whether you care as the user is a different matter.

                                                                  1. 1

                                                                    this is fascinating. as someone who came up doing scrollback via screen over dial-up, those numbers are as great a generational observation as a technical one!

                                                                1. 2

                                                                  I think Ruby does this a little better, with the so-called “squiggly heredoc” added in 2.3:

                                                                  puts <<~HEREDOC
                                                                    Because the boss knows
                                                                    that what the boss says goes
                                                                    if the boss's suffered losses
                                                                    then that's what the boss chose!
                                                                  HEREDOC
                                                                  

                                                                  Relevant documentation.

                                                                  1. 3

                                                                    Nice to know about – I’ve got a few python scripts that’ll help clean up a bit.

                                                                    (Note also the <<- here-doc variant, which is similarly convenient when writing shell scripts.)

                                                                    1. 3

                                                                      Here docs/strings are awesome.

                                                                      Another use case I like (beyond ascii art) is embedding test text file contents in a string along with the test itself. When you come back to it later, instead of the indirection of looking up the contents of an external file and cluttering up the file system, you have it right there with the test.

                                                                      1. 5

                                                                        Perl has __DATA__, which is places at the end of the code in the file, and everything which comes after you can read with the DATA filehandle (I don’t know where Larry stole this idea from).

                                                                        So a file looks like:

                                                                        #!/usr/bin/env perl
                                                                        
                                                                        print "here be dragons!\n"
                                                                        __DATA__
                                                                        {
                                                                           "id": 42
                                                                        }
                                                                        

                                                                        and you can read that last bit by passing a filehandle along. Pretty nice to embed simple stuff in test files, for example.

                                                                      2. 1

                                                                        Note that the <<- heredoc form only works on text indented with tabs, other kinds of white space will be ignored.

                                                                      1. 2

                                                                        I feel like the title ought to say “Web Development” instead of “Web Design”. The article is only tangentially about web design.

                                                                        1. 2

                                                                          It depends on ones understanding of “Web Design”. If it means “Graphic Design” for the Web, then yes, the article has not much obvious relevance.

                                                                          But if “Design” means making decisions wrt. the product one is building (for the Web), like suggested in the quote:

                                                                          […] consider designing your interface such that it’s easier to use by someone who only has use of one arm.

                                                                          Then “Web Design” means more than looks: the impact of all decisions on the user experience. That includes conceptual, graphic, and technological considerations. As such I found the article to be a nice compilation of the problems we cannot control, where things like SSL, DNS etc. are just the things which are most obviously broken when they do not work.

                                                                          1. 2

                                                                            This may actually be a cultural difference. I’m from Germany. Most—if not all—people I’ve worked with understand “web design” to mean the graphical design aspect; I also think this understanding of the phrase makes more sense, though of course, that may be bias on my part. Perhaps there’s a case to be made for a distinct term to encompass the design of user experiences, something like “UX design”.

                                                                          1. 3

                                                                            I guess the target audience is less in people who are free to choose their means of communication but more in people who are forced to use Slack if the wan’t to keep their current job. Like so many proprietary products before, Slacks secret of success not so much in its technical merits as in its marketing department.