1. -1

    For all their talk about low-tech, for them it’s obviously just an aesthetic, not something they practice.

    This is a low-tech website. It doesn’t need CSS or images or any of the other stuff this site is built on, and it conveys information much better than this site does.

    1. 9

      CSS isn’t exactly high-tech though. The linked site isn’t all talk, either.

      1. 8

        The stylesheet is 3kb and you don’t have to use it. Why care about css that minimalistic when the page loads several images, with the header image being 2,900% the size of the stylesheet? Weird priorities.

        1. 1

          Images can be used to convey information. CSS is just frippery, at least as that site uses it.

          1. 2

            Contextualization is information and CSS contextualizes. Anyways, it’s absurd to liken CSS to the great founding member of famous rock band King Crimson when I doubt he has to spend time doing web design. Jokes aside, the page works completely fine without the miniscule stylesheet, and it’s really not that hard to turn it off. I can show you if you like.

            1. 0

              When you stop joking around I’ll take you seriously. So far, nothing you say is worth very much.

              Also, using the downvote mechanism to disagree discredits your arguments.

              1. 1

                Also, using the downvote mechanism to disagree discredits your arguments.

                I didn’t downvote your post, don’t be so full of yourself, and lighten up :) we’re talking about stylesheets, not taxes. It’s not that serious of a topic.

        2. 1

          This seems like the spark of a very interesting conversation - how do we define “low tech”?

          1. 3

            Standing on a mountain and banging two electrically charged rocks together? Oh, you said ‘spark’ already. Hah! :)

            1. 2

              If I pull out a 20-year-old computer, meaning something like Windows 98 and IE5, because I have nothing better, will the website be functional using that browser?

              What about a 23-year-old computer with Netscape 3? What about NCSA Mosaic?

              What about just a 10-year-old iPad with iOS 5 on it?

              For an English-language website which is only sharing information as text and perhaps some images, there is no good reason except effort required that the answer to those questions can’t be “Yes”.

              Example: http://hike.qdb.us/demo_oct15/

              1. 1

                I dunno about IE5, but it works fine in text-only browsers like Lynx and Links.

                1. 1

                  Lynx will actually handle a lot of things that, e.g., IE6 will not, because it is actively maintained. One of the hardest stumbling blocks standing between a retro browser and a modern bare-bones site is TLS versions (and ciphers). I run a self-consciously retro front-end for a modern web service, but I keep the TLS up to date because it handles logins. Lynx works fine on it (because it’s compiled against current OpenSSL), while anything older than early Firefox releases usually won’t (because of dropping support for SSL and for TLS 1.0).

                  1. 2

                    Yeah, I just tried to get a Win98 VM to go so I could actually try it. Finding an Ethernet driver for it that worked was far more work than it should have been, so I just saved it as a file and loaded it into the VM.

                    The rendering of the page itself wasn’t exactly pretty or flawless, but worked okayish: see here (offer good until 2020). Does look better when you just take out the CSS entirely though.

              2. 1

                That is interesting. I suppose there are two different spectrums: one for human technological achievement, and the other for personal technological fluency. Relative to a state-of-the-art web app, this website/server is decidedly low-tech, but to my grandmother, it’s anything but.

                1. 1

                  I personally like to call it “Lo tech”

                2. 1

                  yarchive is low-tech because it’ll render correctly in the simplest possible web browsers. The linked site conveys information using images and a permanent footer, neither of which will render in low-tech rendering engines. There’s very little way to claim the linked site is as low-tech as yarchive.

                  1. 0

                    What you’re saying sounds like some robert “frippery” to me, because this page renders just fine with (external) css completely disabled!

              1. 12

                Kinda surprised the article/page doesn’t even mention the grand daddy of delay driven internetworks - UUCP.

                1. 8

                  Neither FidoNet, which is apparently still kicking.

                  1. 1

                    Maybe because it’s possible for something to be a network without being any part of the Internet.

                    1. 6

                      Yes but the UUCP system was part of the internet!

                      1. 0

                        First, gatewaying email and Usenet news isn’t the same as being part of the Internet in a persistent fashion.

                        Second, bang paths aren’t an example of UUCP being part of the Internet.

                        1. 1

                          Got a cite for that assertion? Are you confusing “being part of the internet” with “having interactive login access” ?

                          1. 0

                            I’m not confusing anything. You’re the one who thinks every computer network is “The Internet”.

                            1. 1

                              OK. I dunno if it’s possible but could we put aside the combative tone for a minute and try to come to an understanding over where we disagree?

                              When I look up the word “internet” I see: a global computer network providing a variety of information and communication facilities, consisting of interconnected networks using standardized communication protocols.

                              What does that definition mean to you, and what does it include?

                              For me, UUCP mail routed using bang paths, that is then routed on to the world wide TCP/IP network via an SMTP mail gateway are in fact by the above definition “part of the internet”.

                              What part of that do you disagree with?

                  1. 6

                    My early 2015 MacBook Pro is in an Apple-authorized repair shop since Tuesday after the upgrade to Catalina rendered it unbootable (recovery doesn’t work, Internet Recovery doesn’t detect networks, it doesn’t even let me get into Startup Manager by pressing Option during boot to reinstall macOS from a thumb drive).

                    Another friend’s 2017 MacBook Pro had to have it’s OS reinstalled.

                    My dad’s 2014 MacBook Air upgraded without issues, but has been unstable ever since it finished upgrading.

                    People are having problems with Mail.app, with the filesystem, with the 64-bit BS, they couldn’t use Reminders for a week because they released iOS one week earlier with breaking changes, etc.

                    This is not the Apple I signed up for. And I’m writing this from a quick and dirty Ubuntu thumb drive, and I have to say I’m surprised with how stable it is, after leaving desktop Linux half a decade ago.

                    1. 4

                      This is not the Apple I signed up for. And I’m writing this from a quick and dirty Ubuntu thumb drive, and I have to say I’m surprised with how stable it is, after leaving desktop Linux half a decade ago.

                      Ubuntu’s pretty good. It gets a lot of fit-and-finish work, in my experience, and Mint is a smaller version of the same thing; a lot of people prefer Mint’s Cinnamon GUI over Ubuntu’s default GUI, as well.

                      1. 4

                        Never used Mint.

                        Chose Ubuntu out of interia. It was what I used since I was 9 up until I got the MacBook. It is what I use on servers (Ubuntu Server or CentOS, depends on how I feel like when in the morning) because It Just Works. If I could go back to GNOME 2 / MATE without having to deal with it myself I would (I obviously can, but tweaking DEs is very annoying and honestly, Unity or whatever it is now is not as bad as it was when it was introduced).

                        Thought about going back to Gentoo (which is where I left off), but I don’t have the time right now.

                        1. 3

                          I was on Mint for 5 or 6 years before moving back to Ubuntu. Fewer rough edges and better stability with the latter.

                      1. 29

                        I don’t own any macs, but I think it is worth considering the flipside of this article - that Linux in 2019 is actually very good at hardware compatibility. I run the Wayland/wlroots window manager Sway on my laptop (a Dell XPS), and recently had cause to connect it to a Samsung TV. I expected to have to poke around with the Sway config and perhaps with drivers to get things working nicely but to my pleasant surprise, the display worked instantly as soon as I plugged it in. I am very grateful to the hard-working devs who have toiled over the subsystems which allow this sort of seamless, stress-free computing. Those of us who use libre software must be cognisant that these sorts of usability victories represent a lot of hard and often thankless work.

                        1. 8

                          It’s a lot of hard work by a lot of people, including the people who make hardware standards. Moving from everything connecting via serial port and needing low-level device support to things connecting over USB and HDMI has been a big step up. That isn’t a panacea, and it still represents a lot of work done by software developers to support these new hardware standards, but more of the work can be done once, and improved, instead of having to be done multiple times over. (Plus, of course, there’s also the hardware that’s simply died, like Winmodems and Zip drives. Especially Winmodems, which by-and-large never worked on Linux.)

                          1. 6

                            Especially Winmodems

                            I had an Amiga so, not only could I not use a Winmodem, I couldn’t even use an internal modem. True external modems were often twice the price of an internal modem, and three times the price of a Winmodem…it hurt.

                          2. 7

                            that Linux in 2019 is actually very good at hardware compatibility.

                            Within the past year:

                            I bought a Lenovo IdeaPad and tried to install Linux on it. It failed with a kernel panic. The ACPI tables in the BIOS were incorrect but in a way that Windows didn’t mind. Disabling ACPI via kernel parameters got the system to boot (though obviously this was not preferable), but then the graphics card was unsupported and I got a side-by-side mirroring effect on the internal display.

                            I bought an Acer laptop. Linux didn’t support the sound card.

                            I bring these up not to say that Linux sucks but to say that I was genuinely surprised that these things happened. It was the first time in maybe a decade that Linux didn’t support everything out-of-the-box.

                            (Except for printers. I have a PoS HP home printer that supposedly has Linux support but it’s hit or miss whether it shows up on the network, can print, will finish a print job, or print the right thing when asked. This is also not a Linux problem: printers have always sucked.)

                            1. 8

                              IIRC from my conversations with FreeBSD kernel devs: Microsoft has a broken implementation of ACPI, and hardware manufacturers cater to that. Open source projects implement ACPI as defined by the spec, but then run into bugs.

                            2. 6

                              I had the same experience with the same setup (Sway + XPS), everything worked out of the box with the Dell Adapter and HDMI. Very smooth experience!

                              1. 3

                                I built a plex server earlier this year and got some sort of no-name chinese 7” LCD display so I could avoid having to SSH into it all the time if I wanted to do some small tasks. I plugged it in, it worked. The same thing happened with a knockoff TV I have for my guest room that I initially was using with it. I remember fighting with linux distros for weeks at a time over the dumbest issues when I first got into it (late 90s), but it’s so streamlined now.

                              1. 3
                                1. That rm behaviour sounds like a feature of a snapshotting filesystem.

                                2. External monitors work on macs as well as better than on even Windows. Linux is still a bit of a joke on this front.

                                3. Homebrew?

                                4. Hardware compatibility is not quite as horrible as Linux of 2000, but I agree that Apple is not (and has never) been amazing with this. I haven’t had any trouble though, but I don’t tend to use external hardware that much.

                                5. Technical support… hmm. I’ve submitted a bug report to Apple and soon got a response that my bug report was a duplicate of another and that it was under work and available in the next version. That was an ok experience.

                                6. “It is very difficult to find a laptop with more than two USB ports.” Hilarious bullshit.

                                7. Advocate behaviour. Yeah, countering internet crap with obvious facts means I’m practically fantasizing about zombie Steve in my bed.

                                Said fanboys are condescending elitist hipster latte web site designers.

                                I don’t drink lattes! Nor design web sites!

                                edit I’ve been downmodded -5 for incorrect, -1 troll. Now, I fully understand the troll downmod, but the incorrect mods are … well… incorrect :) I mean, I realize this was under the “linux” tag so most people reading are opinionated, but you can be opinionated without being wrong.

                                1. 6

                                  External monitors work on macs as well as better than on even Windows. Linux is still a bit of a joke on this front.

                                  OK, how? Since I have a perfectly functional external monitor and I’m using Linux, please be specific.

                                  Advocate behaviour. Yeah, countering internet crap with obvious facts means I’m practically fantasizing about zombie Steve in my bed.

                                  This is all about perception. It’s also about some people wanting to win, and if they can’t win with facts, they can win by making you out to be ridiculous.

                                  1. 3

                                    I can answer this. I am assuming external monitor is what laptop users call having more than one monitor. Please ignore this entire post if it is in fact something completely different. I dual boot Win10 and Mint (Ubuntu in green) and I both have major issues with my dual monitor setup. My larger main monitor is plugged into the second port of my graphics card because the smaller one only has dvi. Most software makes the assumption that the main monitor is on port 1 and that the monitor on port 1 is larger and higher resolution.

                                    Windows often forgets which monitor an application is displayed in, sometimes in the middle of using that application. Some applications when running in full screen mess with the resolution of the screen buffer of the other monitor making the second monitor unusable while they are running.

                                    Linux is way worse. You can’t do anything without ARandR installed and even with that: Almost all applications start in the secondary monitor. Many applications (games) have their maximum resolution settings set at the resolution of the smaller monitor and can not be increased. Running a full screen application in one monitor and a video in the second monitor stutters and lags massively if the resolution of the fullscreen application is higher than the second monitor. Plus all the issues that effect windows. Some streaming video players only fullscreen to what they think is the secondary monitor. Some games switch to what they think is the primary monitor when fullscreened. If a monitor has a fullscreen application running at a non-native resolution, the position of gui interaction boxes and visual gui elements are offset from each other, sometimes by a significant distance.

                                    If macs dont have all of these issues then the claim that they handle this better seems reasonable. I put the issues on linux down to game developers (90% of these complaints don’t happen/matter if you aren’t a gamer) and the generally young age of linux gaming support. I am confident in a couple of years the problems will be resolved. I am not confident microsoft will ever resolve any problems with their operating system, and I don’t know anything about apple.

                                    1. 2

                                      I can answer this. I am assuming external monitor is what laptop users call having more than one monitor.

                                      Oh, sorry: That isn’t a Linux thing, that’s an “I use a laptop as my daily system and I forget that desktop machines still exist sometimes” thing. Yes, I have a second monitor hooked up to my laptop.

                                      And I don’t have the primary/secondary monitor confusion because of that: My main monitor is the one attached to the case the CPU sits in, so there’s no possibility of confusion there, even for software. My system handles two monitors with different resolutions fine, and my second monitor is even VGA; heck, it’s an Admiralty Overseas Corporation monitor from before the abbreviation AOC had any meaning in the world of national politics. It’s a cheapie picked up at Walmart, not one I carefully selected after looking at a page of which monitors work well with Linux, and it works exactly as well as any cheap VGA monitor.

                                      Thanks for your perspective, and I hope everyone gets where I’m coming from, too.

                                    2. 3

                                      External monitors can be a pain with Linux, especially when you disconnect the cable (e.g. HDMI) when the Laptop is in standby with a closed lid. This works sometimes but often it won’t automatically switch back to the integrated laptop display and you’re left with a blank screen.

                                      1. 1

                                        OK, how? Since I have a perfectly functional external monitor and I’m using Linux, please be specific.

                                        Plugging in a 4K monitor on different desktop environments can be harrowing depending on the Desktop Environment or even version of DE you’re on. Do I have to do weird workarounds to get fractional scaling? Does it only work with native apps? Do I get weird blurry windows or random graphical corruption If I use said fractional scaling? Will I get strange results if only one of the screens is HiDPI? The answer to at least one of these is always “yes” right now. On Mac, I plug in and pick the scaling, even on an eGPU.

                                        My second example is using an AMD card to hook up to a 4K TV @ 60hz. No combination of distribution, driver, or EDID hacking could get this to work, even with two different cards at different times (RX 580, Vega 64). The same setup and cards worked fine (4K @ 60hz) on Windows, worked fine in an eGPU enclosure with a Mac mini, worked fine with a connection to the Intel/AMD switchable graphics built in to my MacBook Pro.

                                        This last one is probably more NVidia’s fault or Alienware’s fault than anything, but my Alienware’s hdmi port is the only port wired to the discrete GPU directly, and is wonky on Linux, requiring Xorg hacks to get it usable. The thunderbolt, USB-C, and even mini-DisplayPort next to the HDMI port all work, but not the HDMI port unless I make changes to Xorg to the second NVidia Xorg.

                                      2. 4

                                        That rm behaviour sounds like a feature of a snapshotting filesystem.

                                        Perhaps, but macOS has been really opaque since the introduction with APFS when/how macOS makes snapshots. I guess it’s tied somehow to using Time Machine, but other than that I have no clue.

                                        Technical support… hmm. I’ve submitted a bug report to Apple and soon got a response that my bug report was a duplicate of another and that it was under work and available in the next version.

                                        If you have Apple Care, you could just call them up. I guess for a lot of non-technical folks this is much better than Googling ;).

                                        External monitors work on macs as well as better than on even Windows. Linux is still a bit of a joke on this front.

                                        I have a 4k monitor that I hook up through Display Port Alt Mode. I have a DisplayPort <-> USB-C adapter. Works fine with my wife’s MacBook Pro 2016. Works fine with my 2018 Linux NUC. Does not work at all (as in literally no signal) on my MacBook Pro 2018. So I had to buy yet another adapter.

                                        (In my experience external beamers work great with Macs though, never had a problem.)


                                        This blog post started out ok, but the rest was just drivel. macOS has had its problems recently, but comparing it to Linux circa 2000 is just laughable. macOS is something that I’d easily recommend to non-technical friends/colleagues, 2000’s Linux definitely not (though I probably would have at the time, because I was an 17/18-year old fanboy ;)).

                                        1. 4

                                          This thread (and the article itself) is a shitshow of Apple-haters circlejerk but facts are facts: it is indeed very hard to find any macbook with more than 2 USB ports, reference:

                                          https://everymac.com/systems/by_capability/macs-with-usb-firewire.html

                                        1. 20
                                          Updating software

                                          Linux 2000: I’m afraid to update my whole system, because software incompatibilities between packages will most likely break my system, and I’ll be forced to spend time fixing it.

                                          Apple 2019: I’m afraid to update my whole system, because system incompatibilities will render lots of software incompatible, and software will stop working. I’ll be forced to spend time fixing it, but often I won’t be able to do it, because everything is closed source and I wouldn’t be able to do anything even if I wanted to.

                                          edit: I’ve upgraded to macOS Catalina, and suddenly VMware Fusion hangs in some cases. Normally it works OK, but when a daemon which is started by launchctl will try to run the vmrun command, and the VM which it tries to run sits on an external HDD, the vmrun process hangs… so now I have to sit and fix my CI worker setup instead of doing actual development.

                                          1. 5

                                            Linux 2000: I’m afraid to update my whole system, because software incompatibilities between packages will most likely break my system, and I’ll be forced to spend time fixing it.

                                            For Slackware, sure, and I was using Slackware in 2000, but what was the story for Debian?

                                            1. 10

                                              Potato was out and APT was handling dependencies automatically and very reliably.

                                              1. 6

                                                There was a time when it was kinda risky to run testing and not stable. (And people usually like to run testing because it’s more up to date than stable). Years later (2010+ from my knowledge) this changed and you could run testing with only 1-2 easily fixed breakages per year.

                                                1. 1

                                                  That matches my experience as well. I’ve used Testing for years now, and the only thing I recall breaking after an upgrade is the NVIDIA drivers.

                                                  Unstable, on the other hand, is true to its name, and always seemed to break at the most inconvenient times.

                                                2. 3

                                                  Having used Linux at the time (and before), I remember the problem being even more basic. Most distributions had package managers that could install/update/remove individual packages, but not automatic updates with full dependency resolving. Instead, they relied on some installer to do some rpm magic or wacky vendor-specific solutions such as up2date. Debian was early in fixing these issues with APT in 1998. But the competition was trailing quite a bit, in 2000 yum did not exist (only its predecessor as the Yellowdog Updater), urpmi was just new (January 2000), and in Red Hat land.

                                                  1. 4

                                                    Heh, wasn’t Yellowdog a distribution targetting Apple hardware?

                                                  2. 2

                                                    Well, better; but not as smooth as Debian today.

                                                    1. 2

                                                      I don’t know, because in 2002 I could make Slackware installed successfully and couldn’t replicate this feat with Debian. :-p

                                                      Of course, the situation has improved slightly since then.

                                                  1. 2

                                                    I’d actually have to look up how to make something with WebAssembly. With JS, I can dump the source code into an HTML document and load the document. I can include a minified JS source code file into a document if I want to do something fancier. The basic workflow is very familiar to anyone who’s ever touched Web development at any time in the past couple decades.

                                                    With WebAssembly, there’s a compiler toolchain and bytecode and I probably can’t just dump the bytecode into HTML, can I? I probably have to engineer something to load the bytecode in a way that the Web browser doesn’t think it’s an image file or something. This is beginning to feel less like Web development and more like systems software development, and systems software development with a cross-compiler toolchain no less. I have a Docker image for that, but it’s still fundamentally more involved than getting an idea, writing it up in JS in some trivial HTML file, and loading the result to see how it works.

                                                    1. 16

                                                      It is unfortunate that this distribution mixes a very good idea (a simplified Linux likely to get traction on servers and in containerized workloads) with a very bad idea (not including support for more than one language). Lack of non-English languages (and in fact, lack of any localization support, as they’ve removed gettext and intltool completely) is a mistake.

                                                      This is already apparent in the FAQ, where it’s clear that they’ve realised that some people otherwise in their target audience really do need internationalization features and have outsourced those (specifically keyboard layouts) to another project.

                                                      1. 15

                                                        I get why people want internationalisation, but I don’t understand why everyone needs it. This just seems geared to those who don’t? And if one wants to go even further, than I believe one must accept that this isn’t a unfortunate mix, but that internationalisation in it’s current form is incompatible with what is deemed simplicity in the realm of Unix.

                                                        Also, this isn’t so much an explicit choice of the distro, as much as they choose to base their system on the musl libc, that doesn’t have internationalisation support, per se. Try void+musl, it’s the same thing.

                                                        1. 7

                                                          what is deemed simplicity in the realm of Unix.

                                                          My point is that this is incompatible with simplicity, as is already demonstrated by the fact that anyone using a non-US keyboard, including an ISO standard keyboard, has to fetch files from another project outside of the package management provided just to use the thing.

                                                          1. 3

                                                            But don’t forget: Simple doesn’t mean easy to use. See anything Unix minimalists to theoretical mathematicians.

                                                          2. 1

                                                            What is “the realm of Unix”? (And why should anyone care?)

                                                            To me, this seems like simplicity in the realm of asshole nerds.

                                                            1. 8

                                                              I’d say “the realm of Unix” is what one considers good and elegant style within a (classical) Unix system. You can shoehorn Unix to act like something else, but some people don’t like that, and I guess they are the ones who care, because they want to.

                                                          3. 8

                                                            I just find it interesting that their version of simple includes dependency-tracking package management but excludes Spanish.

                                                            Distros without dependency-tracking package management exist, you know.

                                                            1. 7

                                                              The line has to be drawn somewhere, and they’ve drawn it at i18n. Either they end up caring about those people otherwise in their target audience—or their current model ends up working for them in the long run. There’s nothing inherently wrong with not shooting for the stars.

                                                              1. 9

                                                                Writing a package manager in shell is also a bad idea!

                                                                (Fun story: I’ve tried that back in the day… on one of those Motorola phones powered by Linux… the result was rm -rf /, which permanently bricked the phone because a very important unique-to-individual-phone security boot partition thing was always mounted read-write because lol)

                                                                Excluding the modern freedesktop stack is a bad idea too, if you ask me.

                                                                good idea (a simplified Linux likely to get traction on servers and in containerized workloads)

                                                                er, that exists, it’s called Alpine, it already dominates containerized workloads pretty much?

                                                                1. 11

                                                                  Slackware has been using a package manager written in shell script for 15 years, it still works flawlessy

                                                                  1. 1

                                                                    There is an unlink function in every language, but I confess that the shell has many quirks.

                                                                    1. 1

                                                                      unlink do not work for directories and rmdir refuses to remove non-empty directories, so this is less problematic unless such language provides rm -rf equivalent OOtB.

                                                                    2. 1

                                                                      The author is experienced in shell and careful to write safe code. Additionally, everything is linted by ShellCheck.

                                                                    3. 1

                                                                      There is a difference in supporting localization in the end, user-exposed application (where gettext could come handy) and supporting locales in the system utilities.

                                                                      In french, the coreutils free command translation changed between versions, and this lead to scripts parsed with AWK failing (1 word -> 2 words).

                                                                      Also, coding with locales is terrible. This mean you cannot parse RFC822 formats with strptime(); as part of a parsing library, unless you define the locale in the library, which will change the whole program behavior!

                                                                      Instead, locales should work as passing an argument to the functions supporting them. But so is POSIX today.

                                                                      1. 4

                                                                        That’s Unix’s problem for making bags of bytes both the user interface and the IPC mechanism, IMHO.

                                                                      2. 1

                                                                        Regarding keyboard layouts, the compose key gets most of the issue out of the way, but I don’t know about ie Cyrillic.

                                                                      1. 3

                                                                        Is “ethics” even possible for a modern day programmer/SE?

                                                                        Lawyers, doctors, even engineers, have some for of licence or qualification they can lose (be barred, lose medical licence, chartered) or well somewhat established practises they can be sued over for breaking.

                                                                        What the equivalent for software engineers? I don’t have that kind of leverage; If I refuse a job, there are plenty that will accept - especially those bound to a visa for whom their job is the entire reason they are in the country with a decent salary and will gladly break ethical guidelines to avoid being shipped back home.

                                                                        1. 12

                                                                          I believe you’re talking about ethics enforcement, which exists, as you point out, for many licensed professionals.

                                                                          There are a lot of professionals, however, that are not licensed and yet hold ethics in high regard: journalists, photographers, chiropractors (before the field was licensed). Basically any field where trust between one another and trust with the general public is required. For the licensed fields, the licensing body is responsible for ethics. For the others, it varies quite a bit. Financial planners, for instance, have several associations they can join (I believe) each of which has separate standards.

                                                                          There are several questions here:

                                                                          1. Is it time to talk about ethics?
                                                                          2. Is this place to do so? If not, where?
                                                                          3. Could we or should we ever agree on an ethical framework (a system for identifying the various types of ethical questions we might face)?
                                                                          4. If so, where do we go from there? Perhaps various GitHub-hosted ethical standards bodies that we voluntarily join? Something else?

                                                                          I don’t know the answers to any of this. I just know that over the past several years, I’ve seen a lot of public activity around programming where there were two levels. Level one was some event or act that made the newspapers and everybody argued about. Level two was the rest of us programmers trying to figure out if we were in a similar situation, how we should act.

                                                                          To drive the point home while agreeing with you, take the recent 737MAX disasters. If a lot of developers knew there was a good chance they were building software that might kill somebody, should that be an ethical problem? Maybe it is and there’s nothing to be done. I honestly don’t know. Guessing you might be doing something dangerous is a bit vague.

                                                                          Really all we can hope for is a framework, not a set of rules. But if, as an industry, we decide that one type of activity is much more problematic than another? That’s something we should be teaching people coming out of uni. What they do with that, whether they form trade groups or whatnot, is outside the scope of this essay. The essay’s point was that either we create a framework, perhaps a framework we disagree about the required observations and actions required but still a framework with common language and definitions, or it’ll be done for us without our input.

                                                                          Every day people are posting stories online about programming ethics. Doesn’t that tell us that it’s important?

                                                                          1. 5

                                                                            Here’s the problem though: I don’t think journalist, photographers, or chiropractors are ethical, and we shouldn’t be trying to emulate them. Journalists who like to pay the rent can’t afford ethics any more, “photographers” is too wide a net to really be worth analysing, and an ethical chiropractor is like an ethical psychic.

                                                                            1. 3

                                                                              chiropractors

                                                                              It’s impossible for a quack to hold ethics in high regard. They either don’t know enough about their entire field to know what they’re doing is quackery, which is culpable, or they do know and they do it anyway, which is also culpable. In either case, there’s no ethical world where chiropractic is acceptable.

                                                                              1. 1

                                                                                Remember that “chiropracter” has two different meanings. One of them is a much more constrained, innocuous practice involving joint adjustments; my dad occasionally sees a chiropracter for his back, and it helps greatly.

                                                                                There’s also a broader one that has some serious quackery associated with it.

                                                                                1. 1

                                                                                  The adjustments can cause death:

                                                                                  https://healthblog.uofmhealth.org/wellness-prevention/chiropractic-neck-manipulation-and-stroke-whats-risk

                                                                                  In general, the safe adjustments can be done by physical therapists who know what they’re doing, and who aren’t going to schedule a lot of unneeded adjustments because adjustments are all they do.

                                                                                  1. 1

                                                                                    That’s not actually what your link says.

                                                                              2. 3
                                                                                • Is it time? Yes. It’s long past due.
                                                                                • Is this the place? Yes. Everywhere is the place.
                                                                                • Could we? Not easily. People like pretending that working at Facebook & Google isn’t hurting their friends. Should we? Yes.
                                                                                • Maybe choose a more ethically focused citizen, like Gitlab.
                                                                              3. 4

                                                                                Don’t underestimate the effect you can have by voicing your opinion.

                                                                                A refusal phrased a certain way might lead to termination, but honest good-faith discussion never should. There is cost to a company in firing you and in onboarding someone to replace you, which gives you some small leverage. The company’s PR story gives you a bit more, if needed in more dire circumstances.

                                                                                Yes, there will always be people willing to do unethical work. But that doesn’t justify not standing up in at least some small way, even if the result is conceding and doing the work anyway because you have to make rent or feed your family.

                                                                              1. 3

                                                                                I use zsh

                                                                                PS1='%n@%m %2d%% '
                                                                                
                                                                                RPROMPT="%* %W"
                                                                                

                                                                                I don’t update my environment very much; I’ve taken my basic UI (Window Maker, zsh, xterm, Emacs, a few other things) with me across multiple Linux distros. It’s old enough that I’m pretty sure it predates emoji support in widely-available terminal fonts, for example.

                                                                                1. 1
                                                                                  PS1="`hostname | awk -F . '{print $1}'`%# ";
                                                                                  RPS1='%d';
                                                                                  

                                                                                  I think I last modified mine in 2003 or something? I remember choosing zsh at the time for the simple reason that it supported right-aligned prompts. I’m not sure if the hostname-into-awk nonsense predates the %m escape code, or if I simply was unaware of it at the time.

                                                                                1. 19

                                                                                  I disagree. The purpose of an aggregator is to provide links the community might want to read, but there’s more content (of varying quality) out there than anyone has tome to read.

                                                                                  Downvoting should be used sparingly, only when required to separate that which isn’t up to our standards from that which is. Then, the downvoted link doesn’t get to push some other content onto page 2.

                                                                                  Part of being here and the invitation-only system is that we trust each other to save each other’s time by downvoting when appropriate. If every story gets guaranteed eyeballs because of a grace period, we’ve thrown away the value that we extract from that trust.

                                                                                  Whether or not that trust is well-founded is a separate question.

                                                                                  1. 4

                                                                                    Downvoting should be used sparingly, only when required to separate that which isn’t up to our standards from that which is.

                                                                                    I think we have multiple communities which prove that trying to enforce how downvotes should be used isn’t going to work. Some are worse about downvote to disagree than others, and our habit of making people choose “downvote because it’s wrong” versus “downvote because it’s a troll” and so on probably helps, but we aren’t that special and there’s no technical mechanism which will prevent the interesting but unpopular-with-some link from getting downvotes it, according to your rubric, does not deserve.

                                                                                    1. 6

                                                                                      I think we have multiple communities which prove that trying to enforce how downvotes should be used isn’t going to work. Some are worse about downvote to disagree than others, and our habit of making people choose “downvote because it’s wrong” versus “downvote because it’s a troll” and so on probably helps, but we aren’t that special and there’s no technical mechanism which will prevent the interesting but unpopular-with-some link from getting downvotes it, according to your rubric, does not deserve.

                                                                                      I don’t actually think it helps, and am fairly regularly dismayed by the way people on here use down-voting, and how free they are with marking any opinion that’s even remotely controversial or that goes against the body politic as a troll.

                                                                                      Personally I’d be happy if the penalties for downvoting were increased such that people really had to think about whether or not they were willing to forfeit that pound of flesh when they clicked.

                                                                                      1. 1

                                                                                        Personally I’d be happy if the penalties for downvoting were increased such that people really had to think about whether or not they were willing to forfeit that pound of flesh when they clicked.

                                                                                        would the “currency” be karma? i kind of like the idea that your karma reduces when doing something negative ;)

                                                                                        1. 1

                                                                                          Yes I think that’s the right direction for sure. Make folks think twice before they penalize people for an unpopular opinion.

                                                                                      2. 3

                                                                                        Fair, as friendlysock mentioned, some examples might illuminate which of the cases we’re in.

                                                                                    1. 2

                                                                                      This is interesting, in a RISKS Digest sort of way:

                                                                                      LLVM will now remove stores to constant memory (since this is a contradiction) under the assumption the code in question must be dead. This has proven to be problematic for some C/C++ code bases which expect to be able to cast away ‘const’. This is (and has always been) undefined behavior, but up until now had not been actively utilized for optimization purposes in this exact way. For more information, please see: bug 42763 and post commit discussion.

                                                                                      The post-commit discussion links to code in BusyBox’s ash which would fail if built by a clang based on this llvm version. I suppose the RISK is a build breaking with a newer clang, people cursing and going back to the older clang instead of fixing their code, and missing out on improved bug reporting or similar.

                                                                                      1. 1

                                                                                        Interesting indeed, to be honest, I’m not totally sure of the value of an optimization like that. Is there any case that would actually improve performance and not just break things?

                                                                                        1. 1

                                                                                          Less code → room for other code in L1i cache

                                                                                          1. 2

                                                                                            But why would any correct code be writing to const memory? It doesn’t make sense to optimize incorrect code anyway.

                                                                                      1. 22

                                                                                        So I think we can agree that there is one design rule, or ‘pattern’ by analogy, that always holds:

                                                                                        Make it simpler.

                                                                                        “Make it simpler” ignores all the many, many practical factors that push code to be complex. What if the “simple” code is so slow people hate using your software? What if the “simple” code would be in a different language? What if there’s a difference between local and global simplicity? What if the simple code is much harder to test and deploy? What about the Law of Requisite Variety?

                                                                                        In architecture, where the problems that buildings and city planning need to solve don’t change, a set of patterns can be expected to be distilled after some time and to remain more or less comprehensive. But the nature of code is very different. Once something is solved in code, it doesn’t has to be solved again. The analogy is completely inapplicable.

                                                                                        Do you know this? Have you ever done architecture or city planning? I’ve been talking to a lot of cross-discipline programmers as part of a longform project, and they all agree we completely misunderstand this.


                                                                                        I’m burnt out on “simplicity” essays. What even is simplicity? We all use it but don’t have a consensus, or even good definitions. Which is simpler: shared memory concurrency, or message passing concurrency? Shared memory is much, much simpler, requiring fewer primitives, fewer moving parts, fewer axioms, fewer abstractions. It also leads to much more globally complex and error-prone code.

                                                                                        1. 8

                                                                                          Simple code also requires a simple problem, and a simple world to be modeled by the code. Text is simple if you ignore any language other than English, somewhat simple if you ignore any language outside of Western Europe as long as you add complexity for ß upcasing to SS as opposed to any single letter, still pretty simple if you ignore any language which does not use the Latin alphabet as long as you add another hack to account for dotted and dotless I in Turkish…

                                                                                          Once you move on to most of the world, solving the general problem of text is hard. It requires complicated code because you’re trying to capture an organic system, and the only reason Latin script languages are as simple as they are is because you’re getting a pre-chewed version hammered down by printing presses and typewriters, and shorn of things like scribal abbreviations and most ligatures and even “missing” a few letters like yogh and wynn, not to mention the long s, which coexisted with the short s for a good, long time.

                                                                                          1. 1

                                                                                            Yeah, in some code reviews I did, I was surprised to find disagreement with fellow programmers when I tried to use argument of “simple” - in that we saw simplicity in different ways (esp. in architectural choices).

                                                                                            1. 1

                                                                                              Do you know this? Have you ever done architecture or city planning?

                                                                                              I haven’t, so this is just an assumption, an attempt to understand why design patterns may have been appealing seeing that they don’t add the promised (or expected) value in practice.

                                                                                              What even is simplicity? We all use it but don’t have a consensus, or even good definitions. Which is simpler: shared memory concurrency, or message passing concurrency? Shared memory is much, much simpler, requiring fewer primitives, fewer moving parts, fewer axioms, fewer abstractions. It also leads to much more globally complex and error-prone code.

                                                                                              I agree, we don’t have good definitions and that sucks, because not having a set of rules to follow always feels bad. For me simpler at least means easier to understand. It is very hard to do hard measurements of whether something is easy to understand. However, it is not impossible to say whether one approach is easier to understand than another, in other words, if a refactor was valuable or not.

                                                                                              I am afraid I don’t know of a better practical tactic to decide on the adequacy of a structure than just changing code and seeing if I made it easier to understand. Given that functional requirements are met, of course, and given all circumstances, conditions and consequences. I agree that this is not stated explicitly in the article.

                                                                                              I think the example of choosing a concurrency model is a great one. Do we prefer global complexity and the potential for pitfalls over the complexity of a larger number of moving parts? I believe that acknowledging that there is no general answer to this question is better than believing that I should be able to solve this with a pre-defined pattern if only I would have studied pre-defined patterns enough.

                                                                                              1. 1

                                                                                                What even is simplicity? We all use it but don’t have a consensus, or even good definitions. Which is simpler: shared memory concurrency, or message passing concurrency? Shared memory is much, much simpler, requiring fewer primitives, fewer moving parts, fewer axioms, fewer abstractions. It also leads to much more globally complex and error-prone code.

                                                                                                I can only recommend Rich Hickey’s Simple Made Easy, which helps answer why just having fewer parts doesn’t make something simple.

                                                                                                1. 3

                                                                                                  A few months back I asked people on Twitter to give me two samples of code, in the same language and doing the same thing, but one had to be “simple but not easy” and the other “easy but not simple”. Most of the responses ended up contradicting each other. I don’t think we have a sense of what “simple” means.

                                                                                                  1. 1

                                                                                                    I think the problem with such a challenge is that what is easy will differ from person to person — I think we should be able to agree on whether a thing is simple vs. complex, but if you ask for easy or not easy (which both sets of responses are also trying to answer) it will come to depend very much on who’s answering.

                                                                                              1. 10

                                                                                                While I agree with the practical suggestions of this article in principle, what’s being suggested here effectively sounds like “host your own git repositories so you’re free of all criticism and can let your toxic behavior go unchecked”? I think there’s a difference between GitHub taking action on things that are legitimately offensive and would go against any Code of Conduct, and the true political censorship GitHub has been enforcing over the last months, such as barring users to access their site based on their location.

                                                                                                1. 16

                                                                                                  Presumably, people disagree with Github about the what constitutes “toxic” and “legitimately offensive”.

                                                                                                  Or (like me) they are uncomfortable with a service enforcing their views, even if the views themselves are reasonable.

                                                                                                  1. 14

                                                                                                    Personally, I would like it if the services I used barred people who don’t think I deserve to exist from participating in the same things I participate in.

                                                                                                    1. 7

                                                                                                      I would like it if the services I used barred people who don’t think I deserve to exist

                                                                                                      FWIW, I have strong issues with people who think other categories of people should not exist, and it sucks that you have to deal with them.

                                                                                                      However, I don’t think this is a very good long term practical solution, especially when the moral compass of a lot of SV companies seems to be directly related to the amount of social media pressure a given issue garners. I would perhaps have a different viewpoint if companies had a well articulated, solid set of moral principles that they stuck to.

                                                                                                      Even then, I see services such as code hosting as completely orthogonal to political/moral judgement. I see no reason why they should be intertwined.

                                                                                                      1. 13

                                                                                                        I don’t want to retread the same ground that we’ve been on 100 times before for the sake of winning an argument online, so I’ll just say that my opinion is that all social spaces are political and therefore require moderation (codes of conduct, etc) in order to be welcoming to newcomers. GitHub has a much larger precedent on this than almost all other code hosting platforms I’ve seen.

                                                                                                        1. 9

                                                                                                          I don’t see how every social space being political logically leads to the conclusion that they should be welcoming to newcomers. And every social space being moderated sounds like a totalitarian nightmare.

                                                                                                          I can see that ‘social’ aspect of github does potentially shift it towards more of a political space, especially as they do position themselves as a place for newcomers. I would say, though, that people like the author of the article wanting to move away from that social aspect and the attendant rules is not necessarily a sign that they want create a den of free-for-all abuse and horror. Perhaps they just don’t want every space they inhabit to be political.

                                                                                                          1. 12

                                                                                                            Professional social spaces (that is: places where some of the people have to be there in order to keep a roof over their head) need very different rules from other kinds of space.

                                                                                                            1. 5

                                                                                                              Indeed; github is in some ways more like a workplace than, say, a cafe or a park.

                                                                                                              Thinking about it in those terms helps me to clarify my objection. Github is more analogous to an office building than to an organisation. It’s a piece of infrastructure within which individuals and organisations come to work. It would seem rather bizarre if the owner of an office building enforced rules about the speech of their tenants.

                                                                                                              It’s obviously an imperfect analogy.

                                                                                                              1. 4

                                                                                                                It would be bad if every cafe and park was required to enforce the same rules as a workplace, just in case you encountered someone you knew at work there.

                                                                                                                1. 4

                                                                                                                  If Github is analogous to an office building, surely a project within it is analogous to the group of people operating within it.

                                                                                                                  If those people put up a sign saying “You’re welcome to come in, but don’t do X”, and you decide to do that anyways, don’t whinge when they call security (github) and ask to have you escorted from the premises (banned).

                                                                                                                  (that is: projects have codes of conduct; github has very lax rules other than ‘behave on other peoples projects’)

                                                                                                                  1. 4

                                                                                                                    (that is: projects have codes of conduct; github has very lax rules other than ‘behave on other peoples projects’)

                                                                                                                    The original article has examples of github enforcing their own set of standards.

                                                                                                                    1. 3

                                                                                                                      If GitHub’s own rules are that minimal, then to respond to @marisa’s original point, the relevant distinction isn’t between GitHub and self-hosted projects, but projects with an appropriate (and enforced) code of conduct and those without one. And AFAIK, there’s no reason why more project maintainers who conscientiously apply and enforce a CoC shouldn’t leave GitHub and host their repo, issue tracker, etc. under their own domain.

                                                                                                                      1. 3

                                                                                                                        I agree, but that’s not what the blog post sounded like :)

                                                                                                              2. 2

                                                                                                                I’ll just say that my opinion is that all social spaces are political and therefore require moderation (codes of conduct, etc) in order to be welcoming to newcomers.

                                                                                                                Even if you take this as read, and I think this statement taken in isolation is reasonable, you still need platform diversity because some platforms will settle on codes of conduct which you see as wrong, perhaps even horribly wrong. One example is TERFs: They see trans women as males invading female spaces and will work extremely hard to police that kind of thing, which is inherently unfriendly to trans people. Unless you’re absolutely sure none of the kinds of platform you want to participate in (code hosting, web hosting, issue tracking, etc.) will go a pro-TERF route, you need some kind of backup plan to avoid dealing with them.

                                                                                                                Self-hosting is simply the ultimate backup plan.

                                                                                                            2. 10

                                                                                                              It’s getting annoying to have to keep a list of the services I shouldn’t use due to overly pedantic/prescriptive definitions of sex/gender.

                                                                                                              1. 1

                                                                                                                That is confusing: How sex/gender came into question with Git Hosting?

                                                                                                                Of course it is a social network that tries to map account to social identities. That is the source of the problem: Github being not only a git service but also aiming to be a part of our “lifestyle”.

                                                                                                                1. 19

                                                                                                                  It’s common for queer activists, particularly trans activists, to argue that people who disagree with them on political issues related to sex and gender “think they don’t deserve to exist”, using that specific phrasing. I think this kind of rhetoric is nearly always disingenuous, designed to make it seem like their attempts to censor opposing rhetoric are unquestionably-righteous, rather than themselves a kind of true political censorship. If you think that your own freedom to publish things on the internet is important, then you should try to avoid centralized services like Github precisely because they can be co-opted by political activists (who you might not agree with) who think that advancing their cause and suppressing their opponents is more important than your freedom to publish things on the internet.

                                                                                                                  1. 5

                                                                                                                    I think this kind of rhetoric is nearly always disingenuous, designed to make it seem like their attempts to censor opposing rhetoric are unquestionably-righteous, rather than themselves a kind of true political censorship.

                                                                                                                    There is a difference between censorship and trying to maintain a level of basic human decency in a community.

                                                                                                                    In order for a larger community to function you need to set at least some rules in place to determine what kind of behavior and speech is not welcome. The worst you allow sets the bar. I can think of at least one genuinely “censorship”-free place and we all know how pleasant of a corner of the internet that is.

                                                                                                                    So assuming we can agree that at least some rules are needed, the question – and I’m by no means saying it’s an easy one – is where to draw the line. For me, unsolicited opinions about trans people are very far from simply “disagreeing on political issues”. They’re actively harmful. How can you “disagree” with someone’s lived experience? Is that not, in itself, a form of invalidation, of erasure?

                                                                                                                    The kind of behavior and speech you allow also effectively silences people who would otherwise like to be part of the community by forcing them out or discouraging them from joining in the first place. But somehow, people are more worried about censorship. I’m more concerned about the people who didn’t even get to say anything in the first place.

                                                                                                                    1. 5

                                                                                                                      When I become king, this will be stapled to the doors of GitHub, Twitter, the BBC…

                                                                                                                      I might run out of staples.

                                                                                                                      1. 9

                                                                                                                        I think this kind of rhetoric is nearly always disingenuous, designed to make it seem like their attempts to censor opposing rhetoric are unquestionably-righteous, rather than themselves a kind of true political censorship.

                                                                                                                        Whenever I hear or read someone saying “trans people are too pushy” I mentally substitute them saying “women are too shrill”, or “black people are too uppity”, and I afford their utterance precisely the amount of respect it deserves.

                                                                                                                        1. 9

                                                                                                                          You’re proving @Hail_Spacecake’s point.

                                                                                                                          What you just said can be logically reduced to “whenever I hear someone say x, I substitute that with some y that they didn’t actually say.”

                                                                                                                          This is exactly the kind of straw-manning disingenuous argument style that we’ve all become accustomed to when engaging this specific flavour of political activist.

                                                                                                                          1. 4

                                                                                                                            I’m saying that there’s no qualitative difference in the arguments against trans rights than in past arguments against the rights of women, gays, or people of color.

                                                                                                                            1. 9

                                                                                                                              A criticism of an underhanded debate tactic used by a group is not a tacit denial of that group’s rights.

                                                                                                                              I mean, look at it the other way around: You’re arguing against me. Does that mean you don’t believe I deserve equal rights?

                                                                                                                          2. 4

                                                                                                                            trans people are too pushy

                                                                                                                            But that’s really not what @Hail_Spacecake is saying, is it? He points out that there are queer/trans activists who reduce opposition to the personal attack that one “don’t deserve to exist”, which if it is a “common” thing, would be a legitimate criticism. Other than that, I don’t see how what you say related to the discussion? If anything, you would want decentralised systems so that those who do actually say “X are too Y” don’t control you, or inhibit you in acting according to your intentions.

                                                                                                                          3. 4

                                                                                                                            It’s common for queer activists, particularly trans activists, to argue that people who disagree with them on political issues related to sex and gender “think they don’t deserve to exist”, using that specific phrasing

                                                                                                                            Do they? Do they, really?

                                                                                                                            Might it be that those people who “merely” “disagree with them on political issues related to sex and gender” are actually opposing their existence? Like, say, by supporting bathroom bills - which are aimed at removing gender non-conforming folks from the public eye - by opposing anti-discrimination laws, or by trying to make access to treatment more difficult?

                                                                                                                            Might it be that their “disagreement on political issues” is also, most of the time, accompanied by behaviours that go beyond mere disagreement, and that “I just disagree with [homosexuality|transsexuality]” is never just that?

                                                                                                                            designed to make it seem like their attempts to censor opposing rhetoric

                                                                                                                            Is it really censorship if someone says “you suck” at the Westboro Baptist Church because of what they say? I thought both had a right to express their opinion.

                                                                                                                            Oh, sure, maybe hearing “you suck!” over and over again might make them think twice before opening their mouth.

                                                                                                                            Is that censorship? In any case, is it wrong? And, do you think that LGBT+ people are immune to it?

                                                                                                                            I feel like getting told, over and over again, “trans people are mentally ill”, “there is only two genders”, “they are just doing it for the attention”, might have a chilling effect on that population.

                                                                                                                            1. 1

                                                                                                                              Is it really censorship if someone says “you suck” at the Westboro Baptist Church because of what they say? I thought both had a right to express their opinion.

                                                                                                                              No, but it is censorship for github to bar them from using their SaaS product because of what they say. It’s definitely censorship for trana activists to attack the entire concept of decentralized github alternatives for the specific reason that it would make it harder for github to enforce a code of conduct requiring that they be barred from github for what they say, which is what several people in this thread about decentralized alternatives to github have done. We’re all the Westboro Baptist Church in someone’s eyes, and I don’t want Github making that judgment call for everyone who writes open source software.

                                                                                                                              1. 3

                                                                                                                                It’s definitely censorship for trana activists to attack the entire concept of decentralized github alternatives

                                                                                                                                Where, exactly, are they doing that?

                                                                                                                                Because I’m looking pretty hard at this thread and I can’t seem to find “trans activists attacking the entire concept of decentralized github alternatives”, or doing so because “[decentralized alternatives] would make it harder for github to enforce a code of conduct”.

                                                                                                                                I saw a few people expressing their worry and disappointment, how they felt unwelcome in some spaces because of petty, discriminatory asshats, and how an article starting with “controversy resulting from GitHub censoring” - listing events often described as “those damned S-J-Ws want to destroy open source” - might be read as endorsing alternative spaces as free from censorship and, by extension, free from “SJWs” and “political correctness drama”.

                                                                                                                                As one example of a censorship-free, “SJW”-free spaces is Voat, you can see how it might be concerning to some.

                                                                                                                                There wasn’t much else here, which is both disappointing and funny. Why, “those spaces cannot be censored and might become a free-for-all” sounds more like an endorsement than an attack.

                                                                                                                                We’re all the Westboro Baptist Church in someone’s eyes,

                                                                                                                                Yes, yes, yes. Trivially true, and yet irrelevant.

                                                                                                                                We are all the Westboro Baptist Church in someone’s eyes. We are all monsters in someone’s eyes. We can also avoid trite platitudes such as this one.

                                                                                                                                1. 0

                                                                                                                                  Where, exactly, are they doing that?

                                                                                                                                  https://lobste.rs/s/s0s8fu/why_not_github#c_g1rymt

                                                                                                                                  1. 3

                                                                                                                                    The only argument against decentralization I can see there is this mild statement:

                                                                                                                                    decentralization can be harmful in unexpected ways (see: all of Bitcoin)

                                                                                                                                    And I really don’t see how you determined that @rebecca is a “trana*(sic!)* activist”. I certainly could not from her About page.

                                                                                                                          4. 5

                                                                                                                            It matters when you are a gender/sexual minority and want to avoid being shat on for factors beyond your control

                                                                                                                            1. 7

                                                                                                                              It is easy to people in the majority to say “it’s not that painful to be in the minority”. Until they face another situation, for which they belong to the minority and suddenly change the reaction toward “it’s a nightmare everyday”.

                                                                                                                              We all are in one majority for some topic. We all are in a minority for some other topic.

                                                                                                                              If one hesitate between “Do I include the minority and be frown upon by the majority” and “Do I exclude the minority and be safe with the majority”, then it’s all about asking to ourselves: “in that other case in which I am the minority, would I appreciate to be included by the majority?”.

                                                                                                                              Then the choice becomes obvious to me: treat the 10% minority as a first class citizen and fully give it the 10% it deserves without reserve.

                                                                                                                              1. -1

                                                                                                                                What you pulled off at Alpine Linux was definitely under your control. Its not because your sexual preference or gender identity, its your behavior. I’m wary of you because i know, when we two will ever have an argument, or a disagreement (even on just a technical detail), you’ll throw a tantrum and it will be my fault because i’m presumably a “white straight cis-male” and you are the one oppressed.

                                                                                                                                You, Madam, need a dose of self-reflection.

                                                                                                                                1. 3

                                                                                                                                  Ad-hominem attacks are not helpful to the community.

                                                                                                                                  1. 1

                                                                                                                                    I find it difficult to address individual behavior without it being ad hominem. Throwing a tantrum, facing a backleash and then spinning up a “cant do anything about it” narrative is dishonest. If kids do it, fine, but as an adult you need to take responsibilities for your actions, not blame others.

                                                                                                                          5. -5

                                                                                                                            I’m left-handed. For now, this is just a simple fact which to me is totally natural while others wonder how I am able to do anything at all without fumbling all the time given that they belong to the right-handed majority. When people in that group describe my particularity they use terms like ‘south-paw’. There is a Wikipedia page on bias against left-handedness. So far, so good, I’m left-handed like Kermit the frog is green-hued and have yet to make a song about the fact, unlike Kermit.

                                                                                                                            Give it a few years on the current course and my left-handedness will have turned into an identity marker, yet another artificial boundary separating my clave from all the others. Give it a few more years and there will be left-handed people clamouring for the removal of right-handers who have been caught using ‘derogatory’ terms like ‘south-paw’.

                                                                                                                            I do not relish this prospect as I do not feel the need for others to ‘take up my cause’ in calling for the removal of people just because they think I’m an oddity. Let them think whatever they want, as long as they’re not out in the streets calling for pogroms against left-handed people their words won’t hurt me. I would certainly not want them to be banned from services I use because that would only lead to more balkanisation.

                                                                                                                            Ignore the loud-mouths, their liberty ends where yours begins. The same is true vice-versa, you can not force them to accept your particularity just as they can not force you to accept theirs.

                                                                                                                            1. 25

                                                                                                                              To be clear, there are, in fact, people out in the streets calling for pogroms against lgbt folk, and in many countries they have state backing.

                                                                                                                              1. 27

                                                                                                                                YIKES. This colour doesn’t look good on you.

                                                                                                                                You have not been removed from your family because of your handedness. You have not been fired because of your handedness. You have not been threatened with death because of your handedness. You are not vilified daily because of your handedness. You do not have your personhood disconfirmed because of your handedness. You do not have your sanity questioned because of your handedness. You are not at extremely heightened risk for suicide due to societal and familial rejection due to handedness. etc etc etc etc etc etc

                                                                                                                                as long as they’re not out in the streets calling for pogroms against left-handed people their words won’t hurt me

                                                                                                                                And yet this is tantamount to what we’re talking about.

                                                                                                                                Ignore the loud-mouths, their liberty ends where yours begins.

                                                                                                                                Would that it were so. :/

                                                                                                                                1. 17

                                                                                                                                  you could have used the minutes spent to write this extremely in-bad-faith argument to do literally anything else

                                                                                                                                  1. 2

                                                                                                                                    In what way do you deem my argument to be in bad faith? It is not. The balkanisation of society into identity groups is a threat which needs to be countered or we’ll all end up behind walls glaring at each other.

                                                                                                                            2. 6

                                                                                                                              For other readers’ info: https://help.github.com/en/articles/github-and-trade-controls

                                                                                                                              GitHub themselves don’t really have much choice in the matter, but if you live outside the US, it makes perfect sense wanting to host in your same country, so that you don’t have to deal with two different sets of laws at once.

                                                                                                                              1. 2

                                                                                                                                Author here. Added this link to an update to the article. Thanks.

                                                                                                                              2. 2

                                                                                                                                Interesting, I hadn’t heard about that. Looking into it, though, I do agree it’s a much bigger concern than those mentioned in the article.

                                                                                                                                1. 2

                                                                                                                                  barring users to access their site based on their location.

                                                                                                                                  They and everyone else have to follow the law.

                                                                                                                                  1. 4

                                                                                                                                    While that is true not everyone using GitHub lives in the US. So in many cases it really is using GitHub rather than being more independent causing that particular issue.

                                                                                                                                    Of course that applies to similar central hosting platforms and other countries and therefor laws as well. I’d also not read that as anti-GitHub in particular, but to a large part anti-centralization.

                                                                                                                                1. 9

                                                                                                                                  There are students that say “Why do I need computer science in my life? It’s useless! I shouldn’t have to remember all this crap!”.

                                                                                                                                  Everyone says this about everything in high school, and I don’t even think that it’s wrong, but rather that it could be the point.

                                                                                                                                  I believe the mistake is in seeing high school as a kind of lite-university, when you basically start learning whatever you’re going to study and have as your career later on (which is great for all those who don’t know yet). Instead everything until high school should be seen as general education. This isn’t quite the case, I’m the first to admit it, because of all the stress that is being put on the educational system, from parents who might just want the best, to schools and teachers who have to maintain some grade-average.

                                                                                                                                  I had CS in “high school” (the german variant) too, and while I certainly disagreed with points and procedures in the curriculum (I thought python might be better than java for teaching algorithms, but I’m a bit more reserved about that now), I always held modesty up as a virtue in class. Never say stuff like “Well actually, …” or laughing down at teachers for not knowing about the newest frameworks. I was a tutor at university last year, and seeing people who do think that they are “too good for introductions” is really annoying for educators. Ultimately, I was right in being modest, for there were many things I did learn by not having an attitude that made me thing I was above and beyond all of it.

                                                                                                                                  On a side note, one reason CS theory is nice is that it doesn’t change that much (at least when it comes to the basics, the halting problem isn’t put on it’s head daily).

                                                                                                                                  the string functions from string.h, including the dreaded strtok

                                                                                                                                  I might have missed something, but what’s the issue with strtok. It’s a C function with state, but other than that is pretty average C.

                                                                                                                                  1. 7

                                                                                                                                    I believe the mistake is in seeing high school as a kind of lite-university, when you basically start learning whatever you’re going to study and have as your career later on (which is great for all those who don’t know yet). Instead everything until high school should be seen as general education.

                                                                                                                                    I agree, and I will say this: No part of college is job training. Vocational schools are job training. You can see this because it’s right there in their name, which should be your first clue. A college education is designed to do one thing: Create researchers and academics in an academic field. If someone can apply what they learned in a degree program to practical careers, that’s one thing, but it shouldn’t be the end goal of that degree program.

                                                                                                                                    1. 2

                                                                                                                                      I’m sympathetic to not viewing universities as purely job-training; among other reasons, if you really did want purely job-training, they are a pretty convoluted and inefficient way to deliver it. But I think you go a bit too far in saying that their primary purpose is to create researchers and academics, at least for the bachelor’s degree. Even in the era when many fewer people went to university, it would have been still too few if it were really only aspiring researchers who attended!

                                                                                                                                      The specifics vary by country & era, but if you look at who got university/college degrees in, say, late 19th century America, a lot were on their way to just general “educated person jobs”. Stuff like school teacher or principal, civil servant, tutor, editor, etc. Jobs that came with a certain level of prestige and expectation of being educated beyond high-school level, but not necessarily as a researcher in a specific subject (hence the popularity at the time of broad liberal-arts degrees).

                                                                                                                                      1. 2

                                                                                                                                        Also worth noting that it’s relatively recent that people get a degree in a topic relating to their eventual jobs. Yes, college was about education, and not necessarily just educating researchers, but that doesn’t mean it became vocational.

                                                                                                                                    2. 2

                                                                                                                                      Everyone says this about everything in high school, and I don’t even think that it’s wrong, but rather that it could be the point.

                                                                                                                                      With that quote, I was pointing out the irony that computer science (hs) students say that computer science feels useless for them. They are those who choose to study computer science in school, who either have 5 hours a week or 7 for the “harder” variant, they voluntarily enroll in this programme. Middle school together with the first two years of high school are considered general education, the last two years of high school (the blog post applies to these years) really are considered lite-university. At the end you even get a “programmer helper” license, you can get a job at other schools to become a sysadmin with it.

                                                                                                                                      1. 1

                                                                                                                                        If it’s anything like our system (after 7’th gradewe had to choose a focus between “natural sciences”, “languages” and “social sciences”), then I would guess there will always people who choose “what they dislike the least”, instead of a real interest. Also CS has the “Computer” appeal, and as you mention, computers are used to play games, and there are certainly a lot of people who love to play games.

                                                                                                                                        1. 3

                                                                                                                                          Also CS has the “Computer” appeal, and as you mention, computers are used to play games, and there are certainly a lot of people who love to play games.

                                                                                                                                          Not to mention how many people get into the field by wanting to make their own video games.

                                                                                                                                    1. 4

                                                                                                                                      This is unfortunately the case even in University (here in India, anyway). My bachelor’s CS course is hot garbage. We’re taught from material that dates back to the 90s, with little to no explanation of how this is all practically applied.

                                                                                                                                      I have heard about a teacher who literally gives the code for various algorithms to students to write on their notebooks and learn by heart for the exam. The students don’t have any bloody idea about what is happening […]

                                                                                                                                      Yep. Same here. Most of the crowd in the CS course can’t write a single line of code on their own – and mind you, we’re in our junior year now. I am appalled by the fact that our education system is designed like this, and there’s nothing I can do about it.

                                                                                                                                      1. 4

                                                                                                                                        I had good experiences with my CS degree in America: We got a mix of practical and theoretical, we were expected to know how to code and how to design software by the time we graduated (we even had a semester-long course focused on software design), and it was supported by math courses like discrete math and a moral philosophy course which expected us to take and defend reasoned stands on issues.

                                                                                                                                      1. 16

                                                                                                                                        I saw the disclaimer at the end (“Note: this article is not about Richard Stallman. I have no comment on the recent controversies”), but in my observation a lot of this pedantic nonsense comes from rms, so it’s hard not to talk about one without also mentioning the other.

                                                                                                                                        The question now is, can the movement grow beyond his childish pedantic stubbornness or is it too late?

                                                                                                                                        1. 3

                                                                                                                                          We need someone who’s a bulldog on user rights and software freedom without being childish and, let’s be clear, stubbornly wrong about things which have nothing to do with software. We need to ensure the Overton Window can’t be dragged so far to one side by the proprietary hardware and software companies that the right to repair seems like a radical and subversive idea, and that software which doesn’t track you seems like something only criminals want.

                                                                                                                                          1. 2

                                                                                                                                            RMS has been kicked out because he lost support and protection for being what he is. If not the movement, at least the community already grew beyond RMS, to the point where even his immediate surroundings turned against him and all the shit came out.

                                                                                                                                            I would say there’s still a lot to do in terms of communication and elitism, and this might be an unsolvable problem intrinsic to the hacker ideologies, but at least “pedantic stuborness” won’t be the main problem anymore.

                                                                                                                                            1. 1

                                                                                                                                              The question now is, can the movement grow beyond his childish pedantic stubbornness or is it too late?

                                                                                                                                              How many people have you met who are as childishly pedantic as RMS? The “movement” has been in progress for the last 20-30 years, and we’ve grown well past (and in spite of) Stallman’s word policing so much that it’s become functionally irrelevant. All he had was a pulpit at this point.

                                                                                                                                              1. 10

                                                                                                                                                He’s the one that started the movement and set the tone. You see this in many communities; the guy who starts it sets the initial tone, and this attracts like-minded folks and keeps out people who don’t have/like the same kind of attitude, which creates a snowball effect.

                                                                                                                                                1. 6

                                                                                                                                                  You need look no farther than any lobsters thread about FSF calling android malware or abortion jokes in glibc manual to find people insisting that these are the words which must be used.

                                                                                                                                                  1. 3

                                                                                                                                                    You don’t have to call the Android surveillance platform malware. A rose by any other name, however…

                                                                                                                                                    1. 2

                                                                                                                                                      I’ll admit that some of the biggest loudmouths in the community might be drawn to RMS’ style, but the vast majority of us don’t follow.

                                                                                                                                                1. 3

                                                                                                                                                  In software engineering we have this recurring pattern of rejecting “complex” things, and replacing them with “simple” ones, until it turns out the simple approach doesn’t handle edge cases, has flaws, and after all the shortcomings are fixed, we end up with a complex solution again. There’s nothing wrong with doing it this way (Gall’s Law: “A complex system that works is invariably found to have evolved from a simple system that worked”), but you have to realize you’re not getting rid of complexity with a silver bullet, you’re merely starting from scratch.

                                                                                                                                                  Clear design is software architecture. If your design is uncelar because of “too much architecture” that’s overengineering, YAGNI and just plain old poor design.

                                                                                                                                                  As your requirements grow, your simple architecture will either become a ball of mud, or you’ll find yourself adding the patterns you dread. You can laugh at an AdapterFactory, but once you get a requirement to support several subsystems swappable at runtime, that’s what you’re going to write.

                                                                                                                                                  The benefit of having names for these patterns is clarity. Instead of winging it, you can plan it. You can communicate to new members how things are put together using a shared vocabulary.

                                                                                                                                                  1. 2

                                                                                                                                                    In software engineering we have this recurring pattern of rejecting “complex” things, and replacing them with “simple” ones, until it turns out the simple approach doesn’t handle edge cases, has flaws, and after all the shortcomings are fixed, we end up with a complex solution again.

                                                                                                                                                    That’s the good outcome. The bad outcome is replacing a working complex system with a simple one which doesn’t have all the functionality, and then declaring that nobody needs to do anything your system can’t do.

                                                                                                                                                    As your requirements grow, your simple architecture will either become a ball of mud, or you’ll find yourself adding the patterns you dread.

                                                                                                                                                    Indeed. The worst designs are from people who think simplicity and extensibility are enemies. A good simple design allows more components to be added easily, and can be turned into a good complex design as the environment dictates; this indicates a clarity of vision beyond just making something simple.

                                                                                                                                                  1. 3

                                                                                                                                                    Have you considered using formal methods? It’s fast, it’s like drawing diagrams, except you can test the diagram itself for bugs, too.

                                                                                                                                                    1. 3

                                                                                                                                                      I haven’t met a formal method that was less work than writing the software and testing it.

                                                                                                                                                      1. 4

                                                                                                                                                        There was a great talk at strangeloop about this! Author found, via a bit of modelling, that a year of development and testing on a nearly complete API had to be thrown out. Another formal methods talk at the same conf was similar, a few days of modelling got her to an architecture that an audience member later told her took them months to iteratively discover.

                                                                                                                                                        I’ve had similar success, with modelling catching multiple serious, subtle bugs in several different systems. And even on smaller systems, you can catch bugs in half an hour that world-class testers can’t find, even knowing there’s a bug.

                                                                                                                                                        1. 2

                                                                                                                                                          My favorite example of how you can sometimes find deep bugs with low effort is Amazon’s paper (pdf). First, they note code for services as complex as theirs has way too much detail to review its inherent design. TLA+ let them specific just what they needed. Second, the model checker started catching bugs their reviews and testing missed. My favorite “contained 35 high-level steps.” I’m very interested in anyone’s testing proposal that will quickly find bugs with 35 steps into one or more programs.

                                                                                                                                                          Then, there’s all the static analyzers with low false positives. They are using automated application of formal methods. They’re finding piles of bugs out there with some doing it ultra-fast. CompSci groups also typically found bugs in popular F/OSS for each tool they created. The performance-oriented ones like Saturn can run checks over millions of lines of code. A programmer writing tests couldn’t hope to keep up.

                                                                                                                                                          I still see formal methods and testing as complementary, though. Also, I think we should automate testing much as possible.

                                                                                                                                                        2. 1

                                                                                                                                                          It’s fast, it’s like drawing diagrams

                                                                                                                                                          Except it’s not and I believe the main goal of drawing diagram is not to find bugs (How do you even define a bug in software architecture anyway), but to document a problem, its context and its solution. In my experience, this usually involve many quick iteration and brainstorming. You won’t get any better than a whiteboard and oral discussion to go through simple architecture design.

                                                                                                                                                          There might be benefits to format methods, but selling it as fast and just like drawing diagrams is dishonest.

                                                                                                                                                          1. 3
                                                                                                                                                            1. It’s not “dishonest” because I genuinely believe it. It’d be “dishonest” if I thought otherwise but was intentionally lying.
                                                                                                                                                            2. Formal methods has a lot of variety. I’ve written decision diagrams and state machines on a whiteboard before, which clarified a lot of design decisions.
                                                                                                                                                            3. OP is also documenting things and doing a writeup to share around with the company. It’s not just whiteboard and oral discussion. I agree that the FMs I’m most interested in are too heavyweight to replace whiteboarding, but they’re also not too heavyweight to replace informal English documentation.

                                                                                                                                                            How do you even define a bug in software architecture anyway

                                                                                                                                                            If the proposed solution doesn’t solve the problem or satisfy necessary constraints.

                                                                                                                                                            1. 1

                                                                                                                                                              How do you even define a bug in software architecture anyway

                                                                                                                                                              You define what correctness means, you define the architecture, and you check it against the definition of correctness. Many tools look for logical inconsistencies, too. Some tools look like a programming language with annotations like contracts that feed into checkers of some sort. Some can look like diagrams showing control flow or order of things. There’s formal notations that check for order violations. The information-flow security tools might scan the combo of variables and control flow to look for leaks.

                                                                                                                                                              Quite a few things you can do that’s easy to represent on a whiteboard. You could even let people draw with compatible notations on a whiteboard while something kept it in sync with software on a computer. The humans do what they’re good at. The computer does what it’s good at. If the method has code generation, you get an executable prototype to prod at, too.

                                                                                                                                                          1. 18

                                                                                                                                                            Maybe the word “architecture” means a different thing to me, but when I read the title I thought “But ‘Clear and Simple Design’ is an architecture!” Nonetheless I mostly agree with content of the article.

                                                                                                                                                            My go-to phrasing to junior engineers who seem inclined toward being a Pattern Taxonomist is roughly:

                                                                                                                                                            Patterns do not come from a buffet, having been prepared by someone else.
                                                                                                                                                            Patterns are emergent in the course of solving a problem, and are a communication tool.

                                                                                                                                                            Patterns are jargon, but jargon is itself an emergent property of any community or team over time. It is not a question of whether you will use jargon. Instead, it is a matter of continual practice to ensure that jargon’s use as a communication tool is not eclipsed by other uses. I am not a linguist, but I would not be surprised to find that both the emergence of jargon, and this tendency toward inversion, are well-studied.

                                                                                                                                                            Most commonly, I have seen this inversion of the value of jargon (or a soft-circled collection of jargon) when it begins to be used in a manner that limits discussion, rather than being used for its explanatory power.

                                                                                                                                                            1. 7

                                                                                                                                                              Most commonly, I have seen this inversion of the value of jargon (or a soft-circled collection of jargon) when it begins to be used in a manner that limits discussion, rather than being used for its explanatory power.

                                                                                                                                                              So well phrased. This was actually one of the reasons that triggered writing this article. We had a distributed systems expert join the team, who was also a long-time architect. A junior person invited him to review his design proposal on a small subsystem. This experienced engineer kept correcting the junior engineer on how he’s not naming things correctly and mis-using terms. The design was fine and the tradeoffs were good and there was no discussion about anything needing changes there, but the junior engineer came out devastated. He stopped working on this initiative, privately admitting that he feels he’s not experienced enough to design anything this complex and first needs to read books and learn how it’s done “properly”.

                                                                                                                                                              This person had similar impact on other teams, junior members all becoming dis-engaged from architecture discussions. After we figured out this pattern, we pulled this experienced engineer aside and had a heart to heart on using jargon as a means to prove your smart, opposed to making design accessible to everyone and using it to explain things.

                                                                                                                                                              I see the pattern of engineers with all background commenting and asking questions on design documents that are simple to read. But ones that are limiting due to jargon that’s not explained in the scope of the document get far less input.

                                                                                                                                                              1. 5

                                                                                                                                                                but when I read the title I thought “But ‘Clear and Simple Design’ is an architecture!”

                                                                                                                                                                Same here. But go on any “software design” interview in most tech companies and you’ll be expected to suck ornate flying castles out of your ass. Saying you’re not going to complicate the design until you see actual logs telling where it’s failing will just land you a silent no-pass.

                                                                                                                                                                1. 4

                                                                                                                                                                  “But ‘Clear and Simple Design’ is an architecture!”

                                                                                                                                                                  It’s the desired goal of software architecture, more like.

                                                                                                                                                                  Like how “Be Good” isn’t a philosophy, it’s the desired end goal of moral philosophy, which attempts to define “good” and then tries to figure out how to be good. Just jumping to the desired end goal isn’t very enlightening.