Threads for tadzik

  1. 23

    I’ve just tried Helix and I’m absolutely blown away by how good this is. I needed to rebind the hjkl to a sensible colemak equivalent like I always do (I wish editors would work on keys not characters. Some games know how to do that), but after that… everything is there, and it just works. Opened a Rust file, all the LSP support, all the sensible keybindings and checks… like in every modern IDE, you may say – and you’ll be right. But this is lightweight, starts instantly and has all the nice moving and editing capabilities – and with a kakoune-like grammar, which I find superior to vim’s, but kakoune was never quite there for me with all the IDE-like niceties.

    I can’t wait to try this at actual work tomorrow and see where it itches me. But my first impression is a 9/10.

    1. 8

      I wish editors would work on keys not characters

      As a Dvorak user, I wouldn’t be happy about this. When I think cw for “change word”, I’m definitely not thinking j,. hjkl are an exception that don’t really have a ‘word’ meaning they symbolize. I’ve just gotten used to it and with jk being more common to me and still next to one another on Dvorak, it’s tolerable.

      games

      This is where it actually is problematic, where the keys are purely buttons and rarely are symbolic of anything else. Since I don’t change my key labels, it’s a quick, one-time setup to just press the matching key before I start a game and accessibility has been pushed pretty hard in recent times so all games published in serious are configurable.

      1. 2

        Hmm, good point. I remap hjkl to hnei, but I keep all the others and remember them because of the meanings (like word-change) that make them easy to remember.

        j-k on colemak becomes y-n on my keyboard, which is not very handy (and upside-down, logically). I still taught myself to use it, whenever I’m on vim that doesn’t have controls remapped.

        1. 2

          and upside-down, logically

          Indeed. One of the things I like about dvorak vs colemak is that many of the keys are also just fine for programming. eg. jk are right next to each other, hl are still logically left and right, dash/underscore is on the home row, etc.

          1. 2

            I really undervalued the home-row dash/underscore until I tried briefly an alternative layout. It’s such a common key for programming and normally gets placed in the most obtuse places – like number row on QWERTY.

      2. 3

        I wish editors would work on keys not characters.

        Sadly, terminal-based apps need to work with the input events that the terminal sends them, and the terminal only sends characters. Even GUI apps can wind up in this trap if they’re based-on or portable-to a terminal UI, like GVim for example.

        1. 1

          I guess i3 isn’t a terminal app, but I think when that’s initialized they remap everything if the layout is different. Someone correct me if I’m wrong here. … But maybe an editor could do the same? Just an idea.

          1. 4

            As a concrete example, when you press a key in your browser, the KeyboardEvent that gets fired has a [key] property that describes the letter typed, if any, as well as the code property that describes the physical location on the keyboard, as well as properties like shiftKey, ctrlKey, altKey, and metaKey that reflect whether that modifier was held down. So when I type a double-quote on my Dvorak keyboard layout, the key property is ", but the code property is “KeyQ” (because Dvorak puts the double-quote where QWERTY puts Q) and the shiftKey property is true.

            An app like i3 will look at the binding specified in the config file, consult the X11 keyboard layout extension to find out what code corresponds to that key, and then when a keyboard event arrives it checks the code rather than the key, and therefore works no matter what changes have occurred to your keyboard layout in the mean time.

            Meanwhile, when I type a double-quote in my terminal, the terminal receives byte 0x22, ASCII ". That’s it. No key code, just the key pressed. Even if there were a way to obtain the keycode of a key event, there’s no way to consult the keyboard layout configuration, so it wouldn’t be possible to transparently remap bindings.

        2. 2

          I wish editors would work on keys not characters. Some games know how to do that

          I think in general this should be avoided, because it makes documentation difficult. When character-based, you just document that ctrl+a does something, and no matter the layout or keyboard configuration anybody who has these two keys will be able to do just that. If it was key-based, an azerty keyboard user would have to know that this actually means pressing ctrl+q. This get much worse with non-alphanumeric symbols.

          With dvorak or colemak it might be ok since the user generally knows the american qwerty layout, but that’s definitely not the case for other layouts.

          As stated in another comments, games are indeed one of the only cases where I can see an argument being made for key-based bindings.

        1. 14

          I’m very curious how these companies address the fact that there are countries where smartphones are not universally owned (because of cost, or lack of physical security for personal belongings).

          1. 8

            At least Microsoft has multiple paths for 2FA - an app, or a text sent to a number. It’s hard to imagine them going all in on “just” FIDO.

            Now, as to whether companies should support these people - from a purely money-making perspective, if your customers cannot afford a smartphone, maybe they’re not worth that much as customers?

            A bigger issue is if public services are tied to something like this, but in that case, subsidizing smartphone use is an option.

            1. 24

              if your customers cannot afford a smartphone, maybe they’re not worth that much as customers?

              I had a longer post typed out and I don’t think at all you meant this but at a certain point we need to not think of people as simply customers and begin to think that we’re taking over functions typically subsidized or heavily regulated by the government like phones or mail. It was not that long ago that you probably could share a phone line (telcos which were heavily regulated) with family members or friends when looking for a job or to be contacted about something. Or pay bills using the heavily subsidized USPS. Or grab a paper to go through classifieds to find a job.

              Now you need LinkedIn/Indeed, an email address, Internet, your own smartphone, etc. to do anything from paying bills to getting a job. So sure if you’re making a throwaway clickbait game you probably don’t need to care about this.

              But even this very website, do we want someone who is not doing so well financially to be deprived of keeping up with news on their industry or someone too young to have a cellphone from participating? I don’t think it is a god-given right but the more people are not given access to things you or I have access to, the greater the divide becomes. Someone who might have a laptop, no Internet, but have the ability to borrow a neighbor’s wifi. Similarly a family of four might not have a cell phone for every family member.

              I could go on but like discrimination or dealing with people of various disabilities it is something that’s really easy to forget.

              1. 15

                I should have been clearer. The statement was a rhetorical statement of opinion, not an endorsement.

                Viewing users as customers excludes a huge number of people, not just those too poor to have a computer/smartphone, but also people with disabilities who are simply too few to economically cater to. That’s why governments need to step in with laws and regulations to ensure equal access.

                1. 11

                  I think governments often think about this kind of accessibility requirement exactly the wrong way around. Ten or so years ago, I looked at the costs that were being passed onto businesses and community groups to make building wheelchair accessible. It was significantly less than the cost of buying everyone with limited mobility a motorised wheelchair capable of climbing stairs, even including the fact that those were barely out of prototype and had a cost that reflected the need to recoup the R&D investment. If the money spent on wheelchair ramps had been invested in a mix of R&D and purchasing of external prosthetics, we would have spent the same amount and the folks currently in wheelchairs would be fighting crime in their robot exoskeletons. Well, maybe not the last bit.

                  Similarly, the wholesale cost of a device capable of acting as a U2F device is <$5. The wholesale cost of a smartphone capable of running banking apps is around $20-30 in bulk. The cost for a government to provide one to everyone in a country is likely to be less than the cost of making sure that government services are accessible by people without such a device, let alone the cost to all businesses wanting to operate in the country.

                  TL;DR: Raising people above the poverty line is often cheaper than ensuring that things are usable by people below it.

                  1. 12

                    Wheelchair ramps help others than those in wheelchairs - people pushing prams/strollers, movers, emergency responders, people using Zimmer frames… as the population ages (in developed countries) they will only become more relevant.

                    That said, I fully support the development of powered exoskeletons to all who need or want them.

                    1. 8

                      The biggest and most expensive problem around wheelchairs is not ramps, it’s turn space and door sizes. A wheelchair is broader (especially the battery-driven ones you are referring to) and needs more space to turn around than a standing human. Older buildings often have too narrow pathways and doors.

                      Second, all wheelchairs and exoskeletons here would need to be custom, making them inappropriate for short term disability or smaller issues like walking problems that only need crutches. All that while changing the building (or building it right in the first place) is as close to a one-size-fits-all solution as it gets.

                      1. 5

                        I would love it if the government would buy me a robo-stroller, but until then, I would settle for consistent curb cuts on the sidewalks near my house. At this point, I know where the curb cuts are and are not, but it’s a pain to have to know which streets I can or can’t go down easily.

                      2. 7

                        That’s a good point, though I think there are other, non-monetary concerns that may need to be taken into account as well. Taking smartphones for example, even if given out free by the government, some people might not be real keen on being effectively forced to own a device that reports their every move to who-knows-how-many advertisers, data brokers, etc. Sure, ideally we’d solve that problem with some appropriate regulations too, but that’s of course its own whole giant can of worms…

                        1. 2

                          The US government will already buy a low cost cellphone for you. One showed up at my house due to some mistake in shipping address. I tried to send it back, but couldn’t figure out how. It was an ancient Android phone that couldn’t do modern TLS, so it was basically only usable for calls and texting.

                          1. 2

                            Jokes aside - it is basically a requirement in a certain country I am from; if you get infected by Covid you get processed by system and outdoors cameras monitor so you don’t go outside, but to be completely sure you’re staying at home during recovery it is mandatory to install a government-issued application on your cellphone/tablet that tracks your movement. Also some official check ups on you with videocalls in said app to verify your location as well several times per day at random hours.

                            If you fail to respond in time or geolocation shows you left your apartments you’ll automatically get a hefty fine.

                            Now, you say, it is possible to just tell them “I don’t own a smartphone” - you’ll get cheap but working government-issued android tablet, or at least you’re supposed to; as lots of other things “the severity of that laws is being compensated by their optionality” so quite often devices don’t get delivered at all.

                            By law you cannot decline the device - you’ll get fined or they promise to bring you to hospital as mandatory measure.

                        2. 7

                          Thank you very much for this comment. I live in a country where “it is expected” to have a smartphone. The government is making everything into apps which are only available on Apple Appstore or Google Play. Since I am on social welfare I cannot afford a new smartphone every 3-5 years and old ones are not supported either by the appstores or by the apps themselves.

                          I have a feeling of being pushed out by society due to my lack of money. Thus I can relate to people in similar positions (larger families with low incomes etc.).

                          I would really like more people to consider that not everybody has access to new smartphones or even a computer at home.

                          I believe the Internet should be for everyone not just people who are doing well.

                      3. 6

                        If you don’t own a smartphone, why would you own a computer? Computers are optional supplements to phones. Phones are the essential technology. Yes, there are weirdos like us who may choose to own a computer but not a smartphone for ideological reasons, but that’s a deliberate choice, not an economic one.

                        1. 7

                          In the U.S., there are public libraries where one can use a computer. In China, cheap internet cafés are common. If computer-providing places like these are available to non-smartphone-users, that could justify services building support for computer users.

                          1. 1

                            In my experience growing up in a low income part of the US, most people there now only have smartphones. There most folks use laptops in office or school settings. It remains a difficulty for those going to college or getting office jobs. It was the same when I was growing up there except there were no smartphones, so folks had flip phones. Parents often try and save up to buy their children nice smartphones.

                            I can’t say this is true across the US, but for where I grew up at least it is.

                            1. 1

                              That’s a good point, although it’s my understanding that in China you need some kind of government ID to log into the computers. Seems like the government ID could be made to work as a FIDO key.

                              Part of the reason a lot of people don’t have a computer nowadays is that if you really, really need to use one to do something, you can go to the library to do it. I wonder though if the library will need to start offering smartphone loans next.

                            2. 5

                              How are phones the “essential technology”? A flip phone is 100% acceptable these days if you just have a computer. There is nothing about a smartphone that’s required to exist, let alone survive.

                              A computer, on the other hand, (which a smart phone is a poor approximation of), is borderline required to access crucial services outside of phone calls and direct visits. “Essential technology” is not a smartphone.

                              1. 2

                                There’s very little I can only do on a computer (outside work) that I can’t do on a phone. IRC and image editing, basically. Also editing blog posts because I do that in the shell.

                                I am comfortable travelling to foreign lands with only a phone, and relying on it for maps, calls, hotel reservations, reading books, listening to music…

                                1. 1

                                  The flip phones all phased out years ago. I have friends who deliberately use flip phones. It is very difficult to do unless you are ideologically committed to it.

                                2. 3

                                  I’m curious about your region/job/living situation, and what about is making phones “the essential technology”? I barely need a phone to begin with, not to mention a smartphone. It’s really only good as a car navigation and an alarm clock to me.

                                  1. 1

                                    People need to other people to live. Most other people communicate via phone.

                                    1. 1

                                      It’s hardly “via phone” if it’s Signal/Telegram/FB/WhatsApp or some other flavor of the week instant messenger. You can communicate with them on your PC just as well.

                                      1. 4

                                        I mean I guess so? I’m describing how low income people in the US actually live, not judging whether it makes sense. Maybe they should all buy used Chromebooks and leech Wi-Fi from coffee shops. But they don’t. They have cheap smartphones and prepaid cards.

                                        1. 2

                                          You can not connect to WhatsApp via the web interface without a smartphone running the WhatsApp app, and Signal (which does not have this limitation) requires a smartphone as the primary key with the desktop app only acting as a subkey. I think Telegram also requires a smartphone app for initial provisioning.

                                          I think an Android Emulator might be enough, if you can manually relay the SMS code from a flip phone, maybe.

                                    2. 2

                                      You’re reasoning is logical if you’re presented a budget and asked what to buy. Purchasing does not happen in a vacuum. You may inherit a laptop, borrow a laptop, no longer afford a month to month cell phone bill, etc. Laptops also have a much longer life cycle than phones.

                                      1. 4

                                        I’m not arguing that this is good, bad, or whatever. It’s just a fact that in the USA today if you are a low income person, you have a smartphone and not a personal computer.

                                  1. 5

                                    Those visualizations are as great an engineering feat as a watch movement. Truly the Rolex of webpages.

                                    1. 3

                                      Readily available online, not after spending months (or years) on a waitlist so that the author maybe allows you to read it – I’d say it’s an Omega ;)

                                    1. 23

                                      Some time ago I pivoted back to Debian and started slowly phasing out Ubuntu systems I run. The reasons for it were the following:

                                      • strong proliferation of snap packages
                                      • Canonical’s resistance to accommodation of alternative (technical) approaches (like alternative init systems)
                                      • Canonical’s low to no contribution to the upstream/Linux community while aggressively pushing their selling/marketing interest all over the media.

                                      These release notes have (sadly) just upheld my decision to keep phasing the Ubuntu out.

                                      1. 3

                                        Snap is what broke it for me also – the breaking point was when Cypress suddenly stopped working on Ubuntu and on Ubuntu only, and to no fault of their own – Ubuntu just changed something about their Chromium, either moved it to Snap all of a sudden or just updated the Snap (which updates automatically). Made me realize that my OS is failing at just getting out of the way and letting me do my job.

                                        Moved to Pop_OS on the desktop and Debian Sid on the laptop. In retrospect I should’ve just gone Debian with both.

                                        1. 2

                                          Yeah I don’t like the snap stuff. What has been your experience with Debian coming from Ubuntu?

                                          I installed Debian on a machine maybe 5-8 years ago and it worked more or less fine. But there was one issue which I think Ubuntu handled smoothly, probably some graphics thing or an installer. I think I also got used to newer packages, where at the time Debian had very old packages.

                                          I want to give it another try after all the snap stuff.

                                          1. 6

                                            What has been your experience with Debian coming from Ubuntu?

                                            IMO Debian is cleaner. By default it has fewer bells and whistles. My systems are lean. I prefer them to allocate resources for my workloads, instead of giving them away to some snaps (for ex, to let them check their updates periodically).

                                            I don’t like when upgrades are forced on me by Canonical’s team. I like to be in control of my upgrade schedule. It lets me clearly see what’s going on with my systems.

                                            But there was one issue which I think Ubuntu handled smoothly, probably some graphics thing or an installer.

                                            Yes, sometimes recent video controllers (esp.closed source ones like nvidia) require non-free repo. If it’s still not enough you can always build your own kernel.

                                            BTW recent kernels have improved support of AMD hardware quite significantly. I see no point in buying nvidia, taking into account their hostile attitude to the Linux community.

                                            I think I also got used to newer packages, where at the time Debian had very old packages.

                                            This point is valid. Stable Debian is behind Ubuntu in most of the cases. But there are testing and backports Debian repos available, so if someone wishes they can run more recent software. I personally prefer to run stable branch with backports.

                                            WRT the newer packages, I think nix/guix(my preference) is the future. Ability of functional package managers to tap into the upstream repo and keep your software up to date, or pin it to the specific git hash, or roll the system’s state back is very powerful.

                                            1. 2

                                              WRT the newer packages, I think nix/guix(my preference) is the future. Ability of functional package managers to tap into the upstream repo and keep your software up to date, or pin it to the specific git hash, or roll the system’s state back is very powerful.

                                              When I was regularly using desktop Linux, I used to use the ordinary repo packages for most things, and installing nixpkgs alongside for things like ffmpeg. Generally seemed a nice experience, aside from slightly extravagant disk usage.

                                        1. 1

                                          honestly stuff like this is one reason why I eventually stopped using linux on my desktop. I wanted new software but I didn’t want to install arch (I know about flatpak/appimage but that didn’t solve everything for me because reasons).

                                          1. 7

                                            Curious why you’d rather leave the ecosystem rather than run Arch, Debian Testing, or another distro with focus on freshness?

                                            I mean, do what you like of course. Just curious since you called it out.

                                            1. 3
                                              • arch: don’t want to have to subscribe to a mailing list in case of breaking changes
                                              • debian testing and other distros: not as well supported for me as ubuntu, sure i could download and build source for the stuff I use but I really couldn’t be bothered
                                              1. 8

                                                I use and love Arch but it still bugs me that Gentoo (not known for being the easiest of distros to use) gets eselect news read and automated warnings about important changes, and the official Arch answer is still “It broke? You should have checked the website before you updated”.

                                                1. 4

                                                  I’m on the announce mail list, but even then, I don’t always check email before upgrading.

                                                  Instead, I deal with it when it happens. Having busybox and pacman-static installed, breakage would have to be very bad to not be quickly fixable.

                                                  Sure, I used Gentoo unstable for some 15 years before adopting arch as my main system, so my pov might be a little abnormal.

                                                  1. 2

                                                    But what is the envisioned functionality here? Do you just want something like pacnews to list out arch-announce or are you after something integrated with pacman? The former can be done by the week, but pacman is not really Arch specific and it doesn’t make sense to support something like that upstream.

                                                  2. 5

                                                    YMMV but I’ve had less breakage with Arch than I’ve had with Ubuntu, macOS, or Windows. I think it’s because the rolling release model prevents issues from clustering into large, hard-to-debug groups as you have with most other distros and OS’.

                                                    1. 1

                                                      arch: don’t want to have to subscribe to a mailing list in case of breaking changes

                                                      What’s wrong with following the low-traffic announce mail lists of projects you depend on?

                                                      1. 3

                                                        What’s wrong with following the low-traffic announce mail lists of projects you depend on?

                                                        I’d rather just use my pc without doing that.

                                                  3. 1

                                                    I’m curious as to what your using how and how does it solve stuff like this for you?

                                                    1. 1

                                                      I switched back to windows

                                                      every app i need only comes in one form, exe’s with manual or automatic updates

                                                      also warzone runs on it which is nice/not nice for my productivity

                                                  1. 36

                                                    Honest question: why should I care it’s written in Rust? I keep seeing these posts of new software and the authors highlight its “written in Rust.” I’ve never before seen such an emphasis on the language rather than the features it offers.

                                                    1. 34

                                                      I care that it isn’t written in C/C++. Memory safety catches a lot of security bugs. And language communities have different cultures, so knowing the actual language can be a signal as well.

                                                      1. 17

                                                        Okay, but in that case, it would be cool if the submission at least highlighted some of the neat use cases for which the language is relevant. E.g. if the description would at least mention an example – a particular module that’s very easy to get wrong in C, but Rust is particularly suited to, the way e.g. Julia is so well-suited for writing a FEM program. Or a “this module would’ve been 600 lines of inscrutable C but look how neat it is when you have explicit lifetime management features baked in the language”.

                                                        If there’s none of that, but it’s just a very good program, that’s great (even better, in fact) – but at least let’s talk about that. Is it remarkably fast, in which case can we have some benchmarks? Is it super secure, as in, has anyone tried to do even an informal review, it’s cool that it’s written in Rust but what I’d really like to know is if someone checked it to make sure that attempting to view an attachment called /dev/null; rm -rf ~ won’t nuke my home folder, which is a far more straightforward exploit than anything involving memory safety.

                                                        Better – hell, best yet – if it’s none of that, and the author just wrote a cool program and wants to share it with everyone else and wants some feedback. Great, but can we at least get that? Hey, fellow lobsters, here’s a thing I made, it’s super early, it won’t be big and professional like Outlook, do you like it? Would you like to send in a patch? What do you think about X?

                                                        Otherwise it’s just another program written in Rust. I get it’s cool but hundreds of programs get written in Rust every day.

                                                        As far as security bugs are concerned, if being written is C would be a red flag, what colour would you say is best ascribed to the flag raised by a tool whose installation script – which you’re supposed to curl straight into bash, of course – downloads an unsigned archive and `sudo mv’s the stuff in it into $PATH ;-)?

                                                        1. 8

                                                          I believe 4 out of these 5 would’ve been unlikely if mutt and libraries were written in rust, for example:

                                                          https://www.cvedetails.com/vulnerability-list/vendor_id-158/product_id-274/year-2018/opov-1/Mutt-Mutt.html

                                                        2. 10

                                                          Any GC language is memory-safe.

                                                          1. 4

                                                            Which is why written in Go is also a popular thing, and deserves to be. People want single binaries and fast, safe programs but for whatever reason they also want to pretend there’s no reason to care what language something is written in.

                                                            1. 3

                                                              Apart from the fact that garbage collection brings its own issues (although probably none that would affect a mail client), Rust offers much more than just memory safety.

                                                            2. 2

                                                              What is the most likely security attack surface for a email client?

                                                              1. 10

                                                                Untrusted input: message body, attachments, headers; protocol implementation (tls negotiation, authentication)? [ed: and in particular string handling and path handling]

                                                                1. 2

                                                                  This is a great argument for making MUAs just deal with MH/Maildirs and leaving the server interface to existing programs (mbsync, msmtp).

                                                                  Not only do you sidestep a good chunk of problems you mentioned - no worries about protocols, network, etc - you also are likely to fit into existing workflows. And it engenders trust: honestly, I’m unwilling to try software that speaks to my mail server. I risk anything from a bug inconveniencing me to something more malicious. Keep it local and I’m not as worried.

                                                                2. 2

                                                                  HTML & images mostly

                                                                  1. 1

                                                                    If you want to support it, html display.

                                                                3. 29

                                                                  I really have trouble understanding why people ask this. What’s so hard to understand about folks caring about which language a program is written in? There are literally oodles of reasons why it might be relevant. For example, if the title of the post were, “email client written in Zig,” it would actually attract my interest more than the current title. I would probably wind up spending some time reviewing the source code too. But if the title left that out, I probably would have skipped right by it.

                                                                  1. 2

                                                                    Yeah, I agree that the underlying tech can be interesting and makes sense in some cases to be in the title. We’re all hackers lobsters here, right?

                                                                    I’m a little surprised you’d show so much interest in Zig. I think of you as one of the “gods of rust”. Are you interested in a “keeping tabs on the competition” sort of way? Or is there some use case that you think Zig might shine more than rust for? In other words: are you interested in ideas you can bring to rust, or because you’re evaluating or interested in using Zig in its own right?

                                                                    1. 5

                                                                      No, I’m legitimately interested in Zig. I’ve always loved the “simplicity” of C, for example, for some definition of simplicity. (That one can cut a lot of different ways.) It’s also why I really like Go. And I think Zig is taking an interesting approach to memory safety and I’m very interested to see how well it work in practice. I’m also quite interested to see how well comptime does and how it balances against readability and documentation in particular.

                                                                      But I haven’t written a single line of Zig yet. I’m just following it with interest. I’m also a Zig sponsor if only for the amazing work that Andrew is doing with C tooling.

                                                                    2. 2

                                                                      I think “written in [L]” makes sense, if the fact that it was written in a language is interesting. If a more complex program is written in APL, it is interesting because APL is know to be diffucult. If something is written in C89 is is interesting because that will probably make it very portable. If something is written in Zig, it might be interesting because a lot of people are not familiar with it’s strengths and weaknesses in real world systems. If something is written in Go, it might be interesting because it provides a easy static binary that can be installed without a big fuss.

                                                                      Most of the time, I’m not surprised about Rust because why shouldn’t you be able to write a CLI tool in Rust? It has been done over and over again. If writing something in Rust has practical advantanges (”… written in Rust making it 4x faster”, “… written in Rust avoiding 90% of all security issues”, …) then it might be interesting.

                                                                      1. 14

                                                                        One aspect of that is that what is “interesting” varies from person to person and from time to time. Just as an example, I know I would be more interested if the title were “written in Zig,” but I’m sure there are plenty of others that would be less interested because of it. And that actually makes the “written in Zig” part of the title useful. Because it lets people filter a bit more, even if it means it’s less interesting.

                                                                        More to the point, “interest” is just one reason why “written in [L]” makes sense. It’s not the only reason. As others have mentioned, some programming languages tend to be associated with certain properties of programs. Whether that’s culture, barriers to contribution (for some definition of “barrier”), performance, UX and so on. Everyone here knows that “email client written in C” and “email client written in Rust” likely has some signal and would mean different things to different people.

                                                                        I truly don’t understand why people are continually mystified by this. It’s like the most mundane thing in the world to me. Programmers are interested in programming languages and how tools are built. Who woulda thunk it.

                                                                        To be clear, this doesn’t mean everyone has to be interested in the underlying technology 100% of the time either. So I’m under no illusions about that. Most of the users of my software, for example, not only don’t care what language it was written in, but probably don’t even know. I’d even bet that most of my users (via VS Code) not only don’t know what language their “find in files” is written in, but probably haven’t even heard of Rust.

                                                                        But we’re on a tech forum. It self selects for nerds like us that like to talk shop. What a surprise that we would be interested in the tools used to build shit.

                                                                        Apologies for the minor rant. This is just one of those things that pops up over and over on these forums. People are continually surprised that “written in [L]” matters to some people, and I guess I’m just continually surprised that they’re continually surprised. ¯\_(ツ)_/¯

                                                                    3. 11

                                                                      Personally I care because I am trying to learn Rust and projects like this are nice to explore and figure out stuff.

                                                                      1. 6

                                                                        I’m not sure either. I do occasionally see the “written in Go” or “written in Crystal” or “written in pure C99”, however.

                                                                        1. 4

                                                                          This was a trend 5 years ago with Python I feel, now it’s a trend with Rust. In case of Python, in my experience, it boiled down to “we improved the UI massively (compared to existing alternatives) and our error handling is nonexistent”, while with Rust it’s more likely to be “we’re obsessed about efficiency and everything else is secondary” ;)

                                                                          In practice, the “in X” is likely a call for contributors, not the users – as a user, when I see “it’s written in X” I assume that it’s probably got no real upsides aside of that, as if writing it in X was the whole point.

                                                                          1. 3

                                                                            It makes it interesting to me because I’m interested in Rust, so I’d like to check out the source and learn something!

                                                                            1. 3

                                                                              As an email client for users, it isn’t interesting at all (no disrespect to the creator). But, as an expression for the possibilities of an up-and-coming language, it is useful. This post has the same similar feel to a “hello world” for a new language.

                                                                              1. 2

                                                                                People still writing new software in C in TYOOL 2021 also like to brag online about their choice of language. I don’t get it.

                                                                                1. 2

                                                                                  I first thought “written in Rust” seems boisterous, then rethought and realized it’s beneficial specifying such, not just in boistering, but as an example for folks wanting to learn.

                                                                                  1. 2

                                                                                    Well,one reason to care is to make sure they don’t fall victim to the RIIR question from the Rust Evangelism Strike Force. (Have you considered rewriting it in rust?) (https://transitiontech.ca/random/RIIR).

                                                                                    (Note: this is a joke. You probably don’t care about rust and nor should you, but the author does.)

                                                                                  1. 15

                                                                                    “It tests CS fundamentals.” “It tests reasoning through a new problem.” These answers are contradictory

                                                                                    They aren’t really – they’re alternative answers to the same question, and they both describe a useful outcome. Put together, they give you an idea if the interviewee knows the CS fundamentals and/or can figure them out as they go along.

                                                                                    Interview at one of the clients I work with involves implementing a binary tree (just the basics, here’s the API, implement adding a new element to it – not even lookups). People we interview generally know what a binary tree is, and usually they have no trouble implementing it – it’s trivial enough that you shouldn’t have a problem with it even if you last saw it at university 10 years ago. We recently had a candidate who was a self-taught programmer with a mathematics degree. We started off showing her a linear search function to code review. She described it well, suggested improvements. The list in the example was sorted, and we asked if the search could be improved somewhat given the patterns in example data. “Well, you could split the list into two halves…” and she described binary search. “Cool, that does algorithm have a name you’re familiar with?” “No, I don’t think so”. Okay then.

                                                                                    So then there’s the binary tree. The looks at the drawing of it, describes the properties, the implements in in one go, correctly, calling the Node a Knot (translated to Polish they’re the same word). Again, she had no idea if this data structure had any specific name. Naturally she got the job.

                                                                                    Linked lists may be useless in all applications nowadays (given that CPU caches generally make it an inferior choice in almost every scenario) (bad generalization, see comments below), but they do have a value on interviews imho: they tell you if the candidate knows what the data structures and algorithms lie beyond the APIs they use in their code every day, and if they don’t – even better! It’s easy enough figure it out and to write on the spot – and even if what you write isn’t fully correct, seeing the process and discussing their bugs is still valuable.

                                                                                    That’s actually a bit offtopic from this article – which is well worth reading in full indeed, and makes sense if you think about it. I think the Spolsky quote actually nails it, even without the historical context – people would still prefer (or think that they’d prefer) to hire Real Programmers [tm] who can deal with pointers rather than “script jocks” who just copy code around.

                                                                                    1. 20

                                                                                      Linked lists may be useless in all applications nowadays (given that CPU caches generally make it an inferior choice in almost every scenario)

                                                                                      This is not the first time I heard this (I recall a specific rust tutorial expressing this in particular), but this is such a weird take to me.

                                                                                      I work on high-performance datapath in software-defined networking. Those are highly optimized network stack using the usual low-latency/high-io architectures. In all of them, linked-list were fundamental as a data structure.

                                                                                      One example: a thoroughly optimized hash-table using cuckoo hash, with open addressing and concurrent lookup. It implements buckets as a linked-list of arrays of elements, each cell taking exactly one cache-line. The link-list is so fundamental as a construct there that arguably it is eclipsed by the other elements.

                                                                                      Another example: a lockless list of elements to collect after the next RCU sync round. Either the RCU allocates arrays of callbacks + arguments to call once synchronized, or the garbage collector consist in a list of nodes embedded in other objects and the reclaiming thread will jump from object to object to free them. The array-based one has issues as each thread will need to reallocate a growing array of callbacks, requiring bigger and bigger spans of contiguous memory when attempting to free elements.

                                                                                      Another example: when doing TSO on TCP segments, those are linked together and passed to the NIC to offload the merging. To avoid copying around segments of data during forwarding, they must be linked together.

                                                                                      There are countless other examples, where the high-performance requirement makes the linked-list a good solution actually. It avoid allocated large swath of memory in contiguous chunks, and allows being much more nimble in how memory is managed.

                                                                                      That being said of course, at the source of those elements (when new packets are received), everything must be done to attempt to pack the maximum of useful data for a fastpath in contiguous memory (using hugepages). But as you go higher in the stack it becomes more and more untenable. Then simple structures will allow building ancillary modules for specific cases.

                                                                                      I don’t see how linked-list will ever become completely useless. Maybe I’m just too far gone in my specific branch of software?

                                                                                      1. 11

                                                                                        Software is full of rules of thumb, some of them are true. I’m pretty sure someone wrote an article years ago on mechanical sympathy where they pointed out that a CPU can chew through contiguous memory a bunch faster than it can chase unknown pointers and since then “everyone knows” that linked lists are slow.

                                                                                        The reality is always more complicated and your experience optimizing real world systems definitely trumps the more general recommendations.

                                                                                        1. 1

                                                                                          I’m pretty sure someone wrote an article years ago

                                                                                          Bjarne Stroustroup did! https://m.youtube.com/watch?v=YQs6IC-vgmo

                                                                                        2. 6

                                                                                          Linked lists make sense in reality because solutions to real problems are bigger than benchmarks. Complicated custom datastructures with linked lists threaded through them are everywhere, but nobody looks at them when they’re looking to make a blanket statement about how fast linked lists are. (Such statements seem to rest on shaky foundations anyway; linked lists aren’t a thing that is fast or slow, but a technique that is more or less applicable).

                                                                                          I use linked lists mainly for bookkeeping where objects are only iterated occasionally, but created and deleted often, where they appeal mostly because they avoid headaches; their constant factors may not be great, but they scale to infinity in an uncomplicated way (and if I’m creating or deleting an object I’m allocating something in any event). I don’t often see linked list operations in flame graphs, and when I do it’s normally accidentally-quadratic behaviour, so I replace them with things that aren’t list-like at all.

                                                                                          Final idle thought: not scientific at all, but I note that linked list nodes can live inside the element itself without problems, while array elements are often indirected through an extra pointer to deal with move issues. While it doesn’t absolutely have to, code using such arrays often looks like it suffers from the same data dependency issues linked lists tend to.

                                                                                          1. 2

                                                                                            People like to make performance claims without ever generating any numbers to backup their assertions.

                                                                                            1. 2

                                                                                              True – same is true for “linked list are faster at insertions/deletions” though. I brought it up because I’ve heard it mentioned time and time again in my university days, and now time and time again at interviews etc, always at a scale where it doesn’t matter or is straight up incorrect. I’m sure they’ll always (or: for the foreseeable future) have their place, even if that place is not the common case. All the more reason to understand them even if you won’t often use them.

                                                                                              1. 1

                                                                                                There seems to be a long tradition of this kind of garbage. Decades ago I used to hear things like “malloc is slow” from my senior colleagues with nobody being able to explain to me (the young punk) what lead to the assertion.

                                                                                            2. 7

                                                                                              people would still prefer (or think that they’d prefer) to hire Real Programmers [tm] who can deal with pointers rather than “script jocks” who just copy code around.

                                                                                              Real Programmers™ is already a fallacy though that tends to amplify the issues on teams by hiring a group of people with very similar strengths, flaws, and viewpoints.

                                                                                              Put together, they give you an idea if the interviewee knows the CS fundamentals and/or can figure them out as they go along.

                                                                                              This may be true for some questions, like your binary search example, but I don’t think it’s true of the majority of linked list and pointer type questions that are asked in an interview setting. Linked list cycle finding (i.e. tortoise and the hare) comes to mind—a lot of people in the early 2010’s were defending this as something that either tested if you knew fundamentals or if you could piece them together, but it’s been pointed out half to death by now that the algorithm itself wasn’t developed until years after cycle finding was a known problem with people trying to solve it—almost everyone who passed a tortoise and the hare question either knew it in advance or was given hints by the interviewer that led them there without the interviewer believing they’d given it away (which is a pretty fraught and unnormalized thing).

                                                                                              In general, I think this is a high ideal that is really hard to build for and people convince themselves they have solved for it at far too high a rate. When I first started interviewing for software jobs (~2010), I learned quickly that if you knew the answer or had seen the question before, the right thing to do was to pretend you hadn’t and perform discovering the answer. This is a problem with nearly all knowledge-based interview questions; there will always be a degree to which you’re testing if the candidate is connected enough to know what the questions will look like ahead of time and what kinds of things will be tested.

                                                                                            1. 3

                                                                                              It wasn’t linked anywhere, but the library seems to be https://github.com/brave/adblock-rust/

                                                                                              1. 3

                                                                                                Yep, indeed - using https://github.com/ArniDagur/python-adblock to bridge it to Python/qutebrowser.

                                                                                              1. 6

                                                                                                I think it’s safe to say that most of us don’t exactly have fond memories about the early days of the 3.x series.

                                                                                                Hopefully this will be nothing like that!

                                                                                                1. 3

                                                                                                  They’ve guaranteed API stability this time, so fingered crossed, no churn. Porting also looks a lot simpler than 2->3 was.

                                                                                                  1. 3

                                                                                                    “Stability” was guaranteed at various points during the 3.x series, too, and it didn’t count for much. Remember, for example, that time (around 3.12 or 3.14?) when we all breathed a sigh of relief that support for theme engines was just being “deprecated” and would remain in until GTK 4, and that turned out to mean the methods won’t be removed, so that the code will still compile, they just won’t do anything anymore?

                                                                                                    1. 1

                                                                                                      There is no API stability. See my other comment. They have removed major GTK components.

                                                                                                      1. 4

                                                                                                        I don’t think anyone was expecting API stability between 3 and 4 though? That’s kind of the whole thing of major versions.

                                                                                                        1. 1

                                                                                                          Yeah, what they’re not doing is changing the core APIs in 4.x.

                                                                                                          1. 1

                                                                                                            What do they mean by Core APIs then? If GTK.container is not one, then what is? I know the input manager APIs are vastly different as well?

                                                                                                            1. 4

                                                                                                              I should have been clear: in 4.x minor versions. The churn in early 3.x minor versions was… not exactly SemVer.

                                                                                                  1. 55

                                                                                                    We need a postmortem on how a small group of wokes were able to force millions of hours of toil on the entire software industry. Think of all the repos and scripts that have to be updated… my god.

                                                                                                    The connection between master branches and slavery is suuuuuch a stretch: git has no concept of slave branches, but BitKeeper, the version control system git was based on did. In woke logic, being descended from something offensive makes you offensive, therefore git is offensive.

                                                                                                    As crazy as this is, there’s no way I’m going to fight this one. The mobs of self-righteous wokes that police the software industry are too strong, so I will update my repos and double-check my scripts like a good little worker bee.

                                                                                                    1. 46

                                                                                                      Here’s your postmortem: the “small group” of “wokes” appears to be the majority of our industry, just people trying to be kinder to one another. Personally I find the change heartening.

                                                                                                      1. 21

                                                                                                        I agree that this is true for a lot of things but I find this one a bit of a stretch. For example, I fully support avoiding the terms ‘blacklist’ and ‘whitelist’ because they provide a narrative that white == good, black == bad, which is not something I want to perpetuate in a society where ‘black’ and ‘white’ are adjectives applied to people independent of any personal choice on their part.

                                                                                                        The discussions I’ve seen around renaming the branch name have had white Americans leading the charge for this change and black people either saying nothing or that they don’t personally feel a negative connection with the word ‘master’ and they’d rather white folks spent more time addressing structural racism and less time addressing words with a tenuous connection to some awful bits of history. The word ‘master’ in the absence of ‘slave’ crops up in so many other contexts (in degree titles, master of martial arts, master chef, and so on) and, if anything, this narrative is pushing the idea that black people can’t (or shouldn’t) self-identify with the word ‘master’ in any context, which is pretty harmful.

                                                                                                        That said, on a personal level, I recently followed some advice in another article to put the current Git branch name in my command prompt and main gives me two extra characters of space before I wrap lines than master, so I do see a small concrete benefit to this.

                                                                                                        1. 15

                                                                                                          My own anecdata tells me that the number of black people who are uncomfortable with master/slave terminology in tech isn’t zero. I’m with you 100% on this not being the most important thing to tackle, but I fail to see why we shouldn’t do this as well as address the larger systemic problems.

                                                                                                          The default branch in git seems like such a silly thing for people to object to changing (to me, at least) as branch names have no special meaning. All these scripts that need changing have the same bug: they hard-coded a value which was never guaranteed to be static.

                                                                                                          This isn’t directed at you, but I read through threads like these and find myself wondering about the folks who argue strongly that this change, of all things, is simply too much to bear.

                                                                                                          1. 9

                                                                                                            The default branch in git seems like such a silly thing for people to object to changing (to me, at least) as branch names have no special meaning. All these scripts that need changing have the same bug: they hard-coded a value which was never guaranteed to be static.

                                                                                                            It was never guaranteed, no, but it was the de-facto default for the overwhelming majority; probably above 99%. I’m a big fan of “convention over configuration”, and that has now been kind of lost. I also have 70 git repos or some such I now need to rename (or stick to “master” which might be misconstrued as making some political point) and probably a script or three.

                                                                                                            At my last job we had even more repos, and a bunch of scripts floating left and right on people’s machines. Changing all of this for a group of ~100 devs and making sure everyone is up to date would be quite a task. Life is short; and there are real problems everyone agrees on. It just seems to me it would be much better if all that time and money was spent on more important issues.

                                                                                                            At any rate, I think why people object so strongly is a resentment over being told what to do. No one really likes that, and a lot of people have the feeling this change is being imposed upon them. Hell, I feel this change is being imposed on me, because I now need to spend time on something I don’t see the point of. It’s not a “passive change” like a project renaming some terminology which doesn’t affect much outside of some documentation or popup.

                                                                                                            Personally I think all of this is wasting a lot of political capital on something that’s … just nowhere near the top of the priority list, even if you agree it’s a problem in the first place. This seems to be a pattern I’ve seen over the last few years; this lack of focus, prioritisation, stubbornness, and tendency to divide people in camps is why I find American liberals so incredibly frustrating to deal with 🤷‍♂️

                                                                                                            1. 5

                                                                                                              At my last job we had even more repos, and a bunch of scripts floating left and right on people’s machines. Changing all of this for a group of ~100 devs and making sure everyone is up to date would be quite a task. Life is short; and there are real problems everyone agrees on. It just seems to me it would be much better if all that time and money was spent on more important issues.

                                                                                                              My expectation is that when/if this change lands we’ll all be even more bored with it. It’s just a change to the default, I don’t see why much at my work or in my personal projects would need to change. Either we’re using 3rd-party generic tooling which definitely has the ability to specify branches and better not have hardcoded assumptions by the time this actually happens, or it’s just some in-house tooling which only needs to work on our own repos.

                                                                                                              At any rate, I think why people object so strongly is a resentment over being told what to do. No one really likes that, and a lot of people have the feeling this change is being imposed upon them. Hell, I feel this change is being imposed on me, because I now need to spend time on something I don’t see the point of. It’s not a “passive change” like a project renaming some terminology which doesn’t affect much outside of some documentation or popup.

                                                                                                              I think you’re spot on when you say folks are mostly objecting to being told what to do. I think our perception of the people who (we believe) are telling us what to do is also at play here.

                                                                                                              Personally I think all of this is wasting a lot of political capital on something that’s … just nowhere near the top of the priority list, even if you agree it’s a problem in the first place. This seems to be a pattern I’ve seen over the last few years; this lack of focus, prioritisation, stubbornness, and tendency to divide people in camps is why I find American liberals so incredibly frustrating to deal with 🤷‍♂️

                                                                                                              I’m not sure I deal with American liberals much (I honestly don’t know the political leanings of the few American colleagues I have), so I defer to you here. My staggeringly obvious observation is that lately there’s a whole lot more dividing people into camps going on, by seemingly everyone.

                                                                                                              Thank you, sincerely, for taking the time to reply to me. What started as an off-the-cuff comment while I ate my sandwich has snowballed into quite the thread (by Lobsters standards anyway). I’ve spent more time thinking about this topic in the last 24h than I ever have before, that’s for sure :-) I think I’m done with this thread; my guess is most folks reading this, regardless of their thoughts on git’s default branch name, think it’s a garbage fire.

                                                                                                              1. 4

                                                                                                                I also have 70 git repos or some such I now need to rename (or stick to “master” which might be misconstrued as making some political point) and probably a script or three.

                                                                                                                This reads to me as emblematic of a certain paranoia in the id of this community that I really think we ought to call attention to (not you specifically, but this fear more broadly). This type of fear is a counter productive projection that we need to let go of because it prevents us from making real progress.

                                                                                                                I guarantee you that nobody is going to come across one of your git repos and call you out as a racist/colonizer/white supremacist/you name it. The vast majority of people calling for a better default branch name are reasonable and morally centered people who simply want to speak to their terminal without unnecessarily charged metaphors. They themselves almost certainly have git repos that will continue to use the branch master. People are not the personification of the “wokes” that the OP feels the need to fabricate.

                                                                                                                People all over this thread are afraid of the scary “woke mob” bogeyman, but if they were to get off of twitter and have an actual conversation with real antiracist people, they’d probably realize they’re normal people with strong moral values who spend energy on constructing a more just world. What’s funny to me about this whole “master” debate is that I think the folks making the most noise are the ones fighting against the change. Those pushing for it have bigger fish to fry.

                                                                                                                1. 8

                                                                                                                  In this particular case I don’t expect people to come in and start accusing me of anything, but they might see “master” and misconstrue that to mean something even though it doesn’t. Of course, if I do change it then other people might also misconstrue it to mean something. I kind of feel a bit stuck here; as this politicisation of a bloody branch name is forcing me to take a position where I don’t really feel comfterable with either side (you can’t really inject nuance in a branch name). Although I obviously feel significantly less comfterable with all the “SJW cultural marxists!!!” idiocy, that doesn’t automatically mean I feel comfterable with the other side.

                                                                                                                  I also don’t think that the “woke mob bogeyman” is quite as paranoid as you make it out to be; I’ve definitely seen quite a few incidents first-hand – and even been subjected to some – where people were beleaguered over a triviality, which sometimes resulted in some downright bullying. I know this isn’t the majority of people, but as the same time there definitely is a subgroup of what we might call “toxic SJWs”, for lack of a better term, which reflects really badly on the entire cause.

                                                                                                                  What’s funny to me about this whole “master” debate is that I think the folks making the most noise are the ones fighting against the change. Those pushing for it have bigger fish to fry.

                                                                                                                  I think that’s kind of a strange sentiment; do you expect people to just accept anything uncritically? And if there are bigger fish to fry, then why not fry them instead of wasting all this goodwill and political capital on this?

                                                                                                                  1. 3

                                                                                                                    I think that’s kind of a strange sentiment; do you expect people to just accept anything uncritically?

                                                                                                                    Of course not. Critical thinking is required to reflect on the value of language in this context. It’s precisely a lack of critical thinking that leads to knee-jerk reactions, projections, straw men, overemphasis of the technical implications and these wacky slippery slope arguments I am seeing up and down the thread.

                                                                                                                    And if there are bigger fish to fry, then why not fry them instead of wasting all this goodwill and political capital on this?

                                                                                                                    Because people who care about social progress are pretty good at walking and chewing gum at the same time. You can go to the local DSA meeting, take part in a protest, read books from the library, and also send emails about git. You yourself mentioned having 70 git repos. Is it hard to imagine that a large group of people are capable of multitasking?

                                                                                                                    1. 4

                                                                                                                      And if there are bigger fish to fry, then why not fry them instead of wasting all this goodwill and political capital on this?

                                                                                                                      Because people who care about social progress are pretty good at walking and chewing gum at the same time. You can go to the local DSA meeting, take part in a protest, read books from the library, and also send emails about git. You yourself mentioned having 70 git repos. Is it hard to imagine that a large group of people are capable of multitasking?

                                                                                                                      A day still has 24 hours, so there really is a hard limit on things, and more importantly, because you’re asking other people to change with you, you also need to factor in that not everyone is willing to spend the same amount of time on this kind of stuff. This is what I meant with “wasting all this goodwill and political capital”.

                                                                                                                      There are also plenty of far bigger issues that see hardly any attention, often because there is far too much focus on much less important matters. I’ll avoid naming examples so this doesn’t turn too political, but the whole “walking and chewing gum” multitask theory is a bit misguided IMHO. It annoys (even angers) me because all of this is standing in the way of actual progress.

                                                                                                                  2. -1

                                                                                                                    People all over this thread are afraid of the scary “woke mob” bogeyman, but if they were to get off of twitter and have an actual conversation with real antiracist people, they’d probably realize they’re normal people with strong moral values who spend energy on constructing a more just world.

                                                                                                                    Is it even possible to have a conversation with these Enlightened Ones, whose moral values are so much stronger than the rest of us?

                                                                                                                2. 4

                                                                                                                  You’re not black and represent exactly zero black people in tech.

                                                                                                                  1. 2

                                                                                                                    Very true.

                                                                                                              2. 7

                                                                                                                Or, perhaps, they are the majority of people who care. Most people don’t care too much about what to call the default branch. For the average person, this is probably a small bit of trivia. The people who care (in either direction) are probably the minority. Of course, the people are care are the people who choose.

                                                                                                                1. 4

                                                                                                                  I suspect you’re correct; I’m looking at discussions like this and mistakenly assuming most people are “in the room”, but of course it’s only the people who care either way who bother to chime in. Thanks for reminding me of that :-)

                                                                                                                2. 5

                                                                                                                  You you mean the majority of the leaders of large, influential entities in the industry.

                                                                                                                  1. 5

                                                                                                                    It’s kind of a difficult conversation to have; I think that all things considered, there are very few people who want to be unwelcome, much less (subtly) racist, but once you argue “this is a pointless change” it’s very easy to have the optics of that. This is made even worse by all the “zomg, another example of cultural marxist feminazi SJWs destroying civilisation!!!!111” idiots.

                                                                                                                    Most people that I know respond to this with “sigh 🙄”, but don’t really say much about it, and a very small amount of people I know are in favour of this. This is not a very scientific opinion poll of course, but as far as I can see it’s really quite a small minority.

                                                                                                                    As I argued last time, I’d personally rather not comment too much on this to give people who are actually affected by this a chance to speak without being drowned out, and in the 5 months since I placed that comment I still see mostly white people (including myself) discus issues that don’t affect them, which makes me kind of uncomfortable.

                                                                                                                    1. 4

                                                                                                                      How is the master branch unkind? Do you think everyone using git was being unkind until this change?

                                                                                                                      1. 2

                                                                                                                        It’s not, and I certainly don’t think everyone using git is being unkind either.

                                                                                                                        I think that changing the default branch name to not reference master/slave terminology (a common thing in IT which I know has made at least one of my friends uncomfortable) shows kindness and empathy. It is a tiny, minuscule such act, to be sure.

                                                                                                                        Not making this change is not an act of unkindness. Using the branch name “master” in your repos is not an act of unkindness. An unkind act would be renaming the default branch to a racial slur. That’s my view on it, at least: not being kind isn’t the same as being unkind.

                                                                                                                        I regret my pretty barbed initial reply to you, and I apologise. Reading it back, I made distinctly unkind assumptions :-)

                                                                                                                    2. 36

                                                                                                                      Worth to read: The Most Intolerant Wins: The Dictatorship of the Small Minority

                                                                                                                      It explains the logic behind it. The funniest part of this is that master as a word predates slavery in the US.

                                                                                                                      c. 1200, maistren, “to get the better of, prevail against; reduce to subjugation,” from master (n.) and also from Old French maistriier, Medieval Latin magistrare. Meaning “acquire complete knowledge of, overcome the difficulties of, learn so as to be able to apply or use” is from 1740s. Related: Mastered; mastering.

                                                                                                                      https://medium.com/incerto/the-most-intolerant-wins-the-dictatorship-of-the-small-minority-3f1f83ce4e15

                                                                                                                      UPDATE: tadzik’s was correcting me on the missing qualifier for which slavery i am talking about

                                                                                                                      1. 19

                                                                                                                        master as a word predates slavery

                                                                                                                        I’m pretty sure slavery existed long before the 1200s ;) Did you mean “american slavery”?

                                                                                                                        1. 12

                                                                                                                          Yes, sorry, I mean the slavery why the mob is upset now. Slavery outside of the context of USA is irrelevant to them because it does not fit their narrative. Thomas Sowell writes a lot about this.

                                                                                                                          1. 3

                                                                                                                            No worries, thanks for clarifying – and for the reading links :)

                                                                                                                        2. 6

                                                                                                                          This was an entertaining read, thanks. This should actually be the top comment, since it gives more insight on what’s going on than any ideological comment in this thread (on lobsters, but on other sites as well).

                                                                                                                        3. 45

                                                                                                                          Not only you can’t fight this one, but not actively participating in woke’s narration makes you their enemy. Even expressing dislike about this patch risks being taken as a person who is pro-slavery, which is an obvious BS. But indeed, you can’t fight with angry mob alone.

                                                                                                                          1. 13

                                                                                                                            You misunderstand the primary ‘woke’ argument.

                                                                                                                            The primary argument is that encountering the word ‘master’ reminds people of the enslavement of their ancestors, the related stories of suffering and the discrimination and oppression they are still being subjected to. It’s what is called a micro-aggression: something that isn’t a problem in small doses, but that adds up when experienced over and over again. Death by a thousand cuts.

                                                                                                                            What this change, and others like it, intend to accomplish is not unnecessarily subjecting people to such reminders.

                                                                                                                            1. 13

                                                                                                                              Guess we gotta remove it from the dictionary too, lest they chance upon it and feel hurt.

                                                                                                                              1. 6

                                                                                                                                That would be the logical conclusion from the argument, save for the word ‘unnecessarily’.

                                                                                                                                The question is when it is appropriate to not be accommodating to those that claim being hurt, because the cost of accommodating them is too high. And it bears mentioning that the cost effectively, indirectly, causes others to suffer.

                                                                                                                                It’s not all or nothing. You don’t have to reject the argument to reject the conclusion, as it hinges on costs and thus trade offs. There should be a few Schelling points here and I agree that it seems unreasonably difficult to defend some of those points.

                                                                                                                              2. 12

                                                                                                                                Well, my homeland has suffered a communist dictatorship and invasion for decades. Reading the cultural marxism here and there reminds me of the terrors my people, and specifically my family has suffered from communism in the last hundred years.

                                                                                                                                What could be changed, to unnecessarily subject me to these micro-agressions?

                                                                                                                                1. 12

                                                                                                                                  cultural marxism is a conspiracy theory invented by the american far right. Go complain to them.

                                                                                                                                  1. 7

                                                                                                                                    Actually it’s reinforced by former USSR KGB agents ;).

                                                                                                                                    1. 4

                                                                                                                                      totally a reputable and unbiased source on this topic

                                                                                                                                      1. 5

                                                                                                                                        Well, can’t deny that they actually had much experience with it (Stalin, Lenin), unlike USA

                                                                                                                                    2. 9

                                                                                                                                      sure, whatever different opinion appears it is fake news, conspiracy theory, or simply wrong, not worth consideration or discussion.

                                                                                                                                      1. 9

                                                                                                                                        When there is:

                                                                                                                                        • kids being threatened
                                                                                                                                        • jews in disguise
                                                                                                                                        • any flavor of progressive agenda threatening the lifestyle of conservative or reactionary white people
                                                                                                                                        • loose attacks on intellectuals

                                                                                                                                        Yep, it’s probably a conspirancy theory. QAnon is the same, just more loud and with sweatpants instead of cheap fedoras.

                                                                                                                                        1. 4

                                                                                                                                          nah, you’re just wrong. the origins of cultural marxism

                                                                                                                                      2. 2

                                                                                                                                        That one group was lucky enough to get their cause taken up by a larger group of activists doesn’t entitle any other group to get their cause taken up as well. But the arbitrariness doesn’t imply anything about the reality and worthiness of the cause (neither in the positive nor in the negative direction).

                                                                                                                                        You could start a movement to try and get your cause taken up by as many fellow activists as you can find to spread awareness so broadly that it leads to changes like the one we are discussing here. An outcome could be that promoting communism becomes something that is considered shameful.

                                                                                                                                        1. 1

                                                                                                                                          Frankly, comparing the suffering of the victims of Communism to having to make a minor change in a software workflow strikes me as wildly hyperbolic.

                                                                                                                                          1. 11
                                                                                                                                            1. If I was comparing the suffering of victims of communism to anything that would be the suffering of the victims of slavery in the USA in the context of my comment.
                                                                                                                                            2. What I was comparing is that the micro-agressions I am subjected to by some comments on the internet, are of the same category, as the micro-agressions one has to take when reads the master word while working with version control.

                                                                                                                                            If you think I should not be reminded of that, and the above is a hyperbole (not what you said), that is an opinion some share about the case about the push to remove the word master.

                                                                                                                                            1. 3

                                                                                                                                              Thanks for clarifying your position.

                                                                                                                                      3. 17

                                                                                                                                        I think you can make this point without using such charged language.

                                                                                                                                        I happen to agree with the change, but I don’t consider myself a “self-righteous woke”. I read your post and felt uneasy.

                                                                                                                                        1. 4

                                                                                                                                          The obvious solution is to fork git, keep master as the default name, and give it a nice new name, like… Consolidated Source Association, or similar…

                                                                                                                                          1. 3

                                                                                                                                            So in summary, you think that master in git is not offensive, and you think that people who do find it offensive are ridiculous. Curious, how many of your coworkers are black?

                                                                                                                                            1. 71

                                                                                                                                              Curious, how many of your coworkers are black?

                                                                                                                                              This feels a bit like “what do you even know about being offended”. I share /u/y0ssar1an’s viewpoint, so let me tell you how it looks from my perspective. I have zero black coworkers as I live in a country that barely has any black people in it at all (Poland). The word “master” doesn’t hold have any negative meaning to people around here. But there is another: “Collaborator”. Used very widely in VCS-related software, in our cultural context it immediately reminds people of the old meaning: “the one who collaborated with the nazis during WW2”.

                                                                                                                                              My ancestors fought in WW2. Am I now smearing their name because I have myself become a collaborator? Should I now feel uncomfortable because someone on the other end of the world came up with a word that makes me slightly uncomfortable? No, that’d be absolutely ridiculous. Every cultures has words that make some people uncomfortable, and trying to please everyone by making the subset of the language we use smaller and smaller is not just futile imo – it’s also pointless, and arguably a detriment to diversity by itself.

                                                                                                                                              The implication that slavery is somehow inherently connected to racism is by itself an ameri-centric idea. This whole master->main “diversity theater” feels like a symptom of a particular culture being unable to deal with their past (or largely their present, afaict) and thus resorting to empty gestures rather than trying to deal with real problems – last I checked, Github, the champion of the “master bad” movement was still working with ICE who’s basically building concentration camps for minorities. But I guess it doesn’t bother people as much since it’s not so well entrenched in american culture.

                                                                                                                                              1. 1

                                                                                                                                                The implication that slavery is somehow inherently connected to racism is by itself an ameri-centric idea.

                                                                                                                                                I could not imagine what exactly it is that make America, slavery, and racism so connected! Words have meaning which are inherently connected to history. Just because you want to pretend that they always mean what makes you feel best doesn’t mean everyone is going to harbor the same narrow viewpoint as you.

                                                                                                                                                1. 10

                                                                                                                                                  Outside of the USA slavery has been a think before, and at some unlucky places after the abolition in the USA. It did not generally have a racist motivation: debtors could sell themselves as slaves, prisoners of war were sold as slaves, and in many feudal states serfs had so few rights and possessions, that they were basically slaves.

                                                                                                                                                  It is ironic, but in Tibet actually the invading communist chineese have abolished slavery, where it had no racist character.

                                                                                                                                                  In the USA, and the Americas generally slavery did have a racist character, as the slaves sold by the Netherlander, English and Arabic slavers were mostly of African origin.

                                                                                                                                                  1. 5

                                                                                                                                                    Totally correct. Historians very regularly caution against comparing the brutality and sheer scale of the transatlantic slave trade to earlier forms of slavery. A great way to understand why is to go back to the fall of the Songhai Empire for it is through the unfolding of that empire and the colonial fire that engulfed its ruins that the taking and trading of slaves exploded violently and grew to dispossess, dislocate, and traumatize millions of families.

                                                                                                                                                2. 1

                                                                                                                                                  The use of the (American) English language can be seen as a form of cultural imperialism, but it also allows people like you (not native English speakers, but part of the global computing community) to reach markets previously unimaginable. I think putting up with the occasional linguistic disruption that emanates from the dominant market should be worth it.

                                                                                                                                                3. 34

                                                                                                                                                  I wonder how many of them have MSc degrees. You know, Main of Sciences degree.

                                                                                                                                                  1. 12

                                                                                                                                                    The two definitions of the word “master” for “owner” and “teacher” are a doublet, they come from different etymological paths that converged. Git derives its use from the former.

                                                                                                                                                    1. 7

                                                                                                                                                      And where they keep the main copy of their diplomas.

                                                                                                                                                1. 1

                                                                                                                                                  “ Categorising code as either public or private is an attempt to reduce the costs of change by communicating stability.”

                                                                                                                                                  The purpose is to hide internal functionality from those seeking to use an abstraction. It isn’t to somehow indicate what is stable or not.

                                                                                                                                                  “It’s to reduce future maintenance costs by discouraging coupling to unstable dependencies.”

                                                                                                                                                  I think this is a possible consequence, not its purpose.

                                                                                                                                                  1. 1

                                                                                                                                                    The purpose is to hide internal functionality from those seeking to use an abstraction. It isn’t to somehow indicate what is stable or not.

                                                                                                                                                    Why hide internal functionality? Why not make it all public?

                                                                                                                                                    1. 1

                                                                                                                                                      Because objects have rights. And from that perspective, the unnecessary word is not private, but public; why should a language ever have a default behavior of breaking isolation and integrity? When we allow objects to keep to themselves and be left alone, then we are able to more fully notice when we take improper advantage of ambient authority.

                                                                                                                                                      1. 1

                                                                                                                                                        Well it depends on what one is modeling, but as an example consider the Abstract Data Type, like a stack or queue. They are defined in terms of their operations, not their internal representation. That representation together with supporting functionality is hidden by definition.

                                                                                                                                                        Alternatively, consider that you are modeling a phenomena using an object in an object-oriented language. That one can make requests that the object do something without necessarily knowing how it does it, is how one can model a complex process unimportant to the requestor. An elevator (modeled in software) might know how to move between floors, but how it does so is unimportant to the requestor.

                                                                                                                                                        This perhaps goes right back to the invention of the subroutine by Maurice Wilkes in the early 1950s. Being able to decompose problems into small reusable parts that hide their implementation, is necessary to create complex programs. The alternative of a very long procedure that merely has jump or goto statements is surely unattractive unless the problem is simple or trivial?

                                                                                                                                                        1. 1

                                                                                                                                                          Making things hidden (private) ensures that you don’t break someone else’s code with your internal changes. It’s a contract between you and your user – they agree to the fact that they won’t be able to use the private parts, while you agree to never break the public interface, while still having the ability to turn the internal details upside down if you so desire. As others have mentioned, it helps to reduce the mental load too: the user doesn’t need to read into every internal detail of your objects/modules, it’s enough for them to just be aware of the public bits.

                                                                                                                                                          1. 1

                                                                                                                                                            Yep, it’s to allow changes, and changes are a measure of stability. If it could be guaranteed not to change, then you wouldn’t really get any benefit from making it private. I was trying to show that to the original commenter with Socratic questioning, but they managed to dodge it expertly.

                                                                                                                                                      1. 2

                                                                                                                                                        I rebind:

                                                                                                                                                        " colemak
                                                                                                                                                        " arrows => hnei  (qwerty hjkl)
                                                                                                                                                        " undo => l       (qwerty u)
                                                                                                                                                        " insert => u     (qwerty i)
                                                                                                                                                        " nextsearch => k (qwerty n)
                                                                                                                                                        noremap n j
                                                                                                                                                        noremap e k
                                                                                                                                                        noremap i l
                                                                                                                                                        noremap k n
                                                                                                                                                        noremap u i
                                                                                                                                                        noremap l u
                                                                                                                                                        
                                                                                                                                                        1. 7

                                                                                                                                                          Overly dramatic. And I do like getting a free t shirt.

                                                                                                                                                          1. 15

                                                                                                                                                            Not at all. I have a few sub-500 stars projects, and they too get a significant amount of spammy PRs. It’s literally just “Adding a gif to the readme” or something similarly ridiculous.

                                                                                                                                                            And I can’t begin to imagine how much crap high-profile project maintainers have to deal with. This post is fully warranted.

                                                                                                                                                            1. 10

                                                                                                                                                              Interestingly, I’ve gotten zero thus far. I wonder if tech choice and/or the kind of project is a factor here?

                                                                                                                                                              1. 2

                                                                                                                                                                I should’ve been clear—I was describing my experience from last year. After all, it’s only Oct 1st. Give it time. :)

                                                                                                                                                                I’ve gotten two so far for Hacktoberfest 2020, by the way.

                                                                                                                                                                1. 2

                                                                                                                                                                  I didn’t get any last year either; or any year. Actually, this is the first time I heard of the entire thing 🤔

                                                                                                                                                              2. 4

                                                                                                                                                                To add some context, Vaelatern is a Void Linux contributor and we encouraged hacktoberfest PRs: https://twitter.com/VoidLinux/status/1179006377219506177.

                                                                                                                                                                There is a spam problem but for some reason we were not the target, maybe because its not python, js or html.

                                                                                                                                                                Not sure about the stars, but we are now at 1.1k and I think we already had around 500 in 2018. I think we were easily one of the top non-spammy “add your name to a file” repositories.

                                                                                                                                                              3. 8

                                                                                                                                                                I’d love actual contributions. Even if they were just typo fixes, or I had to guide a novice how to improve the code.

                                                                                                                                                                But the only “contributions” I’ve got were pure useless garbage. Someone has added “Requires Windows 7 or higher” (with worse spelling) to my Mac app. They didn’t even bother read a single line of the README they were changing.

                                                                                                                                                                1. 3

                                                                                                                                                                  I thought so too, but take a look at this: https://github.com/search?o=desc&q=is%3Apr+%22improve+docs%22&s=created&type=Issues

                                                                                                                                                                  Try “amazing project” too. It’s an onslaught. I don’t remember it ever being this bad, but perhaps it was for the more popular repos.

                                                                                                                                                                  1. 2

                                                                                                                                                                    This small 0-star project got three “improve docs” PRs in the last 40 minutes from three different accounts (just noticed it was mentioned several times on the first page): https://github.com/tehpug/TehPUG/pulls?q=is%3Apr+is%3Aclosed

                                                                                                                                                                    Then I clicked another random project from that list, and this 4-star project has four pages of PRs spammed: https://github.com/Moeplhausen/SunknightsWebsite/pulls – literally those entire four pages are full of this idiocy, there’s not one legitimate PR in there. This is just idiocy.

                                                                                                                                                                    I don’t know why these projects gets so many, nothing about those repos or the accounts/organisations they belong to seems well-known in the slightest; just a typical small project people uploaded just for code hosting. As I mentioned in my other comment, I’ve gotten zero PRs thus far in spite of having several >100 star repos. If these repo are targetted (and I think that’s an appropriate term here) them why aren’t mine? 🤔

                                                                                                                                                                    What a clusterfuck.

                                                                                                                                                                    1. 3

                                                                                                                                                                      I would guess they are now targeting small/inactive repositories in the hope of maintainers not flagging their PRs within the 7 day period in which “invalid” flags are checked.

                                                                                                                                                                      They could instead of make PRs to their own repos or create organizations without bothering other projects.

                                                                                                                                                                      1. 1

                                                                                                                                                                        Right; that makes sense. I assumed you need to actually have the PR merged to count, but turns out you just need to make it.

                                                                                                                                                                        As for making your own repo, the site mentions:

                                                                                                                                                                        Bad repositories will be excluded. In the past, we’ve seen many repositories that encourage participants to make simple pull requests – such as adding their name to a file – to quickly gain a pull request toward completing Hacktoberfest. [..] We’ve implemented a system to block these repositories, and any pull requests submitted to such repositories will not be counted.

                                                                                                                                                                  2. 3

                                                                                                                                                                    I archived a repo two days back to avoid this spam (and I’m not actively working on it anyway)

                                                                                                                                                                    https://github.com/learnbyexample/Python_Basics/pulls?q=is%3Apr+is%3Aclosed

                                                                                                                                                                    1. 1

                                                                                                                                                                      man I’d feel bad if I was abhinav-TB and created a PR for some project only to have it closed without comment a mere 5 days later

                                                                                                                                                                      1. 1

                                                                                                                                                                        may be if they read the readme first or if they explained why they are making a pointless PR, then perhaps I’d have made an effort to comment

                                                                                                                                                                  1. 6

                                                                                                                                                                    So I am growing increasingly dissatisfied with even the minimal utility I get out of Facebook (sharing pictures of my kids with family members) and have thought about standing up a fediverse instance and trying to use that, instead. The problem for me is with the clients – how are they, for elderly parents with a strong interest in granddaughters and none at all with fiddling with technology? How is the fediverse for non-nerds?

                                                                                                                                                                    1. 10

                                                                                                                                                                      You should absolutely not share pictures of your kids on ActivityPub. Depending on the software you are using its either more like Twitter or more like blogging software like Wordpress (wordpress has an AP plugin actually, and dedicated blogging instance software like write freely and plume exist and rock)

                                                                                                                                                                      Can’t speak for the current state of Diaspora, but THAT is what you are looking for.

                                                                                                                                                                      1. 5

                                                                                                                                                                        The Fediverse, in general, is closer to Twitter than it is Facebook. That being said, Tusky for Android and Mast for iOS are both (IMO) better than the Twitter client for both platforms. Both incredibly polished and intuitive. There’s a number of high quality clients, but these are the two that I’ve personally settled on.

                                                                                                                                                                        1. 3

                                                                                                                                                                          Interesting. I wonder if there is anything that is more of a Facebook replacement.

                                                                                                                                                                          1. 4

                                                                                                                                                                            Diaspora perhaps?

                                                                                                                                                                            1. 3

                                                                                                                                                                              Yeah, Disaspora looks more facebook-like. I don’t think it’s quite as popular as the Fediverse, and it’s not built on ActivityPub to my knowledge.

                                                                                                                                                                              If you’re into more Instagram-like (ie. photosharing), there’s always Pixelfed as well, which is part of the Fediverse

                                                                                                                                                                              1. 3

                                                                                                                                                                                ActivityPub. And no, it’s not a great protocol for a Facebook-like; the existing projects are all fairly nascent and have been struggling with follower/friend mechanics.

                                                                                                                                                                            2. 3

                                                                                                                                                                              friendica could be interesting for you

                                                                                                                                                                              1. 3

                                                                                                                                                                                Thanks, I’ll check it out. I’ve always wondered about building something like Facebook but focussed on the needs of families, particularly families with small kids. Yeah, it would never be a billion dollar thing, but nowadays it seems like there might be an appetite for something less crap than Facebook.

                                                                                                                                                                                1. 2

                                                                                                                                                                                  For the social network, I always thought that the Google circles concept was way better. I wonder if there are any successors to that concept.

                                                                                                                                                                            3. 2

                                                                                                                                                                              I don’t use iOS so I haven’t been able to try it myself, but I just want to mention that Mast does still seem to be open source, the repo is here: https://github.com/ShihabMe/Mast2 It’s annoyingly difficult to find that repo, I found the link on the developer’s Mastodon account. Many open source projects don’t adequately advertise their open source nature, which is a source of significant frustration for me.

                                                                                                                                                                              1. 1

                                                                                                                                                                                And the guy is doing a lot of support directly on mastodon.

                                                                                                                                                                          1. 19

                                                                                                                                                                            Mastodon used about ~2.5 GB out of the 4 I have on my Pi. With Pleroma, the total used RAM is only about ~700 MB. That’s crazy!

                                                                                                                                                                            I agree it’s crazy. Crazy less bloated, and crazy still bloated.

                                                                                                                                                                            700MB. Christ.

                                                                                                                                                                            1. 27

                                                                                                                                                                              To be clear, the 700 MB is the total RAM usage, i.e. by all programs and not Pleroma alone.

                                                                                                                                                                              1. 21

                                                                                                                                                                                That 700MB includes a Postgres database and a webserver.

                                                                                                                                                                                1. 9

                                                                                                                                                                                  I wonder if we can still run pleroma in a 256mb ram system. Most of the ram is used by postgres, and that can be configured to use a lot less.

                                                                                                                                                                                  1. 11

                                                                                                                                                                                    I bet you can but PostgreSQL is also very tricky to limit RAM usage to a certain cap. First off the defaults are very conservative in most cases you would be cranking all the values up not down but you already know that as if I recall correctly I saw some great articles regarding PostgreSQL inner-workings from your blog posts on pleroma development.

                                                                                                                                                                                    That said there are several configs that have direct and indirect influence on how much memory PostgreSQL will use: shared_buffers - the actual working set of the data the DB hacks on, that will be the largest immediate RAM allocation. Then we have the tricky parts like work_mem which is a per connection allocation but not a per connection limit. If your work mem is 8 MB and you execute a query which has 4 nodes in the resulting plan you can allocate up to 4*8 MB for that one connection. If you add to that parallel query execution then multiply that by concurrently running workers. I assume pleroma uses a connection pool so that alone can bump RAM usage a lot. Add to that things like maintenance_work_mem for tasks like vacuums and index rebuilds and you quickly can see how the actual memory usage can fluctuate on a whim.

                                                                                                                                                                                    To the point.

                                                                                                                                                                                    I agree it’s crazy. Crazy less bloated, and crazy still bloated.

                                                                                                                                                                                    700MB. Christ.

                                                                                                                                                                                    I simply think @ethoh is wrong. 700 MB usage is crazy low for a RDBMS and we are talking about RDBMS + a whole app using it. Databases are designed to utilize memory and avoid hitting the disk when not necessary. Unused memory is wasted memory.

                                                                                                                                                                                    1. 3

                                                                                                                                                                                      700 MB usage is crazy low for a RDBMS

                                                                                                                                                                                      I don’t really get how you can make this claim with no reference at all to the data storage needs of the application. A fair metric would be the overhead of the DB relative to the application data. In this case we’d need to know some things about how Mastodon and Pleroma work, and how OP managed his instances of them.

                                                                                                                                                                                      1. 4

                                                                                                                                                                                        I don’t really get how you can make this claim with no reference at all to the data storage needs of the application.

                                                                                                                                                                                        In similar fashion the OP claimed that 700 MB is crazy bloated. I was making a reference to that. However to back up my claims with some quick napkin calculations:

                                                                                                                                                                                        Default shared_buffers for PostgreSQL 12 is 128 MB. Per PostgreSQL documentation the recommended setting is roughly 25% of available system RAM then measure.

                                                                                                                                                                                        If you have a dedicated database server with 1GB or more of RAM, a reasonable starting value for shared_buffers is 25% of the memory in your system.

                                                                                                                                                                                        source: https://www.postgresql.org/docs/12/runtime-config-resource.html

                                                                                                                                                                                        The system in question has 4 GB of RAM so by that logic 1 GB for shared_buffers would be a reasonable setting - hence 700 MB at that point could be considered crazy low.

                                                                                                                                                                                        Default work_mem is 4 MB, max_worker_processes is set to 8 and max_connections by default is 100 (https://www.postgresql.org/docs/12/runtime-config-connection.html#GUC-MAX-CONNECTIONS). This means that query execution can easily eat up to 3.2 GB by default in the absolutely unlikely worst case scenario.

                                                                                                                                                                                        maintenance_work_mem is by default an additional 64 MB.

                                                                                                                                                                                        So we are looking at PostgreSQL itself using anywhere between 128 MB and 3 GB of RAM with it’s default settings that are ultra conservative and usually the first thing everyone increases. This is before considering the actual data and application workload.

                                                                                                                                                                                        By this logic, personally for me 700 MB for PostgreSQL on a running Pleoroma instance including the memory used by Pleroma itself is crazy low.

                                                                                                                                                                                        1. 5

                                                                                                                                                                                          But, this little Pi is not a dedicated database server, it at least hosts the app too? And defaults are just defaults. Maybe indicative of PG usage in general, across every application that uses it, but that’s a really broad brush to be painting such a tiny picture with! I still think there are a few different species of fruit being compared here. But I do appreciate your explanation, and I think I understand your reasoning now.

                                                                                                                                                                                        2. 1

                                                                                                                                                                                          Fwiw, my Pleroma database is approaching 60GB in size.

                                                                                                                                                                                          1. 1

                                                                                                                                                                                            Due to shit posting or bot? You can clean it up a little bit by expiring remote messages older than 3months

                                                                                                                                                                                            1. 2

                                                                                                                                                                                              I have a dedicated 500GB NVMe for the database. Storage isn’t a problem and it’s nice for search purposes.

                                                                                                                                                                                      2. 2

                                                                                                                                                                                        I’m still not convinced that postgresql is the best storage for ActivityPub objects. I remember seeing in pleroma that most of the data is stored in a jsonb field, and that makes me think that maybe key-value stores based on object’s IDs would be simpler and maybe(???) faster.

                                                                                                                                                                                        I’m currently implementing a storage “engine” based on this idea and I’m saving the plain json as plain files in a directory structure. It, of course, is missing ACID[1] and other niceties, but I feel like the simplicity of it is worth for an application that just wants to serve content for a small ActivityPub service without any overhead.

                                                                                                                                                                                        [1] IMHO ACID is not a mandatory requirement for storing ActivityPub objects, as the large part of them (activities) are immutable by design.

                                                                                                                                                                                        1. 5

                                                                                                                                                                                          Misskey used to use a nosql / document store. They switched to postgresql because of performance issues. I’m sure you could build an AP server with a simpler store, but you we do make heavy use of relational features as well, so the relatively ‘heavy’ database part is worth it for us.

                                                                                                                                                                                          1. 2

                                                                                                                                                                                            Yes. One problem with a off the shelf key value store in this setup is that scanning over the whole keyspace to be able to filter objects is way less efficient than a good indexed db. (Even though I’m not there yet), I’m thinking of adding some rudimentary indexes based on bloom filters on properties that might require filtering.

                                                                                                                                                                                            1. 4

                                                                                                                                                                                              postgresql provides indexing for json objects, so it makes a lot of sense to use it even for this kind of use case. Even sqlite has some json support these days.

                                                                                                                                                                                          2. 2

                                                                                                                                                                                            I am not convinced to store tons of small files individually, they are usually less than 1kb. The overhead from inode will waste 75% of a 4k, and you will also run out of inodes pretty quickly if your fs is not tuned for tons of small files.

                                                                                                                                                                                            1. 3

                                                                                                                                                                                              inodes are a legacy filesystem problem. Use ZFS :)

                                                                                                                                                                                              1. 1

                                                                                                                                                                                                The idea behind federation would be that most instances would have a small number of users with small local storage needs.

                                                                                                                                                                                            2. 1

                                                                                                                                                                                              Not really for recent releases, you need at least 512MB for a stable instance. Pleroma itself use <200MB RAM, and postgresql can use another 200MB, depends on your configuration.

                                                                                                                                                                                          3. 10

                                                                                                                                                                                            Total RSS for my Pleroma instance on Arch x86_64 (which is extremely lightly used) is ~115MB. There’s a bunch of other RSS being used by the Postgres connections but that’ll depend on your precise configuration.

                                                                                                                                                                                            For comparison, my honk instance on Arch armv7l is using 17MB (but it admittedly bare-bones compared to Pleroma.)

                                                                                                                                                                                            1. 2

                                                                                                                                                                                              How is honk working for you? Do you want to share a link to your instance? I’ve been considering installing it myself. It seems cool, but the only honk deployment I’ve seen in the wild is the developer’s. If we’re talking about saving resources, honk seems to be better for that than Pleroma :)

                                                                                                                                                                                              1. 3

                                                                                                                                                                                                I run it for my single user instance. Haven’t tried upgrading since I installed it.

                                                                                                                                                                                                It generally works as expected, if a little rough - I edited a bunch of the default templates and found the terminology a little obtuse, and threads where some replies are private don’t show any indication which can be a bit confusing.

                                                                                                                                                                                                I may setup Plemora at some point, as I would like the extra features, but I might never get around to it because honk is so trouble-free and works alright.

                                                                                                                                                                                                1. 2

                                                                                                                                                                                                  Pretty well - I just run the binary in a screen session on one of my servers for now.

                                                                                                                                                                                                  https://honk.rjp.is/ - mainly using it as a publish-on-your-own-space feeder for tweets via IFTTT.

                                                                                                                                                                                                  1. 3

                                                                                                                                                                                                    Have you looked into crossposting using one of the open source crossposters?

                                                                                                                                                                                                    I’m assuming that they won’t work because honk has fewer features than Mastodon, but I don’t actually know.

                                                                                                                                                                                                    1. 2

                                                                                                                                                                                                      I did try moa for a while but the link [from moa to twitter] kept disappearing for some reason - I did intend to self-host it but never got around to it. IFTTT is easier for now and if I want to shift off IFTTT, I’ve already got “RSS to Twitter” code for other things I can easily repurpose.

                                                                                                                                                                                                      [edited to clarify “link”]

                                                                                                                                                                                              2. 4

                                                                                                                                                                                                Fwiw it’s a bit over 300MBs on my (single user) instance.

                                                                                                                                                                                                1. 3

                                                                                                                                                                                                  I still think that 300MB is a lot, especially when cheaper VPS can have only 500MB of RAM.

                                                                                                                                                                                                  1. 3

                                                                                                                                                                                                    In fairness, 512 mb is a ridiculously low amount of memory.

                                                                                                                                                                                                    Nowadays it’s possible to configure a physical system with 128c/256t and literally terabytes of ram and we’re still paying 2013 prices for 1c/512mb VPS instances.

                                                                                                                                                                                                    Think about this.

                                                                                                                                                                                                    1. 1

                                                                                                                                                                                                      I’ve been mostly using (and recommending) the smallest hetzner vps instances, which have 2gb of ram and cost just under 3 euro per month. although looking at lowendbox, i see that you can get a 1gb vps for $1 per month.

                                                                                                                                                                                              1. 16

                                                                                                                                                                                                I’ve asked this the last time, but does anyone know why “rewritten in rust” and “overuse of colour and emojis” correlate? I have no need to switch from coreutils, but as someone who disables colours in my terminal sessions, I wouldn’t even want to (with the exception of ripgrep, where I get the technical advantage over rgrep).

                                                                                                                                                                                                1. 32

                                                                                                                                                                                                  I kind of think that “overuse of color and emojis” is a bit of an oversimplification, but I take your meaning. Or at least, I might say, “more thought and care given toward the overall user experience.” However, you might disagree with that, since you might think that colors and emojis actually make the user experience worse. (Although, to be honest, I’m not sure how much these tools use emojis.) With that said, I think it’s at least reasonable to say that many of the “new” tools (and not just Rust) are at least paying more attention to improving the overall user experience, even if they don’t actually improve it for every user. For example, I know for ripgrep at least, not everyone likes its “smart” filtering default, and that is absolutely a totally reasonable position to have. There’s a reason why I always include smart filtering in every short description of ripgrep; if you aren’t expecting it, it is not only surprising but frightening, because it violates your assumptions of what’s being searched. It’s a disorienting feeling. I know it all too well.

                                                                                                                                                                                                  As for why this is happening, I’m not sure. If we wanted to get hand wavy about it, my personal take is that it’s some combination of lower barriers to entry to writing these kinds of tools and simultaneously providing more head space to even think about this stuff. So that means that you not only have more people entering the space of writing CLI tools, but you also have more breathing room to pay attention to the finer details of UX. This isn’t altogether surprising or unprecedented. Computing history is littered with building new and better abstractions on top of abstractions. As you move higher up the abstraction ladder, depending on the quality of said abstractions, you get more freedom to think about other things. This is, after all, one of the points of abstraction in the first place. And Rust is definitely an example of this IMO. And it’s not just about freeing yourself from worry about undefined behavior (something that I almost never have to do with Rust), but also about easy code reuse. Code reuse is a double edged sword, but many of these applications shared a lot of code in common that handle a lot of the tricky (or perhaps, “tedious” is a better word) details of writing a CLI application that conforms to common conventions that folks expect.

                                                                                                                                                                                                  I also don’t think it is the only phenomenon occurring either. I think building these kinds of tools also requires tapping into a substantial audience that no longer cares (or cares enough) about POSIX. POSIX is a straight jacket for tools like this, and it really inhibits one’s ability to innovate holistically on the user experience. The only way you can really innovate in this space is if you’re not only willing to use tools that aren’t POSIX compatible, but build them as well. My pet theory is that the pool of these people has increased substantially over the past couple decades as our industry has centralized on fewer platforms. That is, my perception is that the straight jacket of POSIX isn’t providing as much bang for its buck as it once did. That isn’t to say that we don’t care about portability. We do. There’s been a lot of effort in the Rust ecosystem to make everything work smoothly on Linux, macOS and Windows. (And POSIX is a big part of that for Unix, but even among Unixes, not everything is perfectly compatible. And even then, POSIX often doesn’t provide enough to be useful. Even something as simple as directory traversal requires platform specific code. And then there’s Windows.) But beyond that, things drop off a fair bit. So there’s a lot of effort spent toward portability, but to a much more limited set of platforms than in the older days. I think the reason for that is a nearly universal move to commodity hardware and a subsequent drop in market share among any platform that isn’t Windows, macOS or Linux.

                                                                                                                                                                                                  Sorry I got a bit rambly. And again, these are just some casual opinions and I didn’t try to caveat everything perfectly. So there’s a lot of room to disagree in the details. :-)

                                                                                                                                                                                                  1. 7

                                                                                                                                                                                                    Just to provide feedback as a user of ripgrep, xsv, bat, broot. I have experienced no annoyance with respect to colourization or emojification of my terminal emulator. If I had to hypothesize, I think easy Unicode support in Rust allows people to embed emojis so they do.

                                                                                                                                                                                                    1. 4

                                                                                                                                                                                                      The key is overuse. Some colour can sometimes be very helpful! Most most of these tools paint the screen like a hyperactive toddler instead of taking the time to think of what would improve the user’s experience.

                                                                                                                                                                                                      1. 26

                                                                                                                                                                                                        taking the time to think of what would improve the user’s experience

                                                                                                                                                                                                        I addressed this. Maybe they have taken the time to think about this and you just disagree with their choices? I don’t understand why people keep trying to criticize things that are border-line unknowable. How do you know how much the authors of these tools have thought about what would actually improve the user experience? How do you know they aren’t responding to real user feedback that asks for more color in places?

                                                                                                                                                                                                        We don’t all have to agree about the appropriate amount of color, but for crying out loud, stop insinuating that we aren’t taking the appropriate amount of time to even think about these things.

                                                                                                                                                                                                        1. 2

                                                                                                                                                                                                          “How much colour is too much colour” is kind of an empirical question; while design is certainly some matter of taste and trade-offs, generally speaking human brains all work roughly the same, so there is one (or a small range of) “perfect” designs. It seems quite a different problem than Ripgrep’s smart filtering you mentioned in your previous comment, which has more to do with personal preference and expectations.

                                                                                                                                                                                                          See for example these Attention management and Color and Popout pages; the context here is very different (flight control systems), but it’s essentially the same problem as colour usage in CLI programs. I don’t know if there’s more research on this (been meaning to search for this for a while, haven’t gotten around to it yet).

                                                                                                                                                                                                          Have some authors spent a long time thinking about this kind of stuff? Certainly. But it’s my observation based on various GitHub discussions and the like that a lot of the time it really does get added willy-nilly because it’s fashionable, so to speak. Not everything that is fashionable is also good; see the thin grey text on website fashion for example (which thankfully died down a wee bit now) which empirically makes things harder to read for many.

                                                                                                                                                                                                          When I worked on vim-go people would submit patches to the syntax highlighting all the time by adding something for some specific thing. Did that improve readability for some? Maybe, I don’t know. For a while most of these patches were accepted because “why not?” and because refusing patches is kind of draining, but all of the maintainers agreed that this added colouring didn’t really improve vim-go’s syntax highlighting and were superfluous at best. There certainly wasn’t a lot of thought put in to this on our part to be honest, and when we started putting thought in to it, it was too late and we didn’t want to remove anything and break people’s stuff.

                                                                                                                                                                                                          1. 6

                                                                                                                                                                                                            “How much colour is too much colour” is kind of an empirical question; while design is certainly some matter of taste and trade-offs, generally speaking human brains all work roughly the same, so there is one (or a small range of) “perfect” designs. It seems quite a different problem than Ripgrep’s smart filtering you mentioned in your previous comment, which has more to do with personal preference and expectations.

                                                                                                                                                                                                            While I agree that it’s a quantifiable question, there’s 2 classic problems here.

                                                                                                                                                                                                            All quantifications in user design are “70% of users find this useful” for statement A, and “60 % don’t find it useful” for statement B. The often committed mistake is then assuming that you should implement “A & ^B”, ignoring that you now need to analyse the overlap.

                                                                                                                                                                                                            The second is that good quantification are a lot of work and need tons of background knowledge, with standard books on color and interface perception doubling as effective close combat weapons.

                                                                                                                                                                                                            A classic answer to the above problem is that good UI uses at least two channels, potentially configurable. So if if the group that doesn’t find B useful isn’t having problems with it, having both is a good option. Your cited Color and Popout page is a very good example of that. And it gracefully degrades for people that do e.g. not see color well. And especially emoji based CLI programs do that very well: Emoji don’t take up a lot of space, are easily differentiable, are accessible to screen readers while still keeping their symbolic character - the line afterwards is the thing for people that need the details.

                                                                                                                                                                                                            While I agree with your fashion argument, but see it in a much more positive light: user interface trends have the benefit of making good basics the default - if they are successful. This is community practice learning - I would say that the phase of gray text made the design community realise that readability is not optional when reading text. This may seem trivial, but it isn’t unsurprising that this trend came up when visual splendor was much easier available in websites and the current focus of that time.

                                                                                                                                                                                                            For a practical summary of research and reading, I can highly recommend “Information Visualization: Perception for Design” by Colin Ware. Take care, though, it was updated for the 4th Edition this year and many vendors still try to sell you the 3rd. For a book of around 70$, I’d hate if you fell into that trap ;). It’s the book I learned from in University courses and found it very accessible, practical, but also scientifically rigorous. It also spends a lot of time on when visual encoding should be applied, when not and especially has clarity and accessibility as its biggest goals.

                                                                                                                                                                                                            Also, even scientific research isn’t protected of the fads you describe: for a long time, with enough computational power available, everyone tried to make visualisations 3 dimensional. That’s generally seen as a mistake today, because either you just add fake depth to you bar diagram while it still remains essentially 2D (wasting the channel), or you run into problems of perspective and occlusion, which make it hard to judge distances and relationships making you turn the image all the time, because 3D data is still projected on 2D. Reading 3D data is a special skill.

                                                                                                                                                                                                        2. 4

                                                                                                                                                                                                          What are some examples? Curious what makes you think that the authors did not consider user experience when implementing nonstandard features specifically in pursuit of user experience? No doubt their efforts may not land well with some of the users. I just think it’s a bit dismissive to assume that the authors didn’t put thought into their open source projects, and pretty rude to characterize the fruits of their labor as a “hyperactive toddler”.

                                                                                                                                                                                                          1. 8

                                                                                                                                                                                                            As a personal data point: I use fd, ripgrep, and hexyl, and they’re fine. However, I tried exa (a replacement for ls) and exa -l colors absolutely everything, which I find overwhelming compared to ls -l (which for me colors just the file/directories/symlinks). To me it seems like exa developers pushed it a bit too far :-)

                                                                                                                                                                                                            1. 5

                                                                                                                                                                                                              Cool. It definitely seems that exa in particular colorizes a lot of things by default. My initial thought is “wouldn’t it be nice if I could customize this” and it turns out you totally can via the EXA_COLORS variable (see man exa).

                                                                                                                                                                                                              I think the ideal colorized tool would roughly do the following: it would make coloring configurable, ship with reasonable defaults, and then some presets for users with disabilities, colorblindnesses, or those who prefer no color at all.

                                                                                                                                                                                                              1. 2

                                                                                                                                                                                                                exa -lgh --color=never

                                                                                                                                                                                                                seems flag heavy but that’s just me and there’s probably more than one way to do it

                                                                                                                                                                                                                1. 7

                                                                                                                                                                                                                  Flag heaviness doesn’t matter much in this case though, since it can be trivially aliased in shell configuration.

                                                                                                                                                                                                              2. 3

                                                                                                                                                                                                                compared to ls -l (which for me colors just the file/directories/symlinks).

                                                                                                                                                                                                                This is likely local configuration, whether you’re aware of it or not. GNU ls will happily color more or fewer things, in different ways, based on the LS_COLORS environment variable and/or configuration files like ~/.dir_colors. See also the dircolors utility.

                                                                                                                                                                                                                1. 1

                                                                                                                                                                                                                  Interesting, TIL. I don’t have a ~/.dir_colors but LS_COLORS is indeed full of stuff (probably added by fish?). In any case, exa was a bit much, the permissions columns are very very colorful. Maybe it’s to incentivize me to use stricter permissions 😂

                                                                                                                                                                                                                2. 0

                                                                                                                                                                                                                  Agree. Most people’s shell prompts are essentially rainbow unicorn vomit.

                                                                                                                                                                                                            2. 1

                                                                                                                                                                                                              If we wanted to get hand wavy about it, my personal take is that it’s some combination of lower barriers to entry to writing these kinds of tools and simultaneously providing more head space to even think about this stuff

                                                                                                                                                                                                              It seems plausible, adding colours or UI extensions sounds like a good “first patch” for people learning Rust and wanting to contribute to “real world” projects.

                                                                                                                                                                                                              1. 6

                                                                                                                                                                                                                That’s not exactly what I had in mind. The syntax highlighting that bat does, for example, is one of its central features AFAIK. I don’t know exactly how much integration work it took, but surely a decent chunk of the heavy lifting is being done by syntect. That’s what I mean by headspace and lower barriers to entry.

                                                                                                                                                                                                            3. 17

                                                                                                                                                                                                              why “rewritten in rust” and “overuse of colour and emojis” correlate?

                                                                                                                                                                                                              JS community does the same. I think it’s not specific to Rust, but specific to “modern” rewrites in general (modern for better or worse).

                                                                                                                                                                                                              I see a similar thing in C/C++ rewrites of old C software – htop and ncmpcpp both use colours while top and ncmpc did not. Newer languages, newer eyecandy.

                                                                                                                                                                                                              1. 5

                                                                                                                                                                                                                JS community does the same. I think it’s not specific to Rust, but specific to “modern” rewrites in general (modern for better or worse).

                                                                                                                                                                                                                The phrase “modern” is a particular pet peeve of mine. It’s thrown around a lot and doesn’t seem to add anything to most descriptions. It is evocative without being specific. It is criticism without insight. Tell me what makes it “modern” and why that is good. The term by itself means almost nothing which means it can be used anywhere.

                                                                                                                                                                                                                1. 2

                                                                                                                                                                                                                  AIUI “modern” as it relates to TUIs means “written since the ascendence of TERM=xterm-256color and Unicode support, and probably requires a compiler from the last 10 years to build.” Design wise it’s the opposite of “retro”

                                                                                                                                                                                                                  I don’t see how it’s a criticism (what’s it criticizing?), Or why every word needs to be somehow insightful, It’s just a statement that it’s a departure from tradition. It’s like putting a NEW sticker on a product. It doesn’t mean anything more than “takes more current design trends into account than last year’s model”

                                                                                                                                                                                                                  1. 1

                                                                                                                                                                                                                    I think a “new” sticker on a product tells you more than sticking “modern” in a software project page. At least you know it isn’t used/refurbished. What constitutes modern is a moving target. It may be helpful if you had knowledge of the domain in which it’s being used, but otherwise it’s just fluff.

                                                                                                                                                                                                                    Worse, I think it doesn’t present a nuanced view of the design choices that go into the product. In my mind it subtlety indicates that old is bad and new is good. That thinking discourages you from learning from the past or considering the trade offs being made.

                                                                                                                                                                                                                    Moreover I think it bugs me because I work in a NodeJS shop. When I ask people what’s great about a package they tell me it’s modern. It’s just modern this or modern that. It barely means anything. So maybe take this with a grain of salt.

                                                                                                                                                                                                                    1. 2

                                                                                                                                                                                                                      Huh. I think this must be a cultural difference. Working with C and C++ packages, ‘modern’ has a bit more meaning because of the significant changes that have happened in the languages themselves in a reasonably recent fraction of their existence. (For example, “modern” C++ generally avoids raw pointers, “modern” C generally doesn’t bother with weird corner cases on machines that aren’t 32 or 64 bit architectures I can currently buy)

                                                                                                                                                                                                                      It’s even true to a lesser extent in python, “modern” usually refers to async/generators/iterators as much as possible, while I agree that “modern” definitely does lack nuance, it fits in an apt package description and means roughly “architected after 2010,” and I think this is a reasonable use of 6characters.

                                                                                                                                                                                                                      1. 2

                                                                                                                                                                                                                        Here’s another way of looking at it:

                                                                                                                                                                                                                        You make a library. It’s nice and new and modern. You put up a website that tells people that your package is modern. The website is good, the package is good. It’s a solved problem so you don’t work on it any more. Ten years pass and your website is still claiming that it is modern. Is it? Are there other ways that you could have described your project that would still be valid in ten years? In twenty years?

                                                                                                                                                                                                                        The definition of modern exists in flux and is tied to a community, to established practices, and, critically, a place in time. It is not very descriptive in and of itself. It’s a nod, a wink, and a nudge nudge to other people in the community that share the relevant context.

                                                                                                                                                                                                                        1. 1

                                                                                                                                                                                                                          I definitely see your point, but I’d also argue that if I put something on the internet and left it alone for 10 years, it would be obvious that it’s “modern” (if it’s still up at all) is that of another age. If you’d done this 10 years ago, you’d likely be hosted by sourceforge, which these days is pretty indicative of inactivity. It also doesn’t change that your package is appreciably different than the ones serving a similar purpose that are older.

                                                                                                                                                                                                                          There are buildings almost 100 years old that count as “modern” (also, there are ‘modern’ buildings made after ‘postmodern’ ones. Wat?) It’s a deliberately vague term for roughly “minimal ornament, eschewing tradition, and being upfront about embracing the materials and techniques of the time” what “the time” is is usually obvious due to this (and IMO it is in software as well). The operative part isn’t that it’s literally new, more that it’s a departure from what was current. and when a modern thing gets old, it doesn’t stop being modern, it just gets sidelined by things labelled modern that embrace the tools and techniques of a later time. Architects and artists don’t have an issue with this, why should we?

                                                                                                                                                                                                                          Libuv is I think a good example IMO. I’d call it “modern”, but it’s not new. That said, it doesn’t claim to be.

                                                                                                                                                                                                                          Honestly, given how tricky it is for me to pin this down I feel like I should agree with you that it’s cruft, but I just… Don’t… I think it’s cause there’s such a strong precedent in art and architecture. Last time I was there, Half of the museum of modern art was items from before the Beatles.

                                                                                                                                                                                                                          I do think it sounds a bit presumptuous

                                                                                                                                                                                                                          1. 1

                                                                                                                                                                                                                            Honestly, given how tricky it is for me to pin this down I feel like I should agree with you that it’s cruft, but I just… Don’t… I think it’s cause there’s such a strong precedent in art and architecture. Last time I was there, Half of the museum of modern art was items from before the Beatles.

                                                                                                                                                                                                                            Haha, well, I think we’ll have to agree to disagree then.

                                                                                                                                                                                                                            Ultimately, I’m being a bit of hardliner. There is value in short hand and to be effective we need to understand things in their context. I think being explicit allows you to reach a wider audience, but it is more work and sometimes we don’t have the extra energy to spread around. I’d rather have the package exist with imprecise language than have no package at all.

                                                                                                                                                                                                                2. 2

                                                                                                                                                                                                                  That’s a fair point, I guess I have just been noticing more Rust rewrites, or haven’t been taking JS CLI-software seriously?

                                                                                                                                                                                                                  1. 6

                                                                                                                                                                                                                    I don’t blame you – I haven’t been taking JS software seriously either ;) Whenever I see an interesting project with a package.json in it I go “ugh, maybe next time”. Rust rewrites at least don’t contribute to the trend of making the software run slower more rapidly than the computers are getting faster.

                                                                                                                                                                                                                3. 10

                                                                                                                                                                                                                  but as someone who disables colours in my terminal sessions

                                                                                                                                                                                                                  As someone who appreciates colors in the terminal, I’m pretty into it. I think it’s just a personal preference.

                                                                                                                                                                                                                  1. 2

                                                                                                                                                                                                                    Wrong, but ok ;)

                                                                                                                                                                                                                    But seriously: I don’t think so many tools and projects would be putting the effort into looking the way they do, if nobody wanted it. I just think that colour is better used sparingly, so that issues that really need your attention are easier to spot.

                                                                                                                                                                                                                  2. 10

                                                                                                                                                                                                                    Because it’s easy in Rust. It has first-class Unicode support, and convenient access to cross-platform terminal-coloring crates.

                                                                                                                                                                                                                    1. 5

                                                                                                                                                                                                                      I suspect that the pool of tool users has expanded to incorporate people with different learning styles, and also that as times change, the aesthetic preferences of new users track aesthetic changes in culture as a whole (like slang usage and music tastes).

                                                                                                                                                                                                                      Personally, I find color extremely useful in output as it helps me focus quickly on important portions of the output first, and then lets me read the rest of the output in leisure. I’ve been using *nix since I was a kid, and watching tools evolve to have color output has been a joy. I do find certain tools to be overly colorful, and certain new tools to not fit my personal workflow or philosophy of tooling (bat isn’t my cup of tea, for example). That said not all “modern” rewrites feature color, choose being the example that comes up for me immediately.

                                                                                                                                                                                                                      (On emojis I’m not really sure, and I haven’t really seen much emoji use outside of READMEs and such. I do appreciate using the checkmark Unicode character instead of the ASCII [x] for example, but otherwise I’m not sure.)

                                                                                                                                                                                                                      1. 3

                                                                                                                                                                                                                        I think it is more of a new tool trend than new language trend. I see similar issue in other new tools not written in Rust.

                                                                                                                                                                                                                        1. 2

                                                                                                                                                                                                                          Perhaps it’s simply that Rust has empowered a lot of young people, and young people like colors and emojis?

                                                                                                                                                                                                                          1. 1

                                                                                                                                                                                                                            I wrote this blog post as an answer to this article. I am also wondering why this “overuse of color” is so popular among “rewritten in rust” kind of tools.

                                                                                                                                                                                                                            1. 1

                                                                                                                                                                                                                              I think this is generally true of CLI tools written since Unicode support in terminals and languages is commonplace. I don’t have any examples but I’ve gotten a similar impression from the go.community. I think emojis and colors in terminals are kind of in Vogue right now, as is rewriting things in rust, so… Yeah, that’s my hypothesis on the correlation.

                                                                                                                                                                                                                              Aside, as someone with rather bad visual acuity and no nostalgia for the 80s, I like it.

                                                                                                                                                                                                                            1. 1

                                                                                                                                                                                                                              Is it available to download somewhere, or is that only for Google Android via the play store?

                                                                                                                                                                                                                              1. 2

                                                                                                                                                                                                                                I have bookmarked this address, it’s for the testing build of Firefox https://firefox-ci-tc.services.mozilla.com/tasks/index/mobile.v2.fenix.nightly.latest/arm64-v8a

                                                                                                                                                                                                                                I found this address unnecessarily hard to find

                                                                                                                                                                                                                                1. 1

                                                                                                                                                                                                                                  I used Aurora Store, after that FFUpdater picks it.

                                                                                                                                                                                                                                1. 11

                                                                                                                                                                                                                                  Web browsers that will render the modern web cost millions of dollars to produce.

                                                                                                                                                                                                                                  Who else has the incentive to do that?

                                                                                                                                                                                                                                  Is he suggesting that someone (not him, presumably) fork Chrome and remove the extensions and features he doesn’t like, and backport security fixes weekly?

                                                                                                                                                                                                                                  Google’s incentives are clear, and no one is forced to run browsers with these featuresets he complains about.

                                                                                                                                                                                                                                  What, exactly, is he proposing, and to whom?

                                                                                                                                                                                                                                  1. 20

                                                                                                                                                                                                                                    What, exactly, is he proposing, and to whom?

                                                                                                                                                                                                                                    “I call for an immediate and indefinite suspension of the addition of new developer-facing APIs to web browsers. “

                                                                                                                                                                                                                                    The article is very short and doesn’t need a lot of interpretation. He simply wants the companies that create browsers to stop adding these new features and in some cases start removing them. This may happen with Firefox. By removing 25% of their workforce it might take a little bit longer to add new features.

                                                                                                                                                                                                                                    1. 9

                                                                                                                                                                                                                                      Firefox wants feature parity with Chrome.

                                                                                                                                                                                                                                      Google wants a large technical moat around browser competitors, as well as full, native-app-like functionality on ChromeOS devices (hence webmidi and webusb et c).

                                                                                                                                                                                                                                      Why would they stop? Because Drew said so?

                                                                                                                                                                                                                                      More importantly, why should they?

                                                                                                                                                                                                                                      1. 6

                                                                                                                                                                                                                                        Google wants a large technical moat around browser competitors

                                                                                                                                                                                                                                        More importantly, why should they?

                                                                                                                                                                                                                                        Should they be allowed to rig the market such that it’s impossible to compete in? It sounds like you agree they’re doing that, and I don’t see how that’s a good thing by anyone’s standards.

                                                                                                                                                                                                                                        1. 12

                                                                                                                                                                                                                                          It seems to me that Google is playing the embrace-extend-extinguish game, but in a different way: they’re extending the scope so broadly and with features so hard to implement that even companies comparable in size to Google don’t can’t compete against it (think of Microsoft dropping trident and forking chromium, and think of opera basically becoming a chromium skin)

                                                                                                                                                                                                                                          1. 1

                                                                                                                                                                                                                                            Nobody’s rigging anything by releasing free software (Chromium).

                                                                                                                                                                                                                                            1. 10

                                                                                                                                                                                                                                              I’m not sure if that’s true. Google has arguably “won” the browser wars by open-sourcing chromium. Everyone (almost) chose to contribute to Google’s dominance rather than compete with them. You can’t realistically fork Chromium anyway, with the limited resources you left yourself with, so all you can do is contribute back to Google while sheepishly adopting everything they force upon you.

                                                                                                                                                                                                                                          2. 2

                                                                                                                                                                                                                                            They shouldn’t stop because Drew said so. It looks like they’ll stop whenever this becomes a financial burden.

                                                                                                                                                                                                                                            1. 2

                                                                                                                                                                                                                                              We’ll end up with a situation like before, with IE 6: All competitors well and truly crushed with a more featureful, “better” browser, and then decide to throw in the towel when it comes to maintenance. Yay…

                                                                                                                                                                                                                                        2. 12

                                                                                                                                                                                                                                          Web browsers that will render the modern web cost millions of dollars to produce.

                                                                                                                                                                                                                                          Yes, and the proposal is to stop adding features to keep the cost from rising further.

                                                                                                                                                                                                                                          You know, there might be viable new competition, if writing a browser wouldn’t involve also writing a half-assed operating system, an USB stack, an OpenGL driver wrapper, …

                                                                                                                                                                                                                                          1. 2

                                                                                                                                                                                                                                            I’m not sure that there is a legal or moral argument that they shouldn’t be permitted to. There certainly isn’t a logical one that, from their perspective, they shouldn’t.

                                                                                                                                                                                                                                            1. 5

                                                                                                                                                                                                                                              how is moral that a private american corporation has de facto unlimited power over a technology developed by thousands of people around the world over the years and it’s free to steer the future of such a critical technology? If Google behaves like Google, this will lead to the exploitation of billions of user around the world. This is the equivalent of buying out all the sources of water and then asking for money at the price you decide. Web Technologies are now necessary to create and operate the tools we use to reproduce socially, to work, to study, to keep families and communities together: letting a bunch of privileged techbros in California exploit these needs freely is in no way moral.

                                                                                                                                                                                                                                              1. 3

                                                                                                                                                                                                                                                It’s nothing like buying out the water supply. In this case there are still alternate browsers with differing feature sets.

                                                                                                                                                                                                                                                1. 5

                                                                                                                                                                                                                                                  Not if Google keeps breaking the standards and no dev supports the alternative browsers. Yes, you can have nice browsers that work for niche sites, but that might become a separate web entirely that will be simply ignored by the vast majority of the users.

                                                                                                                                                                                                                                                2. 1

                                                                                                                                                                                                                                                  Because steering is an abstraction, at any point you can use the version of Chromium from that day for all time if you so wish.

                                                                                                                                                                                                                                                  Google gets free expression just like anyone else does, and can add any features they like to their own free software project.

                                                                                                                                                                                                                                                  1. 1

                                                                                                                                                                                                                                                    A browser can be used only if the websites are compatible. The situation where chromium is a viable, secure option now might change in the future, rendering it a non-viable option. Why do you think Google will keep supporting chromium after winning this war? It might happen but it might not.

                                                                                                                                                                                                                                            2. 1

                                                                                                                                                                                                                                              Yeah, I don’t really understand.

                                                                                                                                                                                                                                              His proposal seems to be “give the last vestiges of control over the web to Google”? It might make more sense if the title were “Google needs to stop”.

                                                                                                                                                                                                                                              1. 2

                                                                                                                                                                                                                                                At the moment, Google is deciding where web browsers go, approximately unilaterally. The two aren’t precisely equivalent, but they’re far too close for comfort.