DefederateLemmyMl

  • Gen𝕏
  • Engineer ⚙
  • Techie 💻
  • Linux user 🐧
  • Ukraine supporter 🇺🇦
  • Pro science 💉
  • Dutch speaker
  • 1 Post
  • 65 Comments
Joined 1 year ago
cake
Cake day: August 8th, 2023

help-circle
  • Take a breath dude

    Can you not please with the condescending language? Maybe you’re the one who should take a breath and read my post calmly. Anyway, the guy above me asked, I gave an answer to cover all the bases.

    The default branch name of git isn’t that important to me either, I’ll manage with main or master. But at the same time it does irk me especially since this kind of language policing has become an industry wide trend, and it’s just a stupid thing done for stupid reasons. Am I still allowed to express why I find it stupid?

    it’s trivial to change

    It isn’t as trivial as you make it out. I’ve already encountered repos where there was both a main and a master branch, both with different commits, because some developer got confused, and it was a nice mess to untangle. But hey, let’s change some more stuff around for no good reason.

    If there’s any chance it helps maintain a hostile workplace/industry

    I can think of a lot of things that contribute to a hostile workplace, but the default branch name of git? Seriously? Even the people who pushed for this don’t actually believe that themselves.


  • Why care about Master at all?

    I’ve already explained all my reasons, but I’ll reiterate. To summarize I basically have five main issues with it

    1. The change was done in response to attempts at language policing and bullying by a vocal and militant minority. Giving into it is a form of appeasement towards an unreasonable demand.

    2. The change retroactively modifies a terminology that was already agreed upon. Like, if git sprung into existence today, not many people would have an issue with it if they would call it main or trunk or primary from the get go. But that’s not what happened. Git was released in 2005 and it used master terminology. As a consequence, many existing repositories also use master. Now when someone is working with branches, like doing merges or pull requests, they suddenly have to remember: oh in this repository it is main, but in that repository it is still master. Or they have go out of their way to modify decade old repositories, potentially breaking all kinds of behind the scenes CICD stuff. Or they have to go out of their way to revert the default on all systems that they’re working on back to master. In any case, this change is a source of errors and wasted effort for zero net good.

    3. It does no good in the real world other than making do-gooders feel good about themselves, and giving a capitalist entity some PR to appear more progressive than they are. We all still have masters, existing slaves are not freed, no historical wrongs of slavery or inequality are righted.

    4. It’s a misguided change in this case because the word master in this context doesn’t even have a relationship to slavery. Just like a master degree you may hold, or a master key or a master recording of your favorite album have no bearing on slavery. Note that there are no “slave” branches in git.

    5. Finally, in the case of git, master is simply more accurate than main because it carries a nuance (derivativeness) that main does not.


  • There’s no need for master terminology there

    Nobody said there is a need, you could call it foo or bar and it would still work. It just that master more accurately describes what it is. Main for example does not describe a derivative relationship, master does.

    Also, master in this context is totally unrelated to slavery so I could also just as easily say that there was no need to replace the existing terminology either. It doesn’t solve any real world problems of historic or currently existing slavery, and it doesn’t make anyone’s life better. The only reasons why it was done were appeasement and virtue signalling.


  • Is it not the main working branch

    No it is not. On large distributed projects for which git was designed, you typically don’t directly work on main/master but you create a working branch to do your changes, and when they are ready you merge them to main/master.

    There are many types of git workflows, but main/master usually contains the code that is deployed to production or the latest stable release and not some work in progress.

    When you start a new project, do you open a new branch or create a whole new repository?

    You have to define “project” for that.

    • Is your project a change to existing code -> new branch, merge to main/master when done
    • Is your project something new that stands entirely on its own? -> new repository

  • I’ve seen ‘Active / Passive’ used, that seems alright

    That’s not always an accurate description though.

    Consider a redundant two node database system where the second node holds a mirrored copy of the first node. Typically, one node, let’s call it node1, will accept reads and writes from clients and the other node, let’s say node2, will only accept reads from clients but will also implement all writes it receives from node2. That’s how they stay in sync.

    In this scenario node2 is not “passive”. It does perform work: it serves reads to clients, and it performs writes, but only the writes received from node1. You could say that node2 slavishly follows what node1 dictates and that node1 is authorative. Master/slave more accurately describes this than active/passive.

    There’s plenty of alternative terms to use without borrowing terminology from sexual roleplay.

    Do I have news for you …


  • master over main

    That one is the most stupid one too, because master in git doesn’t even refer to a master/slave relationship. It refers to a different meaning of the word master, namely “an original from which copies can be made”, as in master recording or master key. See 5b in the Merriam-Webster dictionary. And that’s how it’s used in git: any new branches are derived from master. Main just does not have the same nuance, because it does not imply a relationship between the branches, just that it’s somehow more important than the others.

    But of course, the real reason it was changed is because for companies like github it’s easier to give in to the crazies who demand this than to fight them.





  • We are talking about addresses, not counters. An inherently hierarchical one at that. If you don’t use the bits you are actually wasting them.

    Bullshit.

    I have a 64-bit computer, it can address up to 18.4 exabytes, but my computer only has 32GB, so I will never use the vast majority that address space. Am I “wasting” it?

    All the 128 bits are used in IPv6. ;)

    Yes they are all “used” but you don’t need them. We are not using 2^128 ip addresses in the world. In your own terminology: you are using 4 registers for a 2 register problem. That is much more wasteful in terms of hardware than using 40 bits to represent an ip address and wasting 24 bits.


  • you are wasting 24 bits of a 64-bit register

    You’re not “wasting” them if you just don’t need the extra bits, Are you wasting a 32-bit integer if your program only ever counts up to 1000000?

    Even so when you do start to need them, you can gradually make the other bits available in the form of more octets. Like you can just define it as a.b.c.d.e = 0.a.b.c.d.e = 0.0.a.b.c.d.e = 0.0.0.a.b.c.d.e

    Recall that IPv6 came out just a year before the Nintendo 64

    If you’re worried about wasting registers it makes even less sense to switch from a 32-bit addressing space to a 128-bit one in one go.

    Anyway, your explanation is a perfect example of “second system effect” at work. You get all caught up in the mistakes of the first system, in casu the lack of addressing bits, and then you go all out to correct those mistakes for your second system, giving it all the bits humanity could ever need before the heat death of the universe, while ignoring the real world implications of your choices. And now you are surprised that nobody wants to use your 128-bit abomination.








  • You don’t even have to NAT the fuck out of your network. NAT is usually only needed in one place: where your internal network meets the outside world, and it provides a clean separation between the two as well, which I like.

    For most internal networks there really are no advantages to moving to IPv6 other than bragging rights.

    The more I think about it, the more I find IPv6 a huge overly complicated mistake. For the issue they wanted to solve, worldwide public IP shortage, they could have just added an octet to IPv4 to multiply the number of available addresses with 256 and called it a day. Not every square cm of the planet needs a public IP.


  • People have choices. If they want to keep using the Lemmy.ml community, that’s their freedom. The alternatives exist, if they want to switch, they can.

    Because network effect is a thing, it’s really the illusion of choice. When a lemmy.ml community has 50k subscribers and the equivalent lemmy.world or programming.dev community has just a tenth of that, it’s not really a choice. People will always gravitate towards ml and the smaller community will never gain critical mass unless some strong enough outside force influences that decision.

    Which brings me to …

    Intrigued by your name change, you are really pushing for this.

    I think defederation from lemmy.ml together with raising awareness about ml should be the outside force to move communities off lemmy.ml.


  • It’s when you have to set static routes and such.

    For example I have a couple of locations tied together with a Wireguard site-to-site VPN, each with several subnets. I had to write wg config files and set static routes with hardcoded subnets and IP addresses. Writing the wg config files and getting it working was already a bit daunting with IPv4, because I was also wrapping my head around wireguard concepts at the same time. It would have been so much worse to debug with IPv6 unreadable subnet names.

    Network ACLs and firewall rules are another thing where you have to work with raw IPv6 addresses. For example: let’s say you have a Samba share or proxy server that you only want to be accessible from one specific subnet, you have to use IPv6 addresses. You can’t solve that with DNS names.

    Anyway my point is: the idea that you can simply avoid IPv6’s complexity by using DNS names is just wrong.