• 6 Posts
  • 83 Comments
Joined 2 years ago
cake
Cake day: June 5th, 2023

help-circle

  • dfyx@lemmy.helios42.detomemes@lemmy.worldWorse than Mormons
    link
    fedilink
    arrow-up
    12
    arrow-down
    17
    ·
    2 days ago

    Have you seen how some Linux users treat people who don’t use exactly what they think is the hottest shit? Even towards people who use as much FOSS as they can but still need some proprietary stuff for certain use cases because FOSS alternatives are not quite there yet. It’s annoying as hell and comes up in every single discussion that vaguely fits the topic. I would say the comparison to Mormons is not that far off.


  • dfyx@lemmy.helios42.detomemes@lemmy.worldWorse than Mormons
    link
    fedilink
    English
    arrow-up
    7
    arrow-down
    7
    ·
    2 days ago

    I’m all for moving as many people away from closed systems as possible. But tribalism and victim blaming achieves the exact opposite. Why would anyone move to something where the community makes them feel unwelcome from the start?

    If we want people to use Linux, we have to be patient and help them overcome their pain points, not go “haha you dumb”.


  • dfyx@lemmy.helios42.detomemes@lemmy.worldWorse than Mormons
    link
    fedilink
    English
    arrow-up
    25
    arrow-down
    29
    ·
    edit-2
    2 days ago

    Instead of being condescending, you might help people solve the problems that keep them from switching. Or just stay quiet. Whatever you prefer. This elitist attitude is one of the reasons why some people won’t even try Linux because they fear they will be ridiculed as soon as they need to ask for help.



  • I wouldn’t call it Stockholm syndrome. The problem is that even a single application that’s critical to your workflow can keep you from switching, even if everything else is much better.

    I’ve switched to Linux on my laptop about 6 months ago and the overall experience is pretty good. A few annoyances that I can’t seem to fix but overall pleasant. But there are still some things that keep me from doing the same on my main workstation:

    • I just can’t get used to RawTherapee or darktable for developing photos. Everything takes me three times as long to get the results I want and at hundreds of photos per shoot, that adds up really quickly. I’m sure I could learn those tools and get as comfortable with them as I am with Adobe CameraRaw but that would cost me weeks or even months of productivity and I just can’t afford that right now.
    • Similar problem with general graphics stuff. I’m sure that Gimp and Inkscape are amazing tools if you’re used to them but coming from tools like Photoshop and Illustrator, they’re so different that the switch feels like hitting a brick wall at running speed. Krita is nice but it seems to focus heavily on painting which is my least common graphics use case. I really hope that Affinity Photo and Affinity Designer will get ported to Linux at some point even if that means the open source purists will probably kill me.
    • A lot of my existing software projects are written in C#. Most of them are cross-platform and run on Linux servers anyway, so that’s not the problem. But neither VSCode nor Rider are quite as comfortable as VS2022. No, I won’t just port everything to Rust.
    • Steam on Linux has made amazing steps but getting some games to work is still pretty fiddly and reminds me of gaming on DOS in the 90s when you had to dig through half a dozen config files before you could play your new game.

    All those problems can be solved with enough patience but to be honest, I’m in my late 30s and free time is getting rare so I’d rather spend it on something that brings me joy or on learning something entirely new instead of relearning an existing skill.

    And no, this not a criticism against Linux or its community. I’m just trying to give an insight into how small problems can make the switch incredibly hard, even for someone who has a degree in computer science, has worked with Linux machines for about 20 years now and would love nothing more than to leave Windows behind.



  • Remind me…

    • Which country checks tourists’ social media for anti-Trump posts on entry?
    • Which country regularly arrests (and in many cases deports) both their own citizens and foreigners without consulting a court?
    • Which country spies on its own citizens to figure out if they may have had an abortion?

    But sure, even thinking about doing something about a right-wing party that has been classified as extremist by multiple courts and explicitly lists several human rights violations as their goals… that’s a step too far…



  • Without saying anything negative about D&D 5e, let me tell you about two of my personal favorites:

    The Dark Eye

    Under the name “Das Schwarze Auge”, this is one of the most popular systems in Germany and has existed since the mid 80s and the latest edition has been available in English for about a decade now. There are dozens of source books and hundreds of official campaigns and standalone adventures, all set in the same world and a single ongoing canon (apart from a few early works that have been retconned). There are decades of detailed in-world history that you can use as a background for your own campaign if you want or selectively ignore if you want to focus on your own interpretation of what the world should look like.

    Mechanics-wise it’s a lot less board-game-like than some 70s/80s/90s systems while not going the full “storytelling first” route that many more moderns systems seem to prefer. On top of the eight basic attributes, characters can select from a pool of skills and feats that cover everything from combat to magic to social interaction to crafts and hobbies. The system focuses a lot less on combat than other high fantasy systems and it’s absolutely viable to have a group of purely social-focused characters that never get into a single fight but still get to use a lot of the system’s mechanics.

    Overall it’s relatively complex if you want to use absolutely every rule but at the same time very versatile and can be customized to your playstyle.

    Opus Anima / Opus Anima Investigation

    Sadly out of print and never officially translated to English so I’ll focus on the one thing that works without the official setting: it’s one of the simplest systems I’ve ever seen. It uses a pool of D2s (odd/even on D6, coins, red/black cards, whatever you have on hand) where the number of dice is determined by a basic attribute and a skill that can be combined however the situation requires. Dexterity + mechanics to build something, perception + mechanics to recognize a mechanism, knowledge + mechanics to understand the underlying principles or remember who invented something. To avoid experienced characters failing an easy check out of pure bad luck, everything over 10 dice is not rolled but gives half a success (rounded up) automatically. That’s it. That’s the whole system.





  • And another example that shows off pattern matching:

    Procedural:

    int minimumElement(int[] array)
    {
        if(array.size() == 0)
        {
            return 0;
        }
    
        int minimum = array[1];
        for(int i = 1; i < array.size(); i++)
        {
            if(array[i] < minimum)
            {
                minimum = array[i];
            }
        }
        return minimum;
    }
    

    Functional (still, no specific language, just an example of what it might look like):

    int min(int a, int b) => a < b ? a : b;
    int minimumElement(int[] array) =>
        array match {
            [firstElement, ...rest] => min(firstElement, getMinimumElement(rest));
            [singleElement] =>singleElement;
            [] => 0;
        }
    

  • Let me try getting this to ELI5 levels:

    Most programming languages use a way of programming called “procedural programming” (or a variation of that, for example object-oriented programming). A series of instructions gets executed step by step to modify the program’s overall state. Imagine it like a cooking recipe. You have control structures like if, while and for that influence the order in which instructions are executed. There are functions (or methods in object-oriented programming) that let you reuse some instructions over and over but that’s not quite functional programming.

    I’ll use a syntax similar to Java, C++ or C# as an example:

    void squareAllElements(int[] array)
    {
        for(int i = 0; i < array.size(); i++)
        {
            array[i] = array[i] * array[i];
        }
    }
    

    Functional programming is a bit more like what you know from maths class. There are still functions that take a list of inputs and produce an output but there is no state to be modified. Every operation must take everything it needs (apart from maybe constants) as parameters and produces new values/objects as an output. You say you know Java, so imagine that none of your methods returns void and every variable can only be assigned once. There are no loops but for example operations that let you separate the first element of a list from the rest or create a new list by applying an operation to all elements of an input. To make that easier, functions can take other functions as parameters.

    So let me show the same example in a functional style. This is no specific language, just an example to help you imagine how it works.

    int square(int x) => x * x;
    int[] squareElements(int[] array) => applyToAllElements(array, square);
    

    Functional programming has its own advantages and disadvantages. It can avoid a lot of bugs because functions can’t have unwanted side effects. They just take inputs, return outputs and leave the rest of the world (including their inputs) unmodified. On the other hand, that makes other use cases where you actually want to have some state that changes over time more difficult.

    Hope that helps.

    Edit: some cleanup and more precise explanations.

    Edit: replaced “paradigm” with “way of programming” to make @palordrolap@fedia.io happy.