this post was submitted on 06 Aug 2024
545 points (97.6% liked)

linuxmemes

21761 readers
1043 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack members of the community for any reason.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, <loves/tolerates/hates> systemd, and wants to interject for a moment. You can stop now.
  •  

    Please report posts and comments that break these rules!


    Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't fork-bomb your computer.

    founded 2 years ago
    MODERATORS
    545
    Wine acronym (lemmy.ca)
    submitted 5 months ago* (last edited 5 months ago) by [email protected] to c/[email protected]
     
    (page 2) 42 comments
    sorted by: hot top controversial new old
    [–] [email protected] 12 points 5 months ago (2 children)

    You can wine about it all day - it still isn't an emulator.

    [–] [email protected] 2 points 5 months ago

    Well then, I guess our ideology doesn't translate into the same meaning.

    load more comments (1 replies)
    [–] [email protected] 35 points 5 months ago (1 children)

    GTK = GNU's Not Unix Image Manipulation Program Tool Kit

    load more comments (1 replies)
    [–] [email protected] 8 points 5 months ago

    HURD moment

    [–] [email protected] 9 points 5 months ago

    A Criminal Regiment Of Nasty Young Men

    [–] [email protected] 24 points 5 months ago (11 children)

    EMACS makes all coding suck
    VIM is marvelous

    [–] [email protected] 15 points 5 months ago (1 children)

    Eight Megabytes And Constantly Swapping

    load more comments (1 replies)
    load more comments (10 replies)
    [–] [email protected] 1 points 5 months ago (1 children)
    [–] [email protected] 1 points 5 months ago* (last edited 5 months ago) (10 children)

    Quick Emulator

    (At least it was when it was written. Rosetta blows it out of the water.)

    load more comments (10 replies)
    [–] [email protected] 5 points 5 months ago* (last edited 5 months ago) (2 children)
    wine = iterate (++" Is Not an Emulator") "WINE"
    
    [–] [email protected] 4 points 5 months ago (1 children)

    I've never worked with Haskell, but I've been meaning to expand my programming repertoire (particularly since I don't get to do much coding at work, let alone learn new languages) and this makes for a nice opportunity, so I wanna try to parse this / guess at the syntax.

    I assume iterate function arg applies some function to arg repeatedly, presumably until some exit condition is met? Or does it simply create an infinite, lazily evaluated sequence?

    ( ) would be an inline function definition then, in this case returning the result of applying ++suffix to its argument (which other languages might phrase something like arg += suffix), thereby appending " Is Not an Emulator" to the function argument, which is initially "WINE".

    So as a result, the code would produce an infinite recurring "WINE Is Not an Emulator Is Not an Emulator..." string. If evaluated eagerly, it would result in an OOM error (with tail recursion) or a stack overflow (without). If evaluated lazily, it would produce a lazy string, evaluated only as far as it is queried (by some equivalent of a head function reading the first X characters from it).

    How far off am I? What pieces am I missing?

    [–] [email protected] 2 points 5 months ago* (last edited 5 months ago) (1 children)

    You're pretty much right on the money. In Haskell, a String is a type synonym for [Char], so we can use the list concatenation function ++ to join strings. ++ is an infix function i.e. [1,2,3] ++ [3,4,5] = [1,2,3,3,4,5] (which will be equivalent to doing (++) [1,2,3] [3,4,5] by virtue of how infix functions work in Haskell). When we do (++ "a"), we create a partially applied function. Now, we can supply another string to it and it will add "a" at the end of it.

    iterate f x produces a lazily evaluated sequence [x, f x, f f x, ...]. So, to get the nth entry, we can do wine !! n where we use another infix function !!. With partial application, we can modify the definition of wine to create a function that takes an Int n and spits out the nth entry of it by doing

    wine = (!!) $ iterate (++" Is Not an Emulator") "WINE"
    

    We needed to wrap the !! inside parentheses because it's an infix function. $ just changes the order of application. (IIRC, it's the least significant function.) You can think that we're wrapping whatever's on the right of the $ by parentheses. Now we can do wine 2 instead of wine !! 2 to get "WINE Is Not an Emulator Is Not an Emulator".

    I'm by no means a Haskell expert. (I'm not even a professional programmer lol.) So, if someone would like to add some more details, they're more than welcome.

    Edit: A much more readable version might be

    wine 0 = "WINE"
    wine n = wine (n-1) ++ " Is Not an Emulator"
    
    load more comments (1 replies)
    [–] [email protected] 5 points 5 months ago (1 children)
    Internal errors - invalid parameters received
    
    [–] [email protected] 4 points 5 months ago* (last edited 5 months ago)

    Sorry, I should've specified, it's in Haskell. Idk where you tried running it.

    [–] [email protected] 40 points 5 months ago* (last edited 5 months ago) (1 children)

    My personal favorite acronym like that definitely goes to AROS (Amiga Research Operating System) that if I remember correctly had to - for legal reasons - change the name. Rather than come up with a completely new name, went with AROS Research Operating System.

    Edit: name change was apparently to avoid any trademark issues with the Amiga name.

    [–] [email protected] 4 points 5 months ago (1 children)

    Acorn/ARM apparently did much the same thing.

    [–] [email protected] 4 points 5 months ago

    i refuse to call it advanced risc Machine, it's always Acorn Risc Machine

    [–] [email protected] 25 points 5 months ago (2 children)

    my favorite fact about Wine is that they could've named it Pine, Dine, Fine, Line, etc

    [–] [email protected] 7 points 5 months ago (1 children)

    Pine was already taken by an email reader. One of the early ascii email readers was called elm, for ELectronic Mail. Pine was made after elm and it stands for Pine Is Not Elm.

    load more comments (1 replies)
    [–] [email protected] 24 points 5 months ago (1 children)

    It’s a cheeky play on “WINdows Emulator” as well as “WINE’s Is Not an Emulator”, but I think for both legal (trademark) and logistical (it really isn’t an emulator) reasons, you’ll never officially see that bit sanctioned

    [–] [email protected] 7 points 5 months ago (1 children)

    It’s a cheeky play on “WINdows Emulator”

    It's not an emulator though. That's literally what the name is explaining!

    load more comments (1 replies)
    [–] [email protected] 7 points 5 months ago (1 children)

    WINaE! It bugs me that it isn't "Wine Is Not Emulation"

    [–] [email protected] 10 points 5 months ago (1 children)
    load more comments (1 replies)
    [–] [email protected] 17 points 5 months ago* (last edited 5 months ago) (2 children)

    My favorite software acronym is PINCE, the reverse engineering tool that's similar to Cheat Engine in Winblols, that stands for PINCE Is Not Cheat Engine.

    [–] [email protected] 23 points 5 months ago (2 children)

    My favorite is the scanning device interface driver protocol.

    TWAIN

    Technology Without An Interesting Name

    [–] [email protected] 15 points 5 months ago (1 children)

    I really wanted this to be true but according to Wikipedia that’s an unofficial backronym. :( Sorry to be Debbie Downer.

    [–] [email protected] 11 points 5 months ago

    Get outta here with your facts! /s

    load more comments (1 replies)
    [–] [email protected] 7 points 5 months ago* (last edited 5 months ago) (2 children)

    Well looks like I finally found a cheat engine equivalent for Linux

    [–] [email protected] 3 points 5 months ago

    Game Conqueror also works, but is missing a lot of features too from what I can tell. Don't know how it holds up against PINCE.

    I've had success getting CE to run with Proton though, specifically by using SteamTinkerLaunch to run it as additional custom command with the game. There are other ways too, like protontricks. In my experience, it has been mostly stable, with the occasional freeze, but generally usable for pointer scanning and such.

    [–] [email protected] 3 points 5 months ago

    Sadly not, Cheat Engine has a whole lot more features. PINCE is still very good though

    [–] [email protected] 91 points 5 months ago (1 children)
    [–] [email protected] 35 points 5 months ago (3 children)

    GNU's not Unix image manipulation program toolkit.

    [–] [email protected] 8 points 5 months ago* (last edited 5 months ago)

    Lol Edit: TIL that's what GTK stands for

    [–] [email protected] 16 points 5 months ago (2 children)

    RecursionError: Maximum recursion depth exceeded image manipulation toolkit

    [–] [email protected] 2 points 5 months ago (1 children)

    I haven't really done much recursion in Python, but can't we do a tail-recursive version so that it (almost) never reaches recursion depth issues?

    [–] [email protected] 2 points 5 months ago

    Is there a separate RecursionError in modern versions of Python? Been a couple years but I remember it just being a RuntimeError

    load more comments (1 replies)
    [–] [email protected] 56 points 5 months ago (1 children)

    Windows should emulate Linux so it can run wine on its arm chips.

    [–] [email protected] 27 points 5 months ago (1 children)

    WSL 3 wishlist starts here

    [–] [email protected] 7 points 5 months ago (1 children)

    I refuse to use 2 because it breaks all my shit.

    OG WSL 1 for me, or just Linux lol

    [–] [email protected] 3 points 5 months ago (1 children)

    Qemu if you can get it. It is a little hard to learn but it can use Hyper-V acceleration

    [–] [email protected] 6 points 5 months ago (1 children)

    It's harder to set up windows without giving microsoft the right to let 72 virgins rape your ass than to use QEMU.

    load more comments (1 replies)
    load more comments
    view more: ‹ prev next ›