Threads for codejake

    1. 2

      Similar to this, Ollama.ai supports the use of more Dockerfile-like Modelfiles:

      https://github.com/jmorganca/ollama#customize-your-own-model

    2. 31

      Is this an argument? Mobile editing is dog shit. It’s just awful top to bottom. I can’t believe we’re 15 years into iOS, and they still don’t have frigging arrow keys let alone actually useable text editing. Almost daily, I try to edit a URL in the mobile Safari and I mutter that every UX engineer at Apple should be fired.

      1. 17

        You know the UX engineers on the Safari team would just love to not have to expose the URL at all…

        1. 12

          I don’t really know why you’re singling out Safari, when Google/Chrome have a long history of actually trying to get rid of displaying URLs. And it’s been driven not by “UX engineers”, but primarily by their security team.

          For example:

          https://www.wired.com/story/google-chrome-kill-url-first-steps/

          (and to be perfectly honest, they’re right that URLs are an awful and confusing abstraction which cause tons of issues, including security problems, and that it would be nice to replace them… the problem is that none of the potential replacements are good enough to fill in)

          1. 4

            Both Apple and Google suck. What’s your point?

            1. 1

              My point is that I’m not aware of Apple, or “UX engineers on the Safari team”, being the driving force behind trying to eliminate URLs, and that we should strive for accuracy when making claims about such things.

              Do you disagree?

              1. 2

                No one claimed that Safari is the driving force for anything. A commenter just brought it up as a source of personal annoyance for them.

        2. 6

          Shrug! Android Play Store, the app, does this. Terrifying! It breaks the chain of trust: Reputable app makers link to an url (thankfully, it’s still a website), but you have to use the app anyway to install anything, which has nowhere to paste the url, let alone see it, so you can’t see if you are installing the legit thing or not. Other than trust their search ranking, the best you can do is compare the content by eye with the website (which doesn’t actually look the same).

          1. 4

            I’m reluctant to install third-party apps in general, but, when I do, preserving a chain of trust seems possible for me: if I click a link to, say, https://play.google.com/store/apps/details?id=com.urbandroid.sleep on Android, it opens in the Play Store app; and, if I open such a URL in a Web browser (and I’m signed in to Google), there’s a button to have my Android device install the app. Does either of those work for you?

            1. 2

              Wow! That did not work in Firefox just one month ago (when I had to install Ruter on my new phone). Now it does. I tried Vivaldi too, and it doesn’t even ask whether I want to open it in Google Play.

              Browser devs to the rescue, I guess, but as long as the app isn’t doing their part – linking to the website – the trust only goes one way.

      2. 14

        The upside: it reduces the amount of time you want to use your phone, which, for most people, is a good thing.

        1. 5

          Does it though? I mean, you’ll spend much longer fiddling to get the text right!

          If you think “oh this’ll just be a quick reply” and then end up actually typing more than you thought you would, it makes sense to finish the job you started on mobile, which then actually takes more time. Especially when you’re on the go and you have no laptop with you.

          1. 1

            It really just means I use the phone for composing conceptually light things because I don’t want to mess with it any more than necessary. (This is likely an adaptation to the current state versus a defense of how it is.)

      3. 7

        I don’t miss arrow keys with iOS Trackpad Mode[1]. The regular text selection method is crap, but it works well enough doing it via Trackpad Mode.

        I think part of the problem with the iOS Safari URL bar is that Apple tries to be “smart” and modifies the autocorrect behavior while editing the URL, which in my case, ends up backfiring a whole lot. There’s no option to shut it off, though.

        1. https://www.igeeksblog.com/how-to-use-iphone-keyboard-as-trackpad/
        1. 4

          Wow, I had no idea this existed! Apple’s iOS discoverability is atrocious.

          1. 2

            Apple’s iOS discoverability is atrocious

            Agreed. Just the other day I found the on screen keyboard on my iPad was floating and I couldn’t figure out how to make it full size again without closing the app. A few days later I had the thought to try to “zoom” out on the keyboard with two fingers and it snapped back into place!

            As someone more comfortable with a keyboard and mouse, I often look for a button or menu. When I step back and think about how something might be designed touch first, the iOS UX often makes sense. I just wish I had fewer “how did I not know that before!” moments.

          2. 1

            I mean, what meaningful way is there to make it discoverable? You can’t really make a button for everything on a phone.

            One other commonly unknown “trick” on ios is that clicking the top bar often works as a HOME key on desktops, but again, I fail to see an easy way to “market” it, besides clippy, or some other annoying tutorial.

            Actually, the ‘Tips’ app could actually have these listed instead of the regular useless content. But I do think that we really should make a distinction between expert usage and novices and both should be able to use the phone.

            1. 1

              I really don’t have an answer to that. I’ve never looked through the Tips app, not have I been very active in reading iOS-related news[1]. Usually I just go along until I find a pain point that’s too much and then I try to search for a solution or, more often, suffer through it.


              [1] I do enjoy the ATP podcast, but the episodes around major Apple events are insufferable as each host casually drops $2,000 or more on brand new hardware, kind of belying their everyman image.

        2. 2

          This seems super useful, but I’ve spent the last ten minutes trying to get it to

          1. Enter selection mode using 3D touch
          2. Get the trackpad to not start jittering upward or downwards

          It seems either that my phone’s touchscreen is old and inaccurate or I am just really dang bad at using these “newfangled” features.

          I agree with your other reply - discoverability is atrocious. I learned that you can double/triple tap the back of your phone to engage an option which blew my mind. I wonder what I’m missing out on by not ever using 3D touch…

        3. 1

          The other problem I encounter near daily is not being about to edit the title of a Lobsters post on the phone. It really sucks.

          1. 1

            The far more frustrating thing on lobste.rs is that the Apple on-screen keyboard has no back-tick button. On a ‘pro’ device (iPad Pro), they have an emoji button but not the thing I need for editing Markdown. I end up having to copy and paste it from the ‘Markdown formatting available’ link. I wish lobste.rs would detect iOS clients and add a button to insert a backtick into the comment field next to the {post,preview,cancel} set.

            1. 7

              Long-press on the single-quote key and you should get a popup with grave, acute etc accents. I use the grave accent (the one on the far left) for the backtick character.

              Edit testing if this actually works. It does!

              1. 2

                Thank you! As someone else pointed out in this thread, iOS is not great for discovery. I tried searching the web for this and all of the advice I found involved copying and pasting.

                1. 3

                  This is a general mechanism used to (among other things) input non english letters: https://support.apple.com/guide/ipad/enter-characters-with-diacritical-marks-ipadb05adc28/ipados

                  1. 2

                    Oddly enough, I knew about it for entering non-English letters and have used it to enter accents. It never occurred to me that backtick would be hidden under single quote.

            2. 1

              You can make a backtick by holding down on single quote until backtick pops up, but it’s pretty slow going.

      4. 5

        Samesies. The funniest bit, at least for me, is that I’m usually just trying to remove levels of the path, or just get back to the raw domain (usually because autocomplete is bizarre sometimes). This would be SUCH an easy affordance to provide since URLs already have structure built-in!

      5. 5

        You may already know about this, but if you put the cursor in a text field, and then hold down on the space bar, after a second or two you enter a mode that lets you move the cursor around pretty quickly and accurately.

        edit: I guess this is the “trackpad mode” mentioned below by /u/codejake

      6. 4

        I find the trick of pressing down on spacebar to move the cursor works pretty well.

        1. 1

          It’s okay but it’s still not as good as digital input for precision.

      7. 1

        The problem is that Apple phones don’t have buttons.

        1. 1

          No phones do anymore, it seems…

          1. 2

            Arthur C Clarke predicted this in The City And The Stars. In its insanely-far-future society there is a dictum that “no machine shall have any moving parts.”

            1. 2

              I wish people would be a little pickier about which predictions they implement and maybe skip the ones made in stories with a dystopian setting. Couldn’t we have sticked to nice predictions, like geostationary satellites?

      8. 1

        It’s hidden, but… tap url bar, then hold down space and move cursor to where you want to edit. Now normal actions work ( e.g. double tap to select a word).

        That said I agree with your second sentence.

        1. 2

          The trackpad mode works very poorly on the iPhone SE because you can’t move down since there’s no buffer under the space key, unlike the newer phone types. It doesn’t work well for URLs because the text goes off screen to the right, and it moves very slowly. Ironically I’m on an iPad and I just tried to insert “well” into the last sentence and the trackpad mode put the cursor into the wrong place just as I released my tap. It just sucks. This is not a viable text editing method.

    3. 1

      I do this but with a cheap ESP32, instead of a Raspberry Pi. I use Argo’s on Linux and SwiftBar on macOS to display status.

      1. 1

        How wide is that folding table? 48”?

    4. 19

      I enjoy the ESP32 boards quite a bit. They are very cheap, they come with WiFi and BT built in, and you can write either C or Arduino code for them.

      There are the older esp8266 boards but they lack some cool power management stuff the newer ESP32 boards have.

      1. 3

        They also come with a pretty nice SDK - it’s usually the bane of the smaller boards, that the SDKs are terrible or you end up having to write a whole lotta a drivers yourself, which isn’t what I find fun ;-)

        1. 1

          I agree, the ESP32-IDF SDK is surprisingly pleasant. But there are some other embedded SDKs that seem nice too, like Zephyr and mbedOS, that support a lot of popular ARM-based boards. (Though I haven’t actually used them.)

      2. 3

        I have a bunch of the ESP8266s flashed with Tasmota, on breadboards with a Dallas temperature sensor for monitoring stuff around the house.

        One of them has a relay which controls my garage door in parallel with the garage door switch at the wall. I have a few that are embedded in “smart outlets” bought from Amazon that I flashed Tasmota over-the-air as to avoid closed source firmware.

        All of these are connected to my Hubitat for automation and pushing temps to InfluxDB. Here is a snapshot of one of my Grafana dashboards: https://snapshot.raintank.io/dashboard/snapshot/jzZznlmjEWaatSNw1AbN2znAPcC4N8wE

          1. 1

            I bought the C5 shortly after it was released and they have done a great job improving it over time, the web UI is lot more responsive than it used to be and there has been a steady flow of sane features while still keeping it rather simple/focused. I like it a lot!

            1. 2

              My only real issue is that geofencing with the mobile app doesn’t work consistently. Everything else is extremely reliable.

              1. 2

                Agreed, forgot about geofencing… My current workaround is the OwnTracks phone app with OwnTracks Presence app for Hubitat: https://github.com/bdwilson/hubitat/tree/master/OwnTracks-Presence - the downside is battery consumption on my phone is higher. I also use an app for presence based on WiFi since my phone has a static IP on my LAN.

      3. 2

        For the embedded category I really like the Nordic nRF52 chips. Well supported in Rust, nice bunch of peripherals onboard, debugging with OpenOCD+gdb works well, official docs are nice. Supports BLE, 802.15.4, ESB for radio. No Wi-Fi but that only makes everything lighter.

      4. 1

        That’s what I’ve started with, and they are fun for sure. I went with the Adafruit Huzzah32 boards, for a nice combination of features and low-enough price. (Might use something else if making a bunch of something.)

        Next up, using uLisp on the one I’ve got on order.

    5. 6

      I just use a shell scripts with defaults write commands and for software, I use a Brewfile for Homebrew. Mostly works well.

      1. 3

        Same here - /bin/sh script with lots of defaults, installer, etc. lines. Assembled over the years, one-touch CLI-only setup - does 100% of what I need it to do.

        Hooking all of the work Macs up to an existing SaltStack server has been on my TODO list for a while now but it’s always on the back burner.

      2. 3

        If you install the mas package, your Brewfile will have the versions of software you’ve downloaded from the Mac App Store. It’s pretty nice.

    6. 1

      Eero and Amplifi, depending on a given week.

      They are both meh. I am a network engineer by day. I don’t want to mess with that stuff at night. Something something cobbler’s children.

      But I’m about at my wits end and about ready to deploy a Microtik/Edgerouter or something.

    7. 13

      I can really suggest Mikrotik. They are cheap and very powerful. I have one running in my home as router and access point and it’s work fine from years.

      I had a bunch of ARM boards running Docker Swarm, but I am planning to migrate them to some refurbished x86 boxes because they struggling too much with CPU intensive applications (think about ELK). Anyway ARM boxes works fine for DNS or home automation services like HomeAssistant.

      1. 3

        Which Mikrotik box are you using? I’m considering the catchily named RB4011iGS+5HacQ2HnD-IN to get 10 gigabit ethernet ports plus really fast wifi. I wish I could get away with the hAP AC2 or AC3, but have too many ethernet devices.

        1. 2

          Anything with metal boxes is good. They used to make too-cheap plastic boxes as well.

          I’ve used RB433s (with capsman) for more than a decade and am a fanboi: Mikrotik still ships new firmware for >10yo hardware and replies to support email with a straightforward factual reply. If you want my undying love for whatever you’re doing, that’s the way to win it.

          1. 2

            I am a Mikrotik fanboy as well: in my very past work experience, I have used Mikrotik from small boxes to ISP BGP routers and they work very well. They are not Cisco or Juniper of course, but they cost a fraction and they are very powerful. You need a basic script skills and sometimes the configuration is a bit tricky (i.e. for QoS) but you can implement very advanced networking feature.

            The support is good (at least for a free support) and they keep pushing lot of new features, like Wireguard implementation.

        2. 1

          I have an hAP device. For my use case (I have a 50mb connection) it’s enough. Every room in my house has an Ethernet plug, but I am using a refurbished Cisco 3550 as core switch that I got for free at my job.

        3. 1

          I use RB4011 and a pair of PoE powered cAP ac. Copper throughout the house for desktop PCs and TV boxes. In conjunction with gigabit cable works amazingly well.

        4. 1

          RB4011iGS+5HacQ2HnD-IN

          As far as I can tell, while that model has 10 ethernet ports, they are not switched which means if you treat it like a switch and plug in 10 Ethernet devices and they start using bandwidth, they’re going to hammer your router’s CPU and memory.

          For best performance, you’re going to want to dangle a switch off of this, instead.

          Edit: I stand corrected. The block diagram shows two Realtek switch controllers inside. These are performant, switched ports. You are good to go!

          https://i.mt.lv/cdn/product_files/RB4011iGSplus5HacQ2HnD-IN_181032.png

        5. 1

          Keep in mind that the 4011 for some bizzare reason does not support passive DACs, which is really bizzare in the SFP+ world.

      2. 1

        +1 for Mikrotik. I have a couple Hap’s, Hex’s, CRSxxx, and an RB3011. Excellent kit. Fairly steep learning curve.

    8. 86

      The article adequately picks up a phenomenon that I’ve been witnessing for years now: Second-hand offendedness.

      To explain this term, if it isn’t already clear: Certain people go out, identify and criticise something as possibly offensive to a group of people they are not a part of. The git-master-discussion, which the article picks up, is one example, but another one is the criticism of non-natives dressing up as Native Americans for carnival (criticised as “cultural appropriation”).

      Never in those cases do I hear voices from the actually affected groups. I’ve never heard a tribe complaining about out-groupers dressing up in tribal costumes. To the contrary and more sensefully, some support and are content with the fact that their customs are celebrated and brought into the world this way. Slavery obviously is not to be celebrated and must be opposed (it still exists to this day on a massive scale!), however, I find it ridiculous that the word “master”, which is a perfectly normal word in the English language, is being reduced to its one negative use in history and effectively demanded by those second-hand offended to be wiped from memory (“1984” comes to mind, which describes dramatically similar proceedings to censor the language from “dangerous” words). In truth, there is no good synonymous replacement for “master”.

      Now one might say that these groups are too vulnerable and that we need to speak up for them! However, maybe we should instead just listen better and stop shouting into the void, silencing those voices that really matter in such debates (namely those that are affected). I even find it very disrespectful and belittling towards those groups that some people think they can speak for them.

      I could go on, but the point is this: Around 40 million people (Global Slavery Index, 2018) are currently living in slavery, and banning “master” and “slave” from our vocabulary won’t change one thing about it. It won’t benefit those slaves, but only bring good feelings to those who, sitting from the comfort of their own homes in a first-world-country, voice their opinions on social networks and other echo chambers to signal their virtue, which doesn’t take much time or effort.

      Of course, GitHub is free to do as it pleases, but removing “offensive” words like “master” and “slave” from our language does not create a save space, but only makes it harder to adress and talk about real and current problems, i.e. contemporary slavery.

      All in all, I find this a really sad state of affairs, and those who practice second-hand offendedness for social confirmation and self-indulgence should be ashamed of themselves.

      1. 39

        However, maybe we should instead just listen better and stop shouting into the void, silencing those voices that really matter in such debates (namely those that are affected). I even find it very disrespectful and belittling towards those groups that some people think they can speak for them.

        Can vouch, white people shouted over me when I told them it was weird and creepy that the first thought that came to their mind seeing the word “master” was “the transatlantic slave trade”.

        1. 7

          Why is it “weird and creepy” that there is a prominent association between the word “master” and one of the largest components of North American history? That seems like a natural thing.

          1. 35

            The word master applied to a lot of contexts outside of slavery and dates back to Latin. For teachers, heads of household, shipowners, and within artisan groups (apprentice, journeyman, master).

            1. 10

              The word slave applied to contexts outside of slavery as well, and dates back to Late Latin and Byzantine Greek … it originally meant “speaker of the language of Slavonia”. But all of that’s irrelevant because problematic words aren’t problematic because of their etymology or manifold definitions, but the one definition from which they derive their meaning. The word master as used in version control never held any relationship to any of those other associations, though. It was explicitly taken from master / slave semantics, borrowed directly from chattel slavery, and used to describe a situation in which a subservient thing must exactly respond to / reproduce a controlling thing’s commands / actions.

              I’m not sure that the community needs to abandon a term that has a problematic history – the OP makes a good point that those actually in a position to be offended should probably be consulted before a bunch of rich white folk cure premature offense on their behalf – but I definitely don’t think we should work to distract from the fact that the origins of the terminology are problematic.

              Master mold, master switch, replication master, glass master … intellectual honesty says they’re problematic in the same way that master race is, the question is are they far enough removed from the reality that they inherit their root meaning from that they’ve be effectively re-coined. That’s up to the people actually harmed by slavery to decide … but let’s not literally and figuratively white wash the words … SVN’s slaves were not pupils, wives / children, sailing vessels, or less than completely skilled craftspeople.

              1. 3

                It was explicitly taken from master / slave semantics

                This connection seemed weak last time I saw it. At best one of the authors considering a name had this vaguely in mind.

                Edit: It occurs to me, as you point out, meanings shift. Most people using master branches don’t consider this a reference to chattel slavery.

                1. 4

                  Most people are wrong. The name in Git came from “master recording”, but that term takes its meaning directly from master / slave semantics… from wax cylinders to audio and video tape the master would spin, the slave(s) would spin, and the copy would be written from master to slave(s). The slaves have no will, doing precisely what the master tells them to do… I dunno how much time you’ve spent in video tape replication houses, but there’s a master deck and there’s a whole bunch of slave decks, all slaved to the VITC clock on the master… and all of this was common terminology long before version control came around.

                  There’s nothing particularly surprising about it being picked up as the terminology, and sure it’s far enough removed for most people not to think about the origins, but spend much time thinking about it and it’s a pretty regrettable choice.

                  And don’t even get me going on what happens when it comes time to deal with “male” and “female” plugs and sockets and people start arguing the inarguable.

                  1. 6

                    There’s something I don’t quite understand, why does it matter which meaning was intended? There seems to be a trivial distinction between the practice of human slavery, which is correctly understood to be morally indefensible, and the usage of the terminology of master-slave relationships. If you have master decks and slave decks doesn’t that accurately describe the nature of their relationship; what is regrettable about using those words?

                    1. 1

                      The latter is a product of the former; we can only blithely use terminology derived from atrocity by treating the atrocity as mundane.

                      I mean let’s extend that logic… what would be regrettable about using the term “Jew oven” if the words accurately described some process relationship? If there was some new algorithm that seemed to fit would there be anything regrettable about using an “asian massage parlor attack”?

                      Of course there would be. Nobody sufficiently close to an atrocity would think to name any mundane thing that just happened to have vaguely analogous dynamics after an atrocity still fresh in memory; to do so would be inhumanly cruel and, frankly, a pretty sure sign of a psychopath.

                      Well, when chattel slavery is happening today, and when there are millions of people today still very much impacted by the ripples rolling out from the chattel slavery of yesterday — the Atlantic slave trade is less than two generations from living memory — there’s something inhumanly cruel and psychopathic inherent in the fact we picked up the terminology to begin with.

                      Now, there’s some amount of time beyond which it’s okay to start using terms that have lost any obvious reference to the atrocity — there’s a point at which “Trojan horse” truly isn’t bothering any Trojans — but there’s definitely something regrettable before that unknown time has passed.

                      Especially if the people seeking to coin the term, and thereby dilute the atrocity, were or descend from the instigators of the atrocity.

                      1. 1

                        the Atlantic slave trade is less than two generations from living memory — there’s something inhumanly cruel and psychopathic inherent in the fact we picked up the terminology to begin with.

                        Calling an entire industry “inhumanly cruel and psychopathic” seems a bit much, no?

                        At any rate, you can reminisce over the past for a long time, but what’s done is done and no one directly involved is alive today. What matters now is the future. I think this was the point of this post: what really is the quality of lives of people alive today, and all of this seems kind of … fluff because I’m not seeing how this really improves the life of anyone.

            2. 3

              So… if, for example, you’re a White American person working at a company like GitHub and you’ve come to understand the large part of the American experience that is shaped by the history of slavery, it would be “weird and creepy” to associate the word master with that history because the word “master” is applied to shipowners and artisan groups too?

              1. 23

                One would assume that many people who work at large tech companies hold (or know someone who holds) Masters degrees.

                I would struggle to find someone who owned a slave (even though today there are more slaves than at any time in recorded human history).

                So, yeah, I think it’s weird.

                1. 4

                  even though today there are more slaves than at any time in recorded human history

                  … if you think in absolute numbers, utterly ignore proportion of population size, and considerably expand the definition beyond chattel slavery, maybe.

                  1. 2

                    Amusingly, if we expand it even further we will arrive at a place where pretty much every person can be considered a “slave”. As John Lennon put it, in the lyrics of ‘Working Class Hero’:

                    When they’ve tortured and scared you for twenty-odd years … Then they expect you to pick a career … When you can’t really function you’re so full of fear. (…). Keep you doped with religion and sex and TV … And you think you are so clever and classless and free … But you are still fucking peasants as far as I can see.

                    1. 3

                      And that watering down of words is precisely how we end up with today’s “wage slaves” thinking they have anything whatsoever in common with actual chattel slaves. Probably why it’s much easier to talk about reparations for those who were sold a false dream than it is to talk about reparations for those who were actually sold.

                      Hell of a song though. Shame Marilyn Manson went and ruined his cover.

                      1. 1

                        “wage slaves”

                        It is not a misnomer; though ‘modern-day serfdom’ is more accurate.

                        1. 4

                          They’re both absurd misnomers… an actual serf would think the modern variety an idiot king, for all the plenty they’re steeped in daily but fail to recognize, just as the chattel slave would look real hard for the scourge marks on today’s wage slave’s back before gawping at the unbearable ignorance of anyone having thought the idea remotely relative.

                          What we really need are new words to describe new realities.

                          1. 1

                            What we really need are new words to describe new realities.

                            There’s nothing wrong with “proletarian” - a person whose only worth is the labor they can produce.

                            1. 3

                              I mean other than some slightly problematic associations with totalitarian dictators, sure.

                              Thing is, proletarian describes a person who doesn’t really exist in modern western, post-industrial, post-information age economic systems, hence the issue with “new realities”.

                              I mean what’s the word for a person whose only worth is the number of hours of media they consume and the associated metadata around their viewing patterns?

                              What’s the word for a person whose only value to society is to unknowingly label route data for the autonomous vehicle fleet that’s going to replace them in exchange for an Uber fare?

                              Marx is useful, but we moved beyond the veil of what he was talking about a ways back.

                              1. 0

                                I do agree that the nightmare scenario of the Iron Law pushing down wages to the absolute subsistence level hasn’t (yet) come to pass. Modern society relies on a certain level of discretionary income to pay for more than shelter and food. After all, the purpose of “surveillance capitalism” is to sell people stuff (or rather, help others sell to people more efficiently).

                                I’ve always felt that Marx was better at analysis than solutions, and in fact applying a small tincture of materialist economics is generally an excellent solvent for revealing the true nature of many real-life situations. Start by asking cui bono?

                  2. 2

                    Or we could just look at Qatar and the UAE, where millions of people (80% or more of the total residents!) are non-permanent residents and only there to work. Human-rights abuses are vast, and it’s generally agreed that these folks are being pressed into slave labor. There’s also large amounts of prison labor and conscription worldwide, still; some 40 million people are enslaved today.

                    1. 3

                      Yes, I know… because the definition in use is considerably expanded from chattel slavery. If we just look at chattel slavery — we have no useful numbers on historical economic or carceral or conscript slavery to compare with — then there’s certainly fewer enslaved people today as a percentage of world population than there was in even the quite recent past.

                      Expand the definition and start thinking in absolute counts and sure, as the general population has expanded exponentially the total population engaged in actually involuntary labor has gone up, despite the percentage of people being held in such bondage going down.

                      Don’t get me wrong, all these statistics are abhorrent, but the percentage of the population going down is precisely why the “I’d struggle to find a slaveowner today despite there being absolutely more slaves” is both true and still a false equivalence. It’s hard for that poster to find a chattel slave owner, therefore it’s weird to think “master” is a reference to slavery, despite acknowledging that if you look very far at all it’s not at all difficult to find people engaged in the active exploitation of involuntary labor, ie “masters”.

      2. 24

        Never in those cases do I hear voices from the actually affected groups. I’ve never heard a tribe complaining about out-groupers dressing up in tribal costumes. To the contrary and more sensefully, some support and are content with the fact that their customs are celebrated and brought into the world this way.

        While we are on anecdotal evidence, I’ve seen native group complaining about non-native simplifying and misrepresenting their culture and I’ve seen non-white people being uncomfortable about the use of master/slave and more specifically about how much energy many people put to defend these terms.

        In truth, there is no good synonymous replacement for “master”.

        Many have been proposed and are now used…

        1. 12

          more specifically about how much energy many people put to defend these terms.

          Sure but that’s a different thing, right? When one side of the CW has staked a claim on “X is racist”, then it becomes nearly impossible to defend X without being associated with racism. Control the framing, control the debate.

          Did you see anyone complaining before this became a Thing?

          1. 17

            Did you see anyone complaining before this became a Thing?

            Is it possible that you didn’t hear anyone complaining about it before it “became a Thing” because you don’t seek out the views of marginalized people? Or that marginalized people don’t speak up about microaggressions for fear of retaliation? Or because they don’t feel like having an argument right now?

            1. 3

              Sure, it’s always possible. But it’s still true that the way it was raised changes the conversation. So you list valid reasons why we wouldn’t hear anyone before it “became a thing”, but that doesn’t invalidate my argument for why people complaining after it “became a thing” are complaining about a different thing.

      3. 13

        but only makes it harder to adress and talk about real and current problems, i.e. contemporary slavery.

        If by this you mean it draws away attention and energy from real problems and substantive action, then I 100% agree with all you have said (otherwise just 99% ;-)). I don’t think renaming the default branch name of a project is the same as censoring or prohibiting anyone from discussing (modern) slavery.

        1. 12

          Yes, one can nuance what I said more, but I meant exactly that. From what I can tell, most would see themselves as anti-slavery activists by demanding the words to be put out of use, trivializing anti-slavery-initiatives. People only take action if they are emotionally inclined, and their inclination is definitely reduced by feel-good-tactics like the one I mentioned above. And this only if we agree that “master” is a definite slavery-term, which I don’t.

          1. 12

            I think this is a made-up situation. No serious person thinks they’re an “anti-slavery activists by demanding the words to be put out of use.” This just isn’t the case. It’s completely possible for someone to want a word to be used less and to understand that it doesn’t solve the problem.

      4. 9

        John McWhorter is talking about this issue and coined a term “The Elect” - https://johnmcwhorter.substack.com/p/the-elect-neoracists-posing-as-antiracists

        It’s a good read, doesn’t matter if you agree him or not.

        1. 5

          There are more people like John McWhorter, and they recently founded an organization that actually stands against racism (sans CRT): https://www.fairforall.org/

        2. 1

          I actually like John McWhorter in general (and really like his Lexicon Valley podcast), but didn’t think that was particularly good. I think using his platform as a thoughtful academic linguist and black man to paint overly broadly strokes about how people who hold a wide variety of beliefs that he thinks are too subtle (and therefore must be contradictory) as religious zealots is an attempt to ridicule people instead of having a dialog. I know he’s actually more centrist than that, but attacking people as a large group of ideologically identical people isn’t particularly accurate or useful.

      5. 14

        This second-hand offendedness also makes mutual trust and forgiveness a lot harder, which in turn makes outreach and training new folks–required to fix pipeline issues–more difficult.

        Bluntly: constant brainwashing around microaggressions and racism and whatnot have resulted in a hostile environment where it is simply easier to let devs flounder than try and get involved. I’ve seen a senior dev get scuttled via woke office politics while being one of the only folks mentoring junior developers of color, I’ve seen a senior black manager screwed over by white woke folks backchanneling via a different intersectionality, and so on and so forth.

        We need to train people and teach people to raise the next (hopefully more demographically representative) generation, full stop. We need to do better by our juniors and train them, full stop. We need to give everybody the skills and support they need to eke out a living, full stop.

        Unfortunately, people seem to be missing that this identity politics shit creates division (by construction) and makes it harder to teach and lead, to learn and be led. The constant undercurrent and messaging makes people wonder if their work needs improvement or if they’re being discriminated against–or if they need to temper or skip feedback entirely because they’ll be cast as an oppressor. An hour long (and expensive! Good work if you can find it!) sermon on pronoun usage is an hour not spent advancing the careers of the developers who need it the most (and money not spent on training them in the field they work in).

      6. 7

        I’ve never heard a tribe complaining about out-groupers dressing up in tribal costumes.

        I agree with your overall point, but this is probably because the news media often ignores their voices.

        Instead, the news media gives that voice to some media savvy white person speaking for some advocacy group who’s taken the opportunity to insert themselves into the drama, and the tribe is left to get their word out by posting a statement on their tiny website that nobody visits.

        We see this time and time again in the PNW with regard to Native American issues, such as tribal costumes, sports teams, etc.

      7. 5

        another one is the criticism of non-natives dressing up as Native Americans for carnival (criticised as “cultural appropriation”).

        Never in those cases do I hear voices from the actually affected groups. I’ve never heard a tribe complaining about out-groupers dressing up in tribal costumes.

        If you haven’t heard of costume complaints then you’re not listening

      8. 6

        Frankly I just haven’t encountered many black programmers whose opinion I could ask, and you have to wonder, hm, is it because the community is unwelcoming?

        At any rate, one black person who favors this change is Mike Little, co-founder of Wordpress: https://make.wordpress.org/core/2020/06/18/proposal-update-all-git-repositories-to-use-main-instead-of-master/#comment-38831

        1. 2

          Does being co-founder of Wordpress, a CMS, give his opinion on a social matter additional weight?

          1. 6

            I don’t think so, but he helped create a very influential piece of the modern web and has clearly been around for a while. Until I came across this thread, I didn’t know that Matt Mullenweg had a co-founder, or that that co-founder was black. As we try to make the profession more inclusive, it’s worth noting who is already present.

            I would say that his having been in the industry for some time is notable, since you might expect some older programmers to be more “conservative”, in the sense of being opposed to change.

          2. 3

            I don’t know what role Little has now, but wordpress.com was/is a sort of social network (with federated identities that could comment on other’s blogs) so I’m sure the organization itself has been exposed to the questions of moderation and limits to speech that define the modern culture war landscape.

            1. 1

              Interesting, I didn’t know that wordpress functioned to some extent as a social network in the slightest!

              1. 2

                Note that I stated wordpress.com, the free hosted version.

                Maybe “on-prem” WP instances give WP.com users an instant auth for commenting, I honestly don’t know. It’s been a long time since I commented on a WP blog…

        2. 1

          But is “people being hurt” a decision one group can take by itself?

          As someone who grew up in Turkey, trust me it always confused the hell out of me when the US president pardoned a turkey on Thanksgiving. Can someone say, naming a country after an animal is hurting people, sure but where do we draw the line? There should be some nuance and currently there’s none, nuance is dead on the internet.

          1. 2

            Can someone say, naming a country after an animal is hurting people

            I’m assuming you mean the other way around.

      9. 5

        I find your position here logically incoherent. Someone (call them “A”) did something. Someone else (call them “B”) is upset by it. Now you are joining in to be offended against “A” on behalf of “B” while simultaneously decrying “second-hand offensiveness”. Either it’s bad or it’s not – it can’t be bad only when other people do it but good when you do it.

        Meanwhile, neither you nor anyone else should be affected on a technical level by what some third party chose to name a git branch. If you were, it could only have been due to technical negligence on your part, such as by assuming that the primary/default branch would always have a certain name, rather than using available mechanisms to discover that name on a per-repository basis. That’s an error in the same category as, say, when Adobe assumed their hidden folder name would always sort ahead of all others alphabetically and then deleted files from other applications as a result.

        Which means that the only possible objection would be based on non-technical factors. But there is no inherent right on your part to force someone else to change their branch naming. If a maintainer with full control of a repository wants to name the primary branch “main”, you have no right to force them to choose otherwise. Same as if they want to name that branch “rainbowsandunicorns”. Or sell naming rights to the branch to raise funding for the project, so that now all checkouts and pull requests should target the “goldenpalacecasino” branch. Same as if they want to name the branch to advocate for some cause they care about – perhaps Bram Moolenaar will one day change his branch name to suggest supporting the children in Uganda.

        All of these are beyond your power to control. The most you can do is fork, use your preferred naming conventions in the fork, and hope that your fork becomes more popular than the original. But of course everyone else has the right to reject your fork and conventions, especially if they have a policy of disregarding the feelings of others in anything tech-related. So, now that I come to think of it, you might be better off avoiding such (for example, if you are hoping to have maintainers make decisions that take your feelings into account, you might want to avoid communities like suckless.org, as they notably take a stance against this), and instead looking to communities which are receptive to that type of concern. Unfortunately, such communities tend to get a bad name and wind up with “f*ck your (decision)” articles written about them and highly upvoted on tech sites, which is a risk factor you probably want to be aware of.

        1. 6

          If you were, it could only have been due to technical negligence on your part, such as by assuming that the primary/default branch would always have a certain name, rather than using available mechanisms to discover that name on a per-repository basis. That’s an error in the same category [..]

          Hindsight is 20/20.

          If you’d have asked me a year ago, I think I would have found the assumption that the primary branch is always called ‘master’ a lot more reasonable than assuming some folder will always be sorted into the first position. I believe I would come up with a counterexample for the latter, but not for the former. I may well have some code out there with a hardcoded ‘master’ somewhere. I won’t have code that deletes files based on their sort position.

          1. 4

            In the past decade I’ve used three different version-control systems which between them had at least four different (at different times) automatic default names for the primary branch. I don’t think it would occur to me to hard-code something like that unless I saw API documentation for the system which made a guarantee of that name.

      10. 5

        Never in those cases do I hear voices from the actually affected groups.

        Then you’re not listening.

        1. 1

          Agreed. I’ve seen plenty of criticism of a certain insurrectionist shaman.

      11. 3

        another one is the criticism of non-natives dressing up as Native Americans for carnival

        This is not a great example.

      12. 2

        Second-hand offendedness.

        Not sure why it got really popular on tumblr, but those voices really joined up there and escalated to silly levels.

        Never in those cases do I hear voices from the actually affected groups. I’ve never heard a tribe complaining about out-groupers dressing up in tribal costumes.

        It’s hard when those voices drown in things repeated by more numerous / loud population, but it’s not hard to find native Americans on twitter saying this about coachella outfits for example.

        But some things and culture preferences and history are actually complicated. For example how you refer to native Australians - you’ll find conflicting preferred expressions. Then a well meaning person will repeat the answer in another context and cause more chaos.

    9. 21

      Arduino serves it’s purpose perfectly: attract beginners and allow those who don’t want to invest a deep amount of effort to do things with microcontrollers.

      It was never designed to be a one-size-fits-all or a tool for professional embedded programmers.

      I don’t see the issue.

      1. 11

        I agree completely.

        It’s like people who complain that all those people out there using tablets now (90%?) can’t do as much on a tablet as the author can do on a PC/Mac/Linux.

        No doubt true, but those 90% of people couldn’t do those things on a PC either. And can easily do things on their tablet that they wouldn’t be able to do on a PC.

      2. 6

        I agree, and the author even acknowledges that. It seems to me that the author’s main point is that the world of embedded programming is still complex and fragmented, and it’s hard to hire people who have the experience to navigate it effectively.

        The points about Arduino felt mostly unnecessary.

    10. 12

      I once wasted an entire month trying to resolve some cryptic C# compile errors where Visual Studio simply wouldn’t recognize some of my source files. In the end, the reason was that the compiler silently failed to recognize files with path lengths of longer than 255 characters, even though you can technically create such files on Windows. A prefix like “C:\Users\Benjamin\Documents\ProjectName\src" combined with C#’s very verbose naming conventions meant that a few of my files were just over the path size limit.

      1. 8

        I feel like Windows is drowning in technical debt even more than Linux is. The APIs to work with long paths have existed for ages now, so most modern software lets you easily create deep hierarchies, but Windows Explorer still isn’t updated to work with those APIs so if you create a file with a long path, you can’t interact with that file through Explorer. There have been solid widgets for things like text entry fields in various Microsoft UI frameworks/libraries for ages now, but core apps like Notepad and - again - Windows Explorer still aren’t updated to take advantage of them, so hotkeys like ctrl+backspace will just insert a square instead of doing the action which the rest of the system has taught you to expect (i.e deleting a word). CMD.EXE is an absolutely horrible terminal application, but it hasn’t been touched in ages presumably due to backwards compatibility, and Microsoft is just writing multiple new terminal applications, not as replacements because CMD.EXE Will always exist, but as additional terminal emulators which you have to use in addition to CMD.EXE. The Control Center lets you get to all your settings, but it’s old and crusty, so Microsoft is writing multiple generations of separately holistic Control Center replacements, but with limitations which make it necessary to use both the new and the old settings editors at the same time, and sometimes Control Center and some new settings program don’t even agree on the same setting. Windows is useful as a gaming OS, but any time I actually try to use it, I just get sad.

        1. 6

          CMD.EXE is an absolutely horrible terminal application, but it hasn’t been touched in ages presumably due to backwards compatibility, and Microsoft is just writing multiple new terminal applications, not as replacements because CMD.EXE

          What you think of as cmd.exe is actually a bunch of things, most of which are in the Windows Console Host. The shell-equivalent part is stable because a load of .bat files are written for it, but PowerShell is now the thing that’s recommended for interactive use. The console host (which includes a mixture of things that are PTY-subsystem and terminal emulator features on a *NIX system) is now developed by the Windows Terminal team and is seeing a lot of development. Both cmd.exe and powershell.exe run happily in the new terminal with the new console host and in the old terminal and the old console host. At the moment, if you run them from a non-console environment (e.g. from the windows-R box), the default console host that’s started is the one that Windows ships with and so you don’t get the new terminal.

          1. 1

            Windows Terminal is great when I can use it, but it does not seem to work well with administrator privileges.

            1. 1

              You can use the sudo package from scoop. For me it’s good enough.

              1. 1

                Wow, did not know about this! It looks like it still generates a UAC popup unless you configure those to not exist. Still, far better than nothing.

                http://blog.lukesampson.com/sudo-for-windows

          2. 1

            but PowerShell is now the thing that’s recommended for interactive use

            Which one? ;-)

            I have some code that extracts config/data/cache directories on Windows (the equivalent of “check if XDG_CONFIG_DIR is set, otherwise use .config” on Linux) and it’s just a hyperdimensional lair of horrors.

            Basically, the best way to get such info without having to ship native code is to run powershell (version 2, because that one does not have restricted mode) with a base64 encoded powershell script that embeds a C# type declaration that embeds native interop code that finally calls the required APIs.¹

            I’m close to simply dropping Windows support, to be honest.


            ¹ The juicy part of the code for those interested:

              static final String SCRIPT_START_BASE64 = operatingSystem == 'w' ? toUTF16LEBase64("& {\n" +
                  "[Console]::OutputEncoding = [System.Text.Encoding]::UTF8\n" +
                  "Add-Type @\"\n" +
                  "using System;\n" +
                  "using System.Runtime.InteropServices;\n" +
                  "public class Dir {\n" +
                  "  [DllImport(\"shell32.dll\")]\n" +
                  "  private static extern int SHGetKnownFolderPath([MarshalAs(UnmanagedType.LPStruct)] Guid rfid, uint dwFlags, IntPtr hToken, out IntPtr pszPath);\n" +
                  "  public static string GetKnownFolderPath(string rfid) {\n" +
                  "    IntPtr pszPath;\n" +
                  "    if (SHGetKnownFolderPath(new Guid(rfid), 0, IntPtr.Zero, out pszPath) != 0) return \"\";\n" +
                  "    string path = Marshal.PtrToStringUni(pszPath);\n" +
                  "    Marshal.FreeCoTaskMem(pszPath);\n" +
                  "    return path;\n" +
                  "  }\n" +
                  "}\n" +
                  "\"@\n") : null;
            
            1. 1

              Which one? ;-)

              PowerShell 7 Core, of course!

              …for now!

              …unless you also need to support classic PowerShell, in which case, PowerShell 5!

              …and be careful not to use Windows-specific assemblies if you want to be cross-platform!

        2. 3

          The APIs to work with long paths have existed for ages now

          Well, I’d agree about technical debt, but this claim is a great example of it.

          As an application developer, you can choose one of these options:

          1. Add a manifest to your program where you promise to support long paths throughout the entire program. If you do this, it won’t do anything unless the user has also modified a system-global setting to enable long paths, which obviously many users won’t do, and you can expect to deal with long path related support queries for a long time. This is also only supported on recent versions of Windows 10, so you can expect a few queries from users running older systems.
          2. Change your program to use UTF-16, and escape paths with \\?\ . The effect of doing this is to tell the system to suppress a lot of path conversions, which means you have to implement those yourself - things like applying a relative path to an absolute path, for example. This logic is more convoluted on Windows than Linux, because you have to think about drive letters and SMB shares. “D:” relative to “C:\foo” means “the current directory on drive D:”. “..\..\bar” relative to “C:\foo” means “C:\bar”. “\\server\share\..\bar” becomes “\\?\UNC\server\share\bar”. “con” means “con”.

          I went with option #2, but the whole time kept feeling this is yet another wheel that all application developers are asked to reinvent.

        3. 1

          Windows is useful as a gaming OS, but any time I actually try to use it, I just get sad.

          • Microsoft Office and the Adobe Suite (or replacements such as the Affinity Suite).

          It would be really nice if Microsoft just ported Office.

          1. 2

            They effectively have. It seems like Microsoft cares far more about the O365 version of Office than any native version — even Windows.

            1. 2

              They effectively have. It seems like Microsoft cares far more about the O365 version of Office than any native version — even Windows.

              Office 365 is a subscription service, most of the subscriptions include the Windows/Mac Apps. I guess that you mean Office Online, but it only contains a very small subset of the features of the native versions. I tried to use it for a while, but you quickly run into features that are missing.

        4. 1

          The separation of the control centre may actually go away soon. If the articles are up be believed, MS finished that migration in the latest version.

          1. 1

            More details? The only thing I heard was that they were finally killing the working ones.

    11. 6

      A $12 Logitech K120. It’s great, it’s cheap, it’s plenty.

    12. 28

      MIPS is everywhere, still. Including in network gear, wireless, IoT, and other embedded applications.

      1. 8

        This. While it seems to me that most high-end network gear is slowly migrating towards ARM, MIPS keeps turning up in odd places. I recently dug around in the weird world of handheld video game consoles designed to run emulators, and found this spreadsheet compiled by the fine folks here. I was surprised to see a relatively large number of CPU’s with “XBurst” architecture, which MIPS32 plus some DSP extensions.

        I have a friend who recently got an internship at a company to help optimize their AS/400-based database infrastructure, and it looks like the current IBM systems are still backwards-compatible with S/390 programs. So while you might not see s390 much it’s probably not going away quickly.

        I believe Alpha, PA-RISC and IA-64 are officially deprecated these days, so nobody is making new ones and nobody seems to want to. To my surprise, it appears that people are still manufacturing SPARC hardware though.

        1. 3

          Mostly Fujitsu, but even they are doing more aarch64.

        2. 3

          it looks like the current IBM systems are still backwards-compatible with S/390 programs

          My understanding is that IBM Z stuff today is extremely compatible with System/360 programs from the mid-’60s.

        3. 2

          So while you might not see s390 much it’s probably not going away quickly.

          For legacy applications on MVS and friends, yeah, but IBM basically killed 31-bit Linux.

          To my surprise, it appears that people are still manufacturing SPARC hardware though.

          There’s still a market for legacy Solaris systems.

          1. 1

            How frequently are these legacy Solaris systems updated? How frequently are IBM Z systems updated? I heard (might be unsubstantiated) that some mainframes still run 20 year old Perl, even though the OS gets updates.

            1. 1

              Depends how much they care; if they do, they’ll keep their ancient application onto newer Solaris on newer hardware (i.e M8).

              The 20-year-old-Perl makes me think you’re talking USS on z/OS (aka MVS); that’s a world I know very little of.

        4. 1

          IBM i (née AS/400) is all on PowerPC these days. It’s a very different system from s390/mainframe/zOS

    13. 3

      This has already been discussed publicly by Satya/some other exec at BUILD. MSFt would fully-open source it if the IP allowed, but the IP doesn’t allow for it.

      I think one of two scenarios might pan out:

      1. That you will see large portions of Windows open sourced, and the IP-encumbered parts replaced with open source-friendly components.

      2. Microsoft puts Windows into maintenance mode and jumps to Linux as the basis for future OSes, with open, multi-platform APIs.

      Frankly, at this point, I don’t know which is more likely.

      1. 2

        Do you have any sources for this? Would like to read more about what Satya said about it.

      2. 1

        I’ve wondered about number (2) for awhile now. If they created a really nice desktop environment and GUI toolkit I bet people would adopt it like crazy, particularly given the messes that have been made of GTK and Qt.

        1. 2

          Linux desktop use is maybe 1-2%. Why would they care about crazy adoption among that user base? Microsoft’s real competition are Android and iOS.

          1. 1

            Sorry, my assumption would be that MS would bring a big chunk of its existing user base to (its own version of) Linux. In other words, they’d ship “Windows 11” and it would be a Linux distro under the hood the same way Apple moved to a Unix with OS X. Presumably they’d ship a compatibility layer like Apple did with Rosetta. I don’t think it will happen, there’s just too much legacy “stuff” there, but it’s an interesting thing to ponder.

            1. 2

              I agree that it’s nice to fantasize about the idea. Though it would be a very large effort, first I assume that the Windows libraries/APIs are probably very much reliant on the Windows kernel. Secondly, Linux does not really have the driver model that hardware manufacturers are used to.

              On the other had, they could just start submitting code and tests to Wine. If they make it bug for bug compatible with Windows, they wouldn’t even need to port Windows to the Linux kernel. I am really impressed how well Proton works for games, I can only imagine what Wine as a base for non-game applications if Microsoft would invest in it.

              I think in practice, they will just skim profit from Windows 10 as long as they can, while extending their cross-platform strategy for applications (e.g. see the recent announcement of Electron-based Outlook). Also, it seems that they want to do another attempt at a ChromOS-like Windows with Windows 10X.