1. 6

    The article linked within, C Is Not a Low-Level Language, was a very interesting read.

    1. 7

      I have spent a solid couple of hours trying to disable the various and sundry popups that occur in Windows, and have yet to be 100% successful. And Windows Update seems to install more over time.

      1. 9

        Same. Not having a unified system notification at this point is very frustrating. It’s little wonder I see people get notifications on screen sharing presentations all the time. I think after 3 months I’ve finally got all the audio notifications stopped.

        The wacky control panel mess is bizarre too. How many different ways are there to change a setting and what window style will I find it?

        1. 2

          Since a month or so ago I constantly get a popup notification that tells me my current settings (“no notifications!”) might cause me to miss notifications. I try to turn that off but the only option seems to be to turn others on.

          Drives me nuts. I actually liked Windows Vista and still have a retail disc, maybe I should just put it on lol.

          1. 1

            I have to run Windows in a VM for some games. The thing is completely throwaway and sandboxes so I don’t care much for security. Windows is patching it all the time and shows pop ups every day about enabling firewalls.

            I will eventually break down and enable all the stuff it suggests just to make it shut up. But I don’t want to learn about Windows internals because the only time I open the VM is to play the game.

            I typically run MacOS and they aren’t perfect, but at least when there’s a notification there’s an explanation of what it is, what to do, and to mute it. With Windows there’s only a notice and a single x to close that specific event. No link to fix it. No description of what specifically to do if I don’t know where the Windows firewall settings are located. No “I don’t care never tell me again” or even “shut up for a week.”

            It probably bugs me most because I can’t figure out what their design philosophy is and I keep trying to figure it out like an attractive crazy person on the train with me.

          1. 3

            it’s ironic that ruby, which is usually all about the syntax sugar, has refused to add a pleasant native syntax for type annotations, whereas python, which is typically keen on not adding syntax, has embraced them and continues to make improvements. i really hope matz and co reconsider this.

            1. 4

              It is actually in line with the rest of Ruby. Features like this often come without syntax - check for example Refinements or the number of ways you can control manipulate the module hierarchy through methods.

              1. 3

                Python and Ruby exist in different levels of the Chomsky Hierarchy, and that matters. I would wager that devising a syntax for type annotation in Ruby is basically impossible, or at the very least would suck all the joy out of writing it.

                Matz and the ruby-core team are pursuing a tool-based solution for this; writing types by hand will likely be a rare thing in 3.0.

              1. 24

                Copy paste is still horribly ‘broken’. I guess <Cmd>C isn’t a thing on Linux and <Ctrl>C has a different meaning in terminals, so I can get with that. And I guess there are tricky/valid historical reasons for having two different clipboards, but for the end user, it’s just shit not being able to copy in one app and paste in the next if you closed the former.

                I’ve moved between Windows, Linux, and macOS in my career with enough time to really get used to each, and the mac approach of using cmd for UI shortcuts is just a superior choice for this reason. It pains me that this isn’t possible in Linux.

                1. 6

                  Haiku (and, I suppose, BeOS back in the days when I did not even have a computer) went in the right-ish direction of using Alt for everything GUI. It’s sad to see Linux GUIs to be influenced by Windows so much.

                  1. 6

                    Another added benefit of using cmd for UI shortcuts is that it frees up the control key for Emacs style shortcuts. The fact that macOS supports these out of the box is one of my favorite features.

                    1. 11

                      MacOS also makes it easy to remap Control to the correct key position (aka the so-called “caps lock” key, which has inexplicable prominence on most modern keyboards).

                      1. 2

                        The same goes for Linux (console) and ‘Linux’ (X11 etc). Keys can be remapped more or less at will, if you want to use AltGr or Alt as a ‘command’ key you’re free to do so. The main problem here is that everyone and his dog will end up using a different strategy, e.g. I use a lot of Shift-Left_Alt-X combinations for launching sessions on different hosts while those same combinations might do something totally different on your systems.

                        1. 1

                          It’s not impossible on Windows either but there’s no built-in way, instead you have to hack the registry or use 3rd party tools.

                      2. 5

                        Even if I do say so myself, since I wrote it, I use appmodmap to dynamically remap the keyboard depending on the application. Then I can still use my Mac muscle memory on a Mac keyboard with my Talos II.

                        https://github.com/classilla/appmodmap

                        1. 1

                          How’re you finding the Talos II? I laugh when I see “a price that won’t break the bank” on their site, but I still desperately covet one.

                          1. 2

                            Well, yes, the sticker shock, but I like it a lot. Very little is missing of what I need a computer to do, performance is well within the Intel ballpark, and it satisfies my personal goals of more owner control and materially supporting viable alternatives to x86.

                      3. 3

                        It pains me that this isn’t possible in Linux.

                        This is possible, the WM I use (i3, and now sway) supports setting a modifier key. IIRC the default is the ‘windows’ key.

                        Linux is the kernel, and there are a lot of desktop environments and window managers that run on Linux…

                        1. 0

                          People say “Linux” to mean much more than the kernel. Don’t be That Guy.

                          I’ve been using Linux for 20 years, trust me it ain’t that simple. Yes you can set some nonzero percentage of UI shortcuts to use another modifier, but it will not be comprehensive. There will always be one more thing that doesn’t behave correctly, death by a thousand papercuts. Linux is simply not capable of making a sweeping change like this in a comprehensive way.

                          1. 3

                            What you refer to as “That Guy” is, in fact, “GNU/That Guy”…

                            1. 2

                              People say “Linux” to mean much more than the kernel. Don’t be That Guy.

                              Sure, but if you make ridiculous generalizations like “Linux cannot do XYZ”, then you need to be more specific about the userspace you used… because most of the time XYZ can be accomplished on a Linux-based userspace.

                              Linux is simply not capable of making a sweeping change like this in a comprehensive way.

                              I disagree. This is a userspace problem, and if the right person were motivated to solve it, it could be solved in some UI toolkit, etc. Will all distros adopt it? Who cares, there are different distros that are all different for a reason.

                              1. 1

                                you need to be more specific about the userspace you used

                                No, I don’t because it literally doesn’t matter. The fact that there are a multitude of UI systems to choose from, that don’t share a unified system of configuration, is the crux of the problem. There is no way to enforce any HIG standard in a Linux UI.

                                I disagree. This is a userspace problem, and if the right person were motivated to solve it, it could be solved in some UI toolkit, etc.

                                Great, what about all the other toolkits? How are you going to generalize this solution to work with all graphical programs?

                                You don’t. It’s fundamentally impossible on Linux.

                          2. 2

                            Select with left mouse button, paste by clicking the mouse wheel. No keyboard needed.

                            1. 3

                              The point OP is making is not that it’s easy to copy and paste, but that in macOS you have two “layers” of keyboard shortcuts. Most application shortcuts will use Command (Cmd+C to copy, Cmd+C to paste, Cmd+T to open a new tab, Cmd+A to select all, etc), leaving Control to give text commands (Ctrl+A to go to the beginning of the line, Ctrl+E to go to the end, etc, just like in Emacs).

                              In theory, this should also be possible on Windows and Linux by using Control and Alt, but in these OS almost all shortcuts use Control, reducing the amount of key combinations that an application can use as shortcuts.

                              1. 1

                                Many window manager allow defining and using extra modifier keys.

                                On a side note, modifier keys are proven to be slower than sequential keypress sequences and also more difficult to remember.

                              2. 2

                                A keyboard is very often much faster and accurate than a mouse.

                                1. 1

                                  Not necessarily, with the obvious exception that literally typing is certainly faster with a real keyboard than an on-screen keyboard, but the task of choosing an option is probably always faster on a mouse.

                                  1. 1

                                    We’ve done a cool $50 million of R & D on the Apple Human Interface.

                                    The original Ask Tog piece was published on 1989, and the quoted study may have been done some time before that. It needs to be asked how relevant that study is, especially when that study can’t be either found or replicated.

                                    Further, it is unclear whether the quoted study address the improvement when user performs the same action multiple times as to make it a finger memory.

                                    Here is a more recent study (2014), which shows that keyboards are fastest for often used commands while toolbars are better for infrequently used ones.

                              3. 1

                                FWIW I think it will be. With Canonical & Redhat saying “Gnome is THE desktop” I think you’ll see better across the board integration of things like this.

                                I don’t love that they chose Gnome (KDE fan :) but I AM happy they chose a horse. Maybe if they can make Gnome better enough, I’ll stop caring :)

                                1. 1

                                  I hope you’re right, but I’ve been using GNOME since the 1.x days and I’m not holding my breath.

                                  1. 1

                                    It’s a matter of money and man hours, that’s why I think things will change for the better. Open source is not free. It takes go juice to evolve in positive ways.

                                2. 1

                                  The USB HID standard actually provides (see https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf, search for “Keyboard Copy”) for a usage code that means copy (and friends). So you could in theory create a keyboard that has shortcuts for copy/cut/paste, universally.

                                  I say in theory because I have no idea if all operating systems handle it properly.

                                  1. 1

                                    I actually have an old Sun Microsystems keyboard that has separate keys for cut, copy, paste etc.

                                    here’s a picture of a similar one (though not identical to mine close enough) https://duckduckgo.com/?q=sun+microsostems+keyboard&t=ffab&iax=images&ia=images&iai=http%3A%2F%2Fxahlee.info%2Fkbd%2Fi%2Fkb%2Fsun_keyboard_left.jpg )

                                    doesn’t work great on Windows though. it works, just not amazingly.

                                    1. 3

                                      Wow, that’s wild. It even has a button for giving folks props on forums. Sweet!

                                      1. 1

                                        wait, how can it work less than completely? Does it copy and not paste? copy only sometimes?

                                        1. 2

                                          I worded that poorly, the extra keys require a separate driver install on Windows or they will do absolutely nothing. On Linux at least the key presses are forwarded to programs, even if they don’t know how to interpret them.

                                  1. 4

                                    I am very concerned about Internet surveillance, and often do go to great lengths to keep my data private.

                                    But this is a very strange hill to die on. I don’t get it

                                    1. 3

                                      I’m in the same boat. Does anyone know if there’s an article somewhere that describes why this was such a bad thing? As far as I’m aware, third party tracking is incredibly common across the web.

                                      1. 3

                                        I think that the problem wasn’t so much in the nature of the tracking, but in the kinds of people that GitLab is targeting - those opposed to any sort of monitoring on philosophical, instead of practical, grounds. Those people wouldn’t usually even rely on a company to do git hosting for them, and instead run a git server on a VPS. For them, GitLab’s devops tools and (apparent) commitment to privacy seemed good enough that they decided to give it a try - and when GitLab started planning to implement analytics, you heard them complain. This doesn’t happen (as much) with Google, because in addition to them just being an unapologetic nightmare for privacy, the users who would be complaining have already moved to better platforms.

                                    1. 31

                                      I’d like to comment on another meta-point in the article.

                                      The trouble with this type of platform restriction is that the opinions do not go away. Those who are removed from social media platforms often feel ostracized, angry and perhaps even vindicated in their persecution. They take to other platforms like Gab and Voat, where other like minded people validate those opinions. They leave larger Internet communities with a variety of voices that could potentially steer their own opinions in a more moderate direction.

                                      This was a perfectly reasonable and effective position on content moderation until recently. But what we’ve learned about internet communities in, say, the past decade, is that sunlight is not always the best disinfectant. Trolls and Nazis and etc. will reliably ruin platforms if left unchecked, and even swing moderates into their camp; the idea that they can be made more civil by exposure to cultural norms is simply not borne out by the evidence. Consequently this sort of free speech idealism is naïve to the point of being unethical. Free speech isn’t an unimpeachable virtue, or some end to work towards. It’s a means, a tool, that we’re obliged to wield to just ends.

                                      Furthermore, getting the opinions to go away isn’t really the goal. Laws don’t make crime disappear, but we still have them, because they tend to have positive outcomes on their societies. Similarly, deplatforming doesn’t make bad ideas disappear, but it does reduce their availability and accessibility. Deplatforming works, let’s keep doing it.

                                      1. 11

                                        Does Deplatforming work and what do you mean by work? Brendan O’Neill has some very good points about how things we currently consider ‘progressive’ have been deplatformed in previous centuries. https://www.youtube.com/watch?v=BtWrljX9HRA

                                        Furthermore, I’d suggest reading The Coddling of the American Mind, which talks a lot about the current call-out culture in academia, that leads to harming the relationship between students and professors; preventing people from being able to discuss difficult topics and ideas without fear of retribution or being called Nazis or White Suprematists.

                                        Trolls and Nazis and etc. will reliably ruin platforms if left unchecked, and even swing moderates into their camp

                                        One thing I didn’t really cover is the issue with anonymity. That is another problem space (and I’m working on a full post on it). Anonymous networks are really … interesting … as far as content (4chan, 8ch and other chans .. Reddit/Voat/HackerNews, ActivityPub/Fediverse stuff). People act very different anonymously, which is one reason Facebook and Google+ pushed so much for only having real names/people, and why Reddit/Twitter require so much moderation to make them more (advertiser) “friendly” platforms. There are a lot of complexities there to unpack.

                                        1. 7

                                          If you get to link to YouTube and pop politics books, then I get to link to https://slatestarcodex.com/2017/05/01/neutral-vs-conservative-the-eternal-struggle/ and https://slatestarcodex.com/2015/08/15/my-id-on-defensiveness/ which makes a pretty reasonable argument that there is no way Voat could have possibly gone right.

                                          Or, to summarize it another way, the same way the distinction between consumer tech and enterprise tech doesn’t exist, the distinction between “separate online communities” doesn’t exist either. Stuff that happens on one will have an effect on the other, inevitably. The discourse on Twitter (including the effects of their algorithms) leaks onto Lobsters and back onto Twitter again; you can have some control over your little corner, but you aren’t actually separate.

                                          1. 16

                                            Does Deplatforming work and what do you mean by work?

                                            By “work” I primarily mean that fewer people get exposed to hate speech at a macro scale, especially inadvertently. But also that fewer people get recruited into hate groups, especially for the lulz. And also that hate speech propagandists, robbed of some of the dopamine from engagement on larger platforms, are discouraged from continuing. And yes, all evidence suggests that deplatforming works by these metrics.

                                            People act very different anonymously,

                                            Again, this was a truism like 10 years ago, but we’ve since learned that, anonymous or not, the internet tends to create echo-bubble environments that bring out the most extreme and frequently negative properties of the human condition. There’s an abundance of grotesque, racist, whatever nonsense written by people on Facebook next to their real names. There aren’t any consequences for it, really, so why not?

                                            1. 7

                                              By “work” I primarily mean that fewer people get exposed to hate speech at a macro scale, especially inadvertently

                                              I think this gets into dangerous territory. We should be exposed to things we don’t like or agree with. Having friends of different political backgrounds and ideological persuasions, and honestly talking about tough issues, is how we grow and change over time. I’m not for bullying, but I’m also not for safetism. It’s a hard line to cute and much harder on-line than in real life. Like the Brendan O’Neill debate I posted, there was a time when people who thought homosexually wasn’t wrong or that we didn’t need god or that the Bible should be translated into languages that could be read by everyone, were de-platformered, marginalized and told their ideas were greatly offensive. To say which ideas are good or bad for society change greatly over time. I know my views on what is just and unjust have changed significantly from my 20s to my 30s.

                                              Yes there are trolls who just shit post. But there are also a lot of true believers, who went cut from a platform they feel they’re making reasonable comments on, will go further into their cause and more radical. We saw that when Anita Sarkeesian deleted all the YouTube comments on her videos and locked them. Yes there were typical garbage YouTube comments, but there were also a lot of reasonable arguments. You delete all of those, and people tend to go harder in and be less reasonable. De-platforming lets people grab onto the same victimhood culture as those who de-platform; the “my views are being oppressed” rubbish instead of “let’s talk about things and maybe agree to disagree.”

                                              I think I understand where your coming from though. I think these topics are pretty complex though, and they can get into some really gritty details, for example the recent Stack Exchange / pronoun / code of conduct fiasco. Those are the type of debates that quickly get muted everywhere because we’re simply to afraid to have them. They then show up as much more polarized and much more extreme hard left/right lines when they appear on Reddit/Gab/Voat/etc.

                                              1. 16

                                                We should be exposed to things we don’t like or agree with.

                                                Sometimes yes, sometimes no.

                                                It’s fine to say that Chicago-school economists should be exposed to Austrian economic theory. Or that Baptists should be exposed to Lutheran theology. That Ford owners should be exposed to GM fans. That NIMBYs should be exposed to YIMBYs.

                                                It’s not fine to say that a rape survivor should be exposed to the gloating of their assailant after being found not guilty on a technicality. Or that a black school child should be exposed to a Klu Klux Klan rally on their walk home from school. These things are certainly and technically “different ideological persuasions” but no good is advanced by enduring them.

                                                So there’s definitely a line where the ideal of free speech, or the marketplace of ideas, or whatever, is insufficient to justify the outcome. We’re just debating where that line is.

                                                It used to be that we could talk about white supremacy or Nazis or whatever pretty freely, because nobody (or very very few people) were actually threatened by those things. But the context has changed, white supremacists are marching in our streets with literal torches, and lots of people have very good reason to be afraid of what might come next. The line of what’s acceptable to deal with, in this particular space, has moved. So, no, at a societal level, we shouldn’t be forced to confront this particular “thing we don’t like or agree with” in deference to an abstract ideal. We are justified in stomping it out, like an immune system response, with tools like deplatforming, and whatever others are effective.

                                                1. 16

                                                  we’re simply to afraid to have [debates]

                                                  This is not a fact. This is a right-wing trope that’s not based on reality all that much.

                                                  No one is “afraid of debate”. Actually people are just tired of having to prove that they deserve to exist, to be themselves, to love who they love, and so on. These things should not be up for debate.

                                                  De-platforming lets people grab onto the same victimhood culture as those who de-platform

                                                  They grab onto that either way.


                                                  Highly recommended listening:

                                                  1. 15

                                                    We should be exposed to things we don’t like or agree with. Having friends of different political backgrounds and ideological persuasions, and honestly talking about tough issues, is how we grow and change over time.

                                                    Fascists don’t argue in good faith. You aren’t going to change minds in a positive direction by platforming them. What you will do is tacitly promote the idea that genocide is a valid topic of disagreement, and help them recruit.

                                                    Deplatforming them works.

                                                    1. 4

                                                      Milo wasn’t wrecked by deplatforming. Milo was wrecked by defending pedophilia and directly working with neo-Nazis, which is what made his right-wing supporters turn on him. The “Deplatforming stopped Milo” narrative only appeared like a year later.

                                                      1. 3

                                                        The “Deplatforming stopped Milo” narrative only appeared like a year later.

                                                        At the exact point that Milo said that he no longer had an audience enough to sustain him, and had to work on other projects for money.

                                                        You’re saying that he was “wrecked by defending pedophilia and directly working with neo-Nazis, which is what made his right-wing supporters turn on him”, which is in and of itself, a form of deplatforming. Whether or not he did it himself is irrelevant to the fact of it being deplatforming or not. It’s like saying “he didn’t drive a vehicle, he drove a truck”.

                                                        1. 1

                                                          I believe that those incidents are what motivated his deplatforming, and the decline in audience he suffered was multiplied by his loss of access to a large platform.

                                                        2. 1

                                                          Fascists don’t argue in good faith.

                                                          And everyone is a fascist who doesn’t agree to your agenda. You can be “deplatformed” from the largest mastodon instance if you have the “wrong opinion” on funding domestic terrorist organizations (the antifa), and voice it.

                                                          1. 1

                                                            You can be “deplatformed” from the largest mastodon instance if you have the “wrong opinion” on funding domestic terrorist organizations (the antifa), and voice it.

                                                            If I’m reading between the lines correctly, here, and the implication is that you think a group literally called Anti-Fascists are terrorists, then I don’t think you really get to call foul when people judge that to be roughly aligned with fascism, eh?

                                                            1. 0

                                                              there was a poll:

                                                              • you support the antifa (that is a terrorist organization in the USA!) with money
                                                              • you are a fascist

                                                              I think the antifa an their supporters are the fascists of these days. The binary rhetoric, the violent opression of different opinions, etc. are just as bad as what they claim to be against.

                                                              Regarding de-platforming: I was born in a communist dictatorship. Lots of voices and opinions were “deplatformed”, in the name of the greater good, “antifascism”. For example punk music, and punks, who are now thought to be a left wing/left leaning genre, were just as much enemies of the “left wing” state… I believe discourse is necessary and nobody should be de-platformed, as long as their actions are legal, and when they are illegal, they should be regardless of political stance.

                                                              1. 1

                                                                I think the antifa an their supporters are the fascists of these days. The binary rhetoric, the violent opression of different opinions, etc. are just as bad as what they claim to be against.

                                                                Well, that’s ludicrous.

                                                                1. 1

                                                                  That’s also an opinion, and I’m glad to hear that. Now I won§’t go to de-platform you for disagreeing with me. It should be this simple. Unfortunately it is not.

                                                            2. 0

                                                              Case in point.

                                                        3. 1

                                                          By “work” I primarily mean that fewer people get exposed to hate speech at a macro scale, especially inadvertently.

                                                          Personally I’m totally uncertain on this topic, but seeing that banning people from reddit has made them relocate to voat, banning threads on 4chan has made them relocate on infinitychan. There they gather, organise, produce more propaganda and create more stories. Would they have done so on the previous platform? probably. What I don’t know is if it would be better or worse. What I find even more perplexing is that if one, “edgy”, community gets band on one site, it gives a push to all of them. Ban racists on facebook, and reddit will use it to push their narrative.

                                                          I really don’t see a solution, but what’s wrong it to claim that deplatforming is a step forward. That’s like saying that just throwing your rubbish out of the window is fine, instead of putting it in the recycling bin.

                                                          1. 5

                                                            Banning people from reddit has made them relocate to voat, banning threads on 4chan has made them relocate on infinitychan

                                                            I don’t care about the true believers. Let them fester in their holes. I care about the thousands or millions of passersby, regular visitors to popular sites like Reddit or (less so) 4chan, who get exposure to these hate cultures when comments by the trolls are co-mingled with rational people in unrelated articles, or when racist memes are mixed in with cat videos on /r/all. Reducing that exposure is a huge net win and worth doing.

                                                            1. 2

                                                              A study found the effect of Reddit’s bans was to reduce the incidence of hate speech there, including from individuals who’d formerly participated. (I’m not aware of research for or against the narrative you quoted. Maybe somebody has more sources.)

                                                              1. 2

                                                                But that’s my point. You just need a few “true believers”, and enough people to trust or follow them. They will (and have) return, and they will be (and are) stronger. If they don’t get in through the front door, they will use every crack in the wall to slowly infest any community from the fringes inwards. It’s just deferring a problem that was not created in the space of moderation and curation.

                                                                Again: This is not an argument for or against banning. I’m just saying nothing works, and that should be consciously realised.

                                                                1. 6

                                                                  You just need a few “true believers”, and enough people to trust or follow them.

                                                                  “Deplatforming” takes away the second part.

                                                                  People who had huge followings on major social-media sites suddenly have far far smaller followings when kicked off, because they no longer have the major sites’ algorithmic “suggestion” systems giving them free promotion to millions or even billions of eyeballs. And that switch, from having new people passively funneled to you en masse by the original platform, to needing your existing audience to actively follow you somewhere else and actively promote you to people not already on the new platform, typically comes with a multiple-orders-of-magnitude drop in reach and following.

                                                                  I believe that’s also in part why reddit’s “quarantine” feature exists; one effect of quarantining is that it yanks the subreddit out of automated promotion/suggestion by the site’s algorithms, which makes it far harder to recruit across the site through getting things splashed onto random users’ home-page views of reddit.

                                                                  1. 2

                                                                    People who had huge followings on major social-media sites suddenly have far far smaller followings

                                                                    Sure, when it’s about individuals you’re concerned about then de-platform as much as you want to. But watch out, not that this one is gone, three others are trying to fill the hole he left behind. But seriously, a twitter account, a youtube channel or whatever is just an appearance. Anyone who used image boards knows how much even a small group of creating individuals, even if nobody ever finds out who they are, can do. The site can be shut down, but they can just as easily reconstitute themselves anywhere else. Maybe it takes a while, but just pushes people further.

                                                                    1. 3

                                                                      But watch out, not that this one is gone, three others are trying to fill the hole he left behind.

                                                                      You say these things as if they’re just natural ways of the world, as if they’re true, but they’re just not.

                                                                      When /r/fatpeoplehate was banned why didn’t /r/largepeopleanger and /r/hatethosebigfolks and /r/hatefats spring up in its absence? When Cloudflare deplatformed 8chan why didn’t 16chan and 32chan and 64chan immediately rise up from the ashes? When what’s-his-face who did all that heinous shit to the Sandy Hook parents was banned from all his vlogging and podcasting channels, why didn’t he and his fans just create dozens more?

                                                                      When you de-platform someone or something that’s built a substantial audience, the creator and the audience have to do a lot of work to build themselves back up to their previous levels. And it’s a lot harder when the platforms that drive the highest engagement and acquisition numbers won’t host your shit anymore.

                                                                      1. 3

                                                                        When /r/fatpeoplehate was banned why didn’t /r/largepeopleanger and /r/hatethosebigfolks and /r/hatefats spring up in its absence?

                                                                        As far as I remember, there were a few subreddits that came up to replace them, but all of them were shut down in their infancy. But then again, you’re confusing the forum for the people, they didn’t disappear. It’s internet pre-history by now, but it was one of the rallying calls leaving reddit, and was used as an example for how “SJW” are taking over. This lead to voat, 4chan exodi, and still is part of their impulse.

                                                                        When Cloudflare deplatformed 8chan why didn’t 16chan and 32chan and 64chan immediately rise up from the ashes?

                                                                        Oh there are millions of image boards that are trying to fill their absence, but that takes a bit. infinitychan also had to prove itself after all. But you’re right, until then, they are weakened. And if all you’re after is short term goals, good job. But again, the people, the ideas, the images are all still there, preparing to regather. And I’ll bet that this will incentivise more people than ever before to look into distributed alternatives, that will be harder to “de-platform”, because just like the users, they will have no platform they rely on.

                                                                        When you de-platform someone or something that’s built a substantial audience, the creator and the audience have to do a lot of work to build themselves back up to their previous levels.

                                                                        You’re doing it again. I’m not talking about individuals or “content creators”, they are worthless. It’s the same kind of thinking that leads people to believe that if Hitler were killed in WW1, there would’t have been any nazis. It’s an underestimation and fatally a lack of understanding what is being dealt with.

                                                                        1. 2

                                                                          I’m not talking about individuals or “content creators”, they are worthless.

                                                                          What are you talking about, the ideas themselves? The movements?

                                                                          Movements are only as strong as their adherents, the people behind them. Making it harder for the movements’ content creators to reach and engage audiences is nearly as good as somehow stopping people from being bigots in an abstract sense. It’s not the same but the net effect on a society is approximately equivalent. And more to the point, it’s one of the few ways that a society has traction in fighting these antisocial contagions.

                                                                          1. 2

                                                                            What are you talking about, the ideas themselves? The movements?

                                                                            Am I really that incomprehensible? Is what I am saying that foreign? I’ll quote myself:

                                                                            banning people from reddit has made them relocate to voat, banning threads [made by… people] on 4chan has made them relocate on infinitychan

                                                                            The site can be shut down, but they can just as easily reconstitute themselves [ie. the community, of… people] anywhere else. Maybe it takes a while, but just pushes people further.

                                                                            But again, the people, the ideas, the images are all still there, preparing to regather

                                                                            The actually existing people behind these posts. Do you think the harassers and trolls aren’t driven by conviction? Do you think racists think what they do because they are bored? These “movements” are movements of “content creation”, not lead by them. Those parts of these committees that people are always talking about, would be the last to give up because of inconvenience. They literally think there is a world conspiracy against them. It’s just not that simple.

                                                                            It’s not the same but the net effect on a society is approximately equivalent.

                                                                            But again, t e m p o r a r i l y.

                                                                            1. 2

                                                                              Do you think the harassers and trolls aren’t driven by conviction?

                                                                              Yes, I think conviction merely provides the rationale for what they’re doing, I think the vast majority of their actual output is primarily driven by dopamine responses from audience engagement. And if you take that away, conviction alone won’t be enough for them to meaningfully continue. Not that it matters: if they want to bleat into the void and have nobody hear them, that is a complete victory from my perspective. I’m concerned about macro-scale effects on society.

                                                                              Do you think racists think what they do because they are bored?

                                                                              In our zeitgeist, on the internet platforms we’re currently talking about? Yes, actually. That’s a huge part of it. And things that are boredom-adjacent: a sense of community, dopamine from engagement, etc.

                                                                              It’s the 90/9/1 thing that applies to any online community, the fact that it’s about hate ideologies is irrelevant. 1% of the people are the true believers and actually producing content, 9% are highly engaged and curating/amplifying/whatever, but 90% are lurkers, consumers, a passive audience that is fickle and will disappear if you can deplatform the 10% from the most popular N sites on the internet.

                                                                              Every society will always have some bigoted assholes, and they’ll always have some kind of cult of personality or ideology that will attract some people. That’s unavoidable, those 10%. What’s avoidable is letting those subcultures attract and grow their 90% audiences. That’s the shit that tends to produce the lone-wolf spree shooters, tends to normalize microaggressions in day-to-day life, and most everything in between. And deplatforming is a really good tool for stopping that specific thing. Which is huge.

                                                                              1. 1

                                                                                In order for this to not go on forever, I’ll try to just summarise what I see our disagreements being:

                                                                                1. You’re concerned about the “macro-scale effects”, while I am more worried about the long-term effects.
                                                                                2. You think that racism is fuelled by boredom, while I think that is has deeper roots (although it can be set of by (life) boredom).
                                                                                3. You think that the 90/9/1 rule still applies, I think that the power/danger of the new communities comes exactly from transcending it.

                                                                                Unless you have anything else to contribute, I think it would be better to come to an end with this thread. The only question I have for you is what your direct experience is with these underground forms and image boards?

                                                          2. 1

                                                            Coddling is a silly book rife with contradictions, it doesn’t strengthen your case to namecheck it https://www.theguardian.com/books/2018/sep/20/the-coddling-of-the-american-mind-review

                                                            1. 2

                                                              Guardian is a silly newspaper rife with contradictions. What’s your point?

                                                              1. 3

                                                                I have no real stake in the Guardian as a publication overall; it’s got a lot of crap, and some decent articles every now and then. I thought the review did a great job demonstrating why Coddling is a silly book. That should have been obvious.

                                                                By just attacking the least important part and not engaging with what I linked in any substantive way, I suspect you’re not arguing in good faith, saying quippy aggressive things. Come back if you want to address the contents of the review, or Coddling.

                                                                1. 1

                                                                  I read this review and I’ve read the book. Frankly, the review doesn’t really address the book. This review is polarized and mentions some parts of the book totally out of context, and then tangentially starts talking about politics and Trump. The book is a really good read, and it’s well sourced. I looked up several of the stories it mentioned while reading it and I think it does a fair job of portraying what’s happening in a lot of universities, especially on the west and north east coasts.

                                                                  There is a growing distrusted between those who teach in academia and their own students. Call-out culture is a a thing. There is a growing trend to react today first and to call for resignations and dismissals; to the point where I know people in academia who are afraid to talk about any difficult or hard issues.

                                                                  It’s not a silly book. I’ve listened to other interviews with people like Haidt (one of the authors) along with people like Sam Harris who have brought up these same issues. Harris and Haidt is often labelled as alt-right or alt-right adjacent (same with Joe Rogan), but reading and listening to their views, they’re hardly that! And this goes back to the issue of calling everyone you don’t like or disagree with a Nazi or White Suprematist (especially those who don’t self-identify as such). It pushes more of this polarization narrative and people who have never even listened to these people now immediately dismiss everything they say.

                                                                  1. 4

                                                                    Thanks for actually engaging on this. I happen to disagree with almost everything you wrote (I read the book and think the review is dead-on) and think Sam Harris is a pompous Islamophobe and Joe Rogan is boring, mainstreaming people with terrible views by never challenging them, &c; &c;

                                                                    I doubt we’ll get very far hashing it out here (and I have work to do lol, you probably have other responsibilities than hashing this shit out with a stranger on the Internet) but again, appreciate you rising up and responding sincerely 😄

                                                          3. 3

                                                            I whole-heartedly believe that freedom of speech is an end in itself, but that doesn’t mean I’m against moderation. Not at all – too many communities are ruined by unpleasant, ill-willing people, and I think this very site is a clear example of how important content moderation can be.

                                                            Reddit, however, is a different type of site, one with many communities that are more or less separate from each other. Already before those hateful subreddits were banned, what they wrote in their walled garden never reached the eyes of redditors on the outside, unless they willingly looked inside – in this sense, there’s really no difference between subreddits and separate websites. So why were these subreddits banned? Well, because of pressure from other redditors, peeking inside the walled garden and not liking what they saw, and shareholders, presumably.

                                                            Of course, even though there’s little difference between having your community on Reddit versus hosting it on Voat, in the sense described above, Reddit is a bigger platform with more users than Voat. Being expelled from Reddit severely limits the user base of a community, which can be used both as an argument for banning these communities and as an argument for being careful about banning any communities whatsoever.

                                                            Anyway. I’m not defending these communities. My point is just that these bans weren’t really examples of content moderation, but rather, giving in to large amounts of criticism, valid or invalid as it may be.

                                                            1. 3

                                                              From your article:

                                                              Those with the power to do so have both the right and ethical obligation to stop these infections at the source, by organizing, by protesting, by de-platforming, and by recognizing that free speech isn’t an end in itself, but merely a means, a tool, which we’re obliged to use to make our society better.

                                                              I see nothing in that sentence with which Tourquemada would have disagreed.

                                                              We spent the last four hundred years building a world in which might doesn’t make right. We built a society which tries really hard not to unperson dissenters. It’s taken a long time, and it hasn’t been perfect, but we did it. And now, in just about a decade and a half, we have thrown away four centuries’ hard work and created a world in which it is once again no longer possible to speak truth to power, because once again those in power feel comfortable using that power to extinguish dissent and dissenters.

                                                              1. 1

                                                                We built a society which tries really hard not to unperson dissenters . . . And now . . . [we] created a world in which it is once again no longer possible to speak truth to power . . .

                                                                Look dude if literal Nazi-ism and white supremacy qualifies as “dissent” and “speaking truth to power” to you then we’re not going to be able to have a productive conversation. And to be extremely clear that is explicitly and only what this discussion is about. Not abstract and undefined “uncomfortable political ideas” or “unpopular opinions” or other weasel phrases. This whole conversation is about the alt-right race-baiting white-supremacist trolls of Voat.

                                                              2. 2

                                                                I think there is a large part of not being able to combat these ideologies because many people just don’t understand the fundamentals of them to begin with. That makes it easier to push people to extreme theories or ideologies because, in many cases, they put forth simple arguments for them or against whatever they’re against. It’s kind of like an ELI5 for ideas.

                                                                I’m not opposed to moderation and I think outright inflammatory posts should be removed immediately, but I also think we should be educating people better about ideas and not just resorting to calling people names. There are arguments against these ideologies, but we don’t have a general populace explaining, in an easy to digest way, why they aren’t good. I think we’re too quick to try to silence, which really doesn’t silence at all, but pushes the fringe folks together where their ideas echo and ultimately amplify.

                                                              1. 14

                                                                This really makes me think about how hierarchy is the major, unspoken assumption in all business writing. I would love to see the application of more anarchist philosophy into this topic. I think that would be really interesting.

                                                                1. 5

                                                                  I suggest you the Loomio Cookbook. Also you don’t need to be anarchist, it’s enough to be a democratic cooperative.

                                                                  If you want a capitalist-washed version you can look at “holacracy”, that is basically the same thing, but CEO-friendly.

                                                                  Also yeah, there are anarchist cooperatives in IT but I’m not aware of anything specific written by them. If you want to read about anarchist cooperatives in general, there’s plenty of material. Also you might be interested in the socialist venture of Olivetti, if you want to stick to something close to IT

                                                                  1. 2

                                                                    it’s enough to be a democratic cooperative.

                                                                    What do you think anarchism is?

                                                                    1. 1

                                                                      all anarchist cooperatives are democratic cooperatives. Not all democratic cooperatives are anarchist (or at least they don’t know they are)

                                                                      1. 1

                                                                        That would depend how one defines democracy. Some anarchist threads eschew voting (which some define as a central feature of a democratic system) for a consensus based form of decision making.

                                                                        1. 1

                                                                          Yeah clearly it depends and if you ask anarchists, you cannot have democracy without anarchy. And I might be one of them, but I also know that appropriating the word “democracy” just for ourselves is a bit pretentious

                                                                  2. 3

                                                                    I believe that when thinking about management structures we always need to take into account how humans function at a primordial level. As monkeys, we have lived in gangs that are led by one leader, so this is probably the most natural and efficient way to structure an organization. EDIT: Also the most efficient way to lead it somewhere we don’t want, obviously.

                                                                    There are drawbacks to hierarchical regimes, which is why we try to come up with alternatives, but we can’t ignore that most people still naturally look for people to look up to and simultaneously look for opportunities to assume a role of responsibility for the well-being of a group.

                                                                    Of course we don’t necessarily have to satisfy these urges, but ideally an organization builds on top of them.

                                                                  1. 1

                                                                    Your best bet is to just use algo or at the very least steal their configuration

                                                                    1. 1

                                                                      Is there anything in particular in that configuration that isn’t available in the one I found? I’m intentionally using a pre-shared key for simplicity and because I’m the only user. I did take a look at Algo, but didn’t see anything that would make using it worth the complexity. Is there something I missed?

                                                                      1. 2

                                                                        It’s not that I think there’s anything wrong with your approach per se, but you mentioned looking for a premade solution for this and algo is that. It’s about as close to turn-key as you can get, and with hardened defaults.

                                                                        One reason I would prefer it over your solution is that you appear to be using a preexisting server to provide a VPN, which is fine, but algo allows you to literally generate a new one as needed. Using a freshly made, disposable VPN is probably a step up from a long-running configuration, security-wise.

                                                                        It is debian-based, and if you’d prefer OpenBSD I can see the case for that. An OpenBSD distro of algo would be cool.

                                                                        1. 1

                                                                          That does seem sensible. I’m currently fine with the requirement that I manage my own server, but a quick setup on any cloud platform with sensible defaults seems smart. I also suspect (but am not completely sure) that it would take a fair bit longer to understand exactly what Algo is doing to my server compared to this approach.

                                                                          I quite like anything that the OpenBSD people put out, on average, compared to most solutions on Linux, but that’s purely personal preference.

                                                                    1. 6

                                                                      And some people just complained about sr.ht blog posts being just ads.

                                                                      1. 3

                                                                        Forbes really, aggressively, does not want people reading their website. My god

                                                                        1. 3

                                                                          I’ll have to take your word for it. I don’t have any scripts enabled for that page, and it looks pleasant enough. :-)

                                                                      1. 5

                                                                        Did you know that any standard-compliant email service allows users to have a near-infinite number of email addresses?

                                                                        Which standard would that be? The ‘+’ symbol is valid in the local part of an address as per the classic email RFCs. But the notion of “plus addressing” is only a de-facto standard feature that a lot of mail providers accept. It’s not codified in a standard as far as I know. And so there’s no guarantee that user+foo@example and user+bar@example are both valid nor reach the same person.

                                                                        1. 5

                                                                          Similarly, a “standard-compliant” implementation will treat johnsmith and john.smith as specifying two different mailboxes, but GMail has popularized “dots don’t matter”. And a compliant implementation will treat johnsmith and JohnSmith as specifying different mailboxes, but most mail hosts treat the local-part as case-insensitive (despite the standards saying that only the special mailbox postmaster gets case-insensitive treatment).

                                                                          And on and on. So many of the things people get indignant about, and start demanding “compliant” implementations for, are behaviors that aren’t in the RFCs.

                                                                          1. 3

                                                                            a compliant implementation will treat johnsmith and JohnSmith as specifying different mailboxes, but most mail hosts treat the local-part as case-insensitive (despite the standards saying that only the special mailbox postmaster gets case-insensitive treatment).

                                                                            According to RFC2821, the definition of a Mailbox is:

                                                                            Mailbox = Local-part “@” Domain
                                                                            Local-part = Dot-string / Quoted-string
                                                                            ; MAY be case-sensitive

                                                                            The definition of MAY is defined elsewhere:

                                                                            This word, or the adjective “OPTIONAL”, mean that an item is
                                                                            truly optional. One vendor may choose to include the item because
                                                                            a particular marketplace requires it or because the vendor feels
                                                                            that it enhances the product while another vendor may omit the
                                                                            same item.

                                                                            So, unless this has been superseded it appears that mailboxes don’t need to be case-sensitive.

                                                                            Edit: RFC2821 was in fact superseded by RFC5321, but it did not make case-sensitivity a requirement.

                                                                            1. 2

                                                                              RFC822:

                                                                              Note: This reserved local-part must be matched without sensitivity to alphabetic case, so that “POSTMASTER”, “postmaster”, and even “poStmASteR” is to be accepted.

                                                                              Shifting all local-parts to “MAY” be case-sensitive in later RFCs doesn’t undo the original damage, since now you have to play games with which set of RFCs the “compliant” implementation complies with.

                                                                          2. 1

                                                                            I may be mistaken, then. I will dig that issue and edit my post accordingly if I cannot find the relevant RFC or something. Thanks for the comment, and sorry for the possible mistake!

                                                                          1. 3

                                                                            I think React has won the UI-model marathon.

                                                                            The evidence, is that there are at least 3 full fledged React-based UI libraries covering the 4 active user-focused platforms:

                                                                            I do not think there was a UI API, in the last 20 years, that has been leveraged and re-implemented across multiple platforms by multiple independent teams. And in at least 2 different languages.

                                                                            To be honest, I would also like to see modern new GUI efforts to be implementing same APIs

                                                                            Eg libraries like mentioned here: https://lobste.rs/s/2wjeqs/photon_micro_gui Should base the APIs on RN (but without JS, of course)

                                                                            To me, such a broad acceptance by a number of teams, is a confirmation of conceptual superiority of React-based programming model (clear separation of state, tree-based event refresh propagation, clear model of how to pass parameters to components and which ones of them can can cause state change, and so many other nuances).

                                                                            Long time ago, I used for web Dojo toolkit, also used extensively Delphi, bit of YACL, MFC and bit of wxWidgets, cursory Qt.

                                                                            Layout manager and styling using flexbox, while is not easy for me to always grasp, is better that platform-specific layout managers and is the first time I encountered ‘learn-once motto’, in this area, done correctly (by React Native and React native web).

                                                                            React Native is just much better in every way because helps to map all those non-trivial state management event-propagation, styling and constraint-layouts UI concepts into a cohesive, platform-independent model.

                                                                            1. 1

                                                                              I do not think there was a UI API, in the last 20 years, that has been leveraged and re-implemented across multiple platforms by multiple independent teams. And in at least 2 different languages.

                                                                              MVC

                                                                              1. 1

                                                                                Less of an API than a way to partition your work

                                                                                1. 1

                                                                                  I did not think MVC was a fully defined API (eg. like react native, MFC, or QT), I thought of MVC more as a design pattern

                                                                              1. 3

                                                                                That’s cool, although I don’t really understand why GitHub is making product announcements about a feature most of us can’t use yet.

                                                                                1. 4

                                                                                  I never worked with Ember but I’m surprised at the claim that React has Won. I thought that Angular and Vue have been on solid footings. In the .NET shops I’ve seen, the majority have used Angular for front-end development.

                                                                                  1. 6

                                                                                    I’ve never had much connection to the .net world; over in the dynlang diaspora I’ve gotten the impression that React has not just a plurality but a majority share of frontend frameworks. I built a graph with StackOverflow insights and my impression was wrong: React and Angular are roughly equivalent in popularity, with Vue at a third of either and Ember very low. (I’d love to see more sources of data if anyone has them!) Thanks for prompting a better understanding of the landscape.

                                                                                    1. 5

                                                                                      React won the hype cycle thus far. People whose understanding of framework popularity is colored by tech news are going to think React is dominant because people talk about it so much.

                                                                                      There is some correlation with tech chatter and usage, but it’s an imperfect one. Boring technologies that work well don’t get talked about.

                                                                                      1. 8

                                                                                        But React is a perfect example of boring technology that work. And it’s already 6 years old.

                                                                                        1. 2

                                                                                          As someone who’s never used JS at all up until recently, React is so boring I can almost feel the yawn coming on… and I love it!

                                                                                    1. 1

                                                                                      This looks neat, but installation failed :(

                                                                                      error: const fn is unstable (see issue #24111)
                                                                                         --> .cargo/registry/src/github.com-1ecc6299db9ec823/rgb-0.8.13/src/internal/rgb.rs:14:13
                                                                                          |
                                                                                      14  | /             pub const fn new(r: T, g: T, b: T) -> Self {
                                                                                      15  | |                 Self {r,g,b}
                                                                                      16  | |             }
                                                                                          | |_____________^
                                                                                      ...
                                                                                      110 |   impl_rgb!{RGB, RGBA}
                                                                                          |   -------------------- in this macro invocation
                                                                                      
                                                                                      1. 2

                                                                                        I assumed installing rust fresh would give me the latest version, but you also have to run rustup update after installation.

                                                                                      1. 6

                                                                                        I notice my SSH key is RSA, because that seems to be the default generated by OpenSSH’s ssh-keygen. I usually trust the OpenSSH developers to make good decisions, so not sure what to think here. Should I generate a new key using a different system? Or is this just about not implementing RSA yourself, while using it through OpenSSH is fine, because the OpenSSH developers have avoided these pitfalls?

                                                                                        1. 14

                                                                                          You should think about using ed25519 keys if you’re going to make a change, but it’s not urgent.

                                                                                          1. 4

                                                                                            It’s not such a problem that you need to go change your keys right now, but next time you’re making one, choose ed25519 instead. It’s faster than RSA, and the public key string is much smaller.

                                                                                            1. 3

                                                                                              The latter. Your keys (assuming they’re at least 2048-bit) are fine. If you’re implementing RSA yourself, there’s lots of room to screw things up, but done correctly, the cryptography is very secure, and OpenSSH is probably one of the most security-audited pieces of software in existence.

                                                                                              1. 2

                                                                                                Long-battletested implementations are fine.

                                                                                              1. 1

                                                                                                Perhaps someday we can build engineering media that has the right incentives.

                                                                                                Is that a technical or an organizational problem?

                                                                                                1. 2

                                                                                                  It’s a people problem, which is why engineers are just as susceptible to it as anyone.

                                                                                                1. 3

                                                                                                  At the risk of being one of those armchair Hacker News developers who thinks they can build Facebook alone over the course of a weekend, let me speculate a little over WeWork’s actual business and architecture problems

                                                                                                  Unfortunately, most of the post seems to be this armchair approach, with the author making assumptions that are quite naive. The author argues that WeWork has no need to track “barometric pressure” on rooms. Tho this was one data point from the list of things like temperature and air humidity. As someone working out of offices, I can tell you that the most common complaints are it being too hot and too low: all offices have this issue. When I worked out of WeWork, this seemed to work just fine. It seems like a very valid business reason to monitor these values, as well as have automated alerting in-place for anomalies (e.g. a room going above 80F/30C).

                                                                                                  Then, the author goes on to argue that tracking any of these things makes no business sense (not true - see above) and reduces the problem to tracking members clocking in our out, assuming one member means 4 clocking. Again, this person has not worked at a WeWork location: you clock probably every hour, going between offices, to the loo, to get a snack, as well as when going between floors or even the elevator. When I worked there, I clocked 20-30x times per day. So that puts just the clocking estimates at about 6-10M clocking events/day.

                                                                                                  My main issue with the article though, is they make the case on how the clocking events could be stored in Postgres, ignoring the fac that Kafka was very likely chosen as an event broker, greatly simplifiying their architecture and making it easy to extend. I am pretty sure WeWork could have chosen RabbitMQ, ActiveMQ as well for the substitute. But Postgres has no pubsub functionality and is a very different use case.

                                                                                                  1. 4

                                                                                                    Postgres has no pubsub functionality

                                                                                                    I’m nitpicking an otherwise pretty good comment, but check again! PG does pubsub.

                                                                                                    1. 1

                                                                                                      Thanks a lot for pointing it out - you’re absolutely right.

                                                                                                      I looked it up and it’s indeed neat how Postgres does have basic pubsub functionality with NOTIFY/LISTEN. I assume one would have to implement retries and failure cases on top of this.

                                                                                                      My point was that the purpose of Postgres is an RMDBS and if you really need an event queue with high throughput, it might be less of a good choice than a solution that is built for this problem space.

                                                                                                      1. 2

                                                                                                        I’ve never seen anybody actually use it, so I have no idea. But I’d wager your instincts are correct.

                                                                                                        Plus, there is a massive difference between just regular pubsub and Kafka topics.

                                                                                                  1. 3

                                                                                                    The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt. – Rob Pike

                                                                                                    God, this quote explains so much

                                                                                                    1. 2

                                                                                                      Is anybody else a little annoyed by all these people referring to Python and Ruby as scripting languages ಠ_ಠ

                                                                                                      1. 11

                                                                                                        no, ‘scripting language’ has a well-understood meaning and perl, python and ruby certainly qualify

                                                                                                        1. 1

                                                                                                          “Scripting language” isn’t a very good distinction. People typically mean that the main implementation of it is an interpreter instead of a compiler, but defining a language by its implementation detail is a bit of questionable choice. Just because the implementation changes but the syntax and semantics doesn’t shouldn’t fundamentally change what a language is.

                                                                                                          “Scripting language” used to mean a programming language that was part of a larger system, a smaller thing for automating the execution of tasks, something that ran only within a specialised environment like an IRC program or a web browser, such as e.g. javascript or mIRCscript. That usage is almost dead now.

                                                                                                          And sometimes people are just ambiguous about which one of these two they mean.

                                                                                                          1. 2

                                                                                                            After having considered this a bit, I’d defined “scripting language” as

                                                                                                            • interpreted - i.e. no compilation stage before executing the source
                                                                                                            • has good “hooks” into the computer’s file system and stuff like the Internet

                                                                                                            So that would cover Perl, Python and Ruby, even if Perl explicitely grew out of the smaller, more specialized text processing tools like sed and awk, while Python approached the domain after having been designed as an educational tool.

                                                                                                            1. 2

                                                                                                              i’d define it as a grab-bag of features including:

                                                                                                              • dynamically typed
                                                                                                              • effectively interpreted (i.e. if it’s compiled under the hood that should be transparent to the user)
                                                                                                              • good support for strings, lists and hashmaps, almost always including syntactic support and data literals
                                                                                                              • having, as you note, good out-of-the-box support for filesystem operations and talking to the world
                                                                                                              • the possibility to wrap and use C libraries
                                                                                                              • eval
                                                                                                              1. 1

                                                                                                                Except for dynamic typing, all of this sounds like D, although you can sort of get something like dynamic typing in D via compile-time type inference.

                                                                                                                Hell, if you use ghci, it also kind of sounds like Haskell. Or due to REPLs, it sounds like most or all lisps.

                                                                                                                I still don’t think “scripting language” is a clear or useful distinction.

                                                                                                              2. 1

                                                                                                                I think I’d be able to qualify D as a scripting language, since it has curl in its stdlib (and obviously, filesystem), and you can use rdmd as a shebang, therefore getting rid of an obvious compilation step.

                                                                                                                1. 1

                                                                                                                  That’s interesting to know!

                                                                                                                  1. 3

                                                                                                                    But note that rdmd is still a compiler. It just happens to be a “dumb” compiler that never frees memory during the compilation step, hence does no memory management and is therefore speedy enough to match most interpreters’ warmup time.

                                                                                                                    On the other side, most interpreters nowadays also do at least a little compilation. Python’s pyc files are one of the more obvious examples.

                                                                                                                    I’ve also heard people who have only used Python refer to C++ code as “C++ scripts”. The “scripting language” distinction really is nebulous.

                                                                                                          2. 1

                                                                                                            But you think it’s ok to refer to Perl as one? Why?

                                                                                                            The term is from the XCode beta release notes.

                                                                                                            1. 0

                                                                                                              I omitted Perl because I’m not as familiar with its internals. Both Python and Ruby compile to bytecode, and Ruby recently added a JIT. So neither language is interpreted.

                                                                                                              1. 4

                                                                                                                Taken from wikidepia:

                                                                                                                The term “scripting language” is also used loosely to refer to dynamic high-level general-purpose languages, such as Perl, PowerShell, Python, and Tcl.

                                                                                                                The term “scripting language” is a characterization of a language itself: being dynamic, high-level, and well-suited to small programs.

                                                                                                                The term “interpreted” is a characterization of a particular implementation: is their an interpreter involved in running it? So a language can be both a scripting language and interpreted.

                                                                                                                That said, both Python and Ruby are in my mind interpreted. They compile to a high level bytecode, which is subsequently interpreted. There are also interpreters for C, C++, and other non-scripting languages. Does that make them interpreted? Kind of, yeah, but I’d argue you wouldn’t apply the term “interpreted” to a language itself unless its one of the most common ways of running it.

                                                                                                                1. 1

                                                                                                                  Script language vs compiled language. The unit of distribution for all three is still raw source code, or script.

                                                                                                                  1. 0

                                                                                                                    go get downloads source code and compiles locally. But Go is a compiled language.

                                                                                                                  2. 1

                                                                                                                    Thanks for the clarification!

                                                                                                                    I’ve not really thought about whether a language compiles to bytecode as a characteristic of being a “scripting language”.

                                                                                                                    Also, does Perl 5 have a bytecode stage? It depends.

                                                                                                              1. 7

                                                                                                                This article was a bit thin for me. It boils down to comparison between OpenAPI and gRPC, and the argument is the size/complexity of the description. However, it doesn’t take into account size of the supporting infra, complexity of tooling/debugging techniques (even tho it does mention that one can’t curl anymore to do check). Would be interesting to hear other people (especially from Ops side of world) experiences after switching to gRPC – did things become more complex?

                                                                                                                1. 10

                                                                                                                  Absolutely. I regret using it at my current job. Documentation is imo very poor for more advanced use cases. REST/HTTP/1.1 is well understood, easy to debug and performance is more than enough if you’re not google/facebook/twitter. Furthermore, its very well supported by lots of tooling. E.g. k8s doesn’t have a gRPC health check without downloading some binary and putting it in every single one of your containers. I think the main issue I have with gRPC is the insistence on HTTP/2 when HTTP/1.1 would have worked fine. I have more issues with gRPC as well, I need to write a blog post.

                                                                                                                  1. 2

                                                                                                                    I have more issues with gRPC as well, I need to write a blog post.

                                                                                                                    Please do! I’ve avoided gRPC itself, but for example I’m a fan of capnproto.

                                                                                                                    1. 1

                                                                                                                      shouldn’t the comparison be between protbuf and capnproto instead ? afaik, capnproto provides a serialization / deserialization framework rather than a rpc framework…

                                                                                                                      1. 1

                                                                                                                        Capnproto has some libraries that only provide serialization. It’s mostly that plus awesome RPC

                                                                                                                  2. 2

                                                                                                                    I haven’t thought too much about how necessary this would be with gRPC, but we had a fairly similar binary protocol at work for service-to-service communications that ALSO exposed an HTTP+JSON bridge for curlability, which worked really well!

                                                                                                                    1. 2

                                                                                                                      It never even actually talked about gRPC, just Protobufs. I built a microservice function using Protobufs without gRPC, they are not equivalent.

                                                                                                                      1. 1

                                                                                                                        Conflating these two was a huge source of pain on the project I’m on at work; protobufs have been a nightmare while grpc itself has been fine. (Not helpful at all but not actively slowing us down the way protobuf did.)

                                                                                                                        1. 1

                                                                                                                          Wild – I had the inverse experience, where protobufs have been useful and neat but gRPC hell every step of the way. We swapped out gRPC for Twirp (which still uses protobufs), and things are happy.

                                                                                                                          1. 2

                                                                                                                            YMMV as always; contributing factors in this case included:

                                                                                                                            • we’re on the JVM
                                                                                                                            • we already had been using a much more thorough and descriptive way of declaring the shape of our data (clojure.spec)
                                                                                                                            • encoding efficiency was very far from being a being a performance bottleneck
                                                                                                                            • these were all internal APIs that were always being called from other Clojure codebases rather than being a public endpoint called by who-knows-what clients
                                                                                                                            1. 1

                                                                                                                              I don’t think protobufs are a good choice without a multi-language environment. If everything is using the same language, then just share a service library.

                                                                                                                              In my (limited) experience with it, we were adding a microservice layer in Go that talks to a couple Ruby services. Being able to spec out data types and generate code for each platform is really nice.

                                                                                                                      2. 2

                                                                                                                        Twitch apparently had issues with grpc, and made their own thing instead.

                                                                                                                        1. 3

                                                                                                                          We were also using it at work, and switched off of it. The complexity wasn’t worth it.

                                                                                                                          We replaced it with a combination of things, mostly a JSON schema/code generator that I wrote in ~500 lines of python, and plain HTTP or Unix domain socket requests.

                                                                                                                          It doesn’t do the same things as GRPC, but it covers the same pain points (documentation and syncing APIs across languages), and the fact that it’s both tiny and maintained in-house makes it malleable – if it doesn’t do what we want, we fix the framework.

                                                                                                                          1. 2

                                                                                                                            That article is 18 months old now, although it links to grpc-go issues that are two years older than the article. I wonder if anything has improved in gRPC / grpc-go in those two years, or in the 18 months since.

                                                                                                                          2. 2

                                                                                                                            What about streaming?