I make things: electronics and software and music and stories and all sorts of other things.

  • 0 Posts
  • 18 Comments
Joined 3 years ago
cake
Cake day: June 14th, 2023

help-circle
  • Pros:

    • Better UX for system. On Windows and Mac you’re stuck with the old-style window movement desktops which suck and are chaos with lots of effort to maintain when trying to do anything productive. Even with third-party tools it’s nothing like being able to have something like Niri. It’s just better on the Linux world.
    • It actually meets your needs instead of making your change your needs. The customization is insane, but usually you don’t even have to go very far to be happy.
    • No bloat, no forced features like AI (tho you can get your own AI stuff if you want), less privacy concerns, better tools generally

    Microsoft Windows is actually a complete piece of crap

    Unfortunately, cons of switching:

    • Have to use non-standard apps for certain things like office files or DAWs for audio production
      • Tho, these are less bad these days. In fact, some are better like I’ll take Blender over Maya any day, and I use OnlyOffice even on Windows, bc why pay for the “Copilot App” (formerly MS Office) when OnlyOffice is just as good and is fully compatible?
    • Some games don’t work (esp multiplayer), and sometimes for no good reason other than the devs don’t like Linux users, e.g. Bungie.
      • Also far better than it used to be. Very few things I miss out on
    • MacOS clearly has the better app distribution system. A single folder with all necessary deps save a couple core libraries. Simple, effective, can still be put in a store. Instead we have an obsession with sandboxing or overcomplicated packages. AppImages were so close to being right. But nope. We can’t have nice things sometimes

    I’ve been using Linux-only since around 2019 (having used it alongside Windows for gaming before then) when Proton finally started getting good. I’m also an engineer, artist, writer, gamer, musician, maker, and more, so I feel like I have touched a lot of the different ways in which computers are used. I’ve used several distros for extended periods, and my fav is Arch (tho Nix is a close second; it’s just not quite ready for primetime)

    Linux is absolutely a viable alternative, but you have to know what you want from your PC. How do you want it to function? Pick that choice. It’s not ice-cream flavors where all are equal and you have to decide; form follows function here. Decide what you need and then build your own system from that - bc Linux is yours. Refuse to be spoonfed slop no matter if the slop is from Microsoft or from a Linux distro. Slop is slop. Cook your own meal. It tastes better. If you don’t like mushrooms, don’t get mushrooms.







  • I feel similar about the games, but opposite to the solution.

    I think the problem is those games (Witcher 3, Skyrim, etc) build complex RPG stats systems and storylines and forget to actually make good combat.

    You’d rather they fix this by going all in on the RPG and leaving the combat behind, but for me, I’d rather they’d forsake RPG elements and build an actual competent and fun combat system.

    This is why I’d rather play any Zelda over any western action adventure RPG bc Nintendo actually makes a good game first, not a story




  • You still need X11 or Wayland somehow. I would suggest something that can run in “kiosk” mode. That’s essentially what you want - boot a single app and run that.

    If you don’t care about wayland, just install xorg-xinit (since you said Arch) and put this in ~/.xinitrc: exec steam -bigpicture

    Run startx to launch it on its own. There may be other dependencies you need for steam or for games, but you don’t need a whole DE.

    If you want, you can even enable auto-login and then set up auto-start by adding this to your ~/.bashrc (or whatever shell you use):

    if [[ -z $DISPLAY ]]; then
      startx
    fi
    

  • Here is the grammar:

    <json> ::=              <value> | <fn-def> <json>
    <value> ::=             <object> | <array> | <string> | <number> | <bool>
                            | <fn-def> | <fn-app>
                            | "null"
    <object> ::=            "{" [ <member> { "," <member> } ] "}"
    <member> ::=            <string> ":" <value>
    <string> ::=            "\"" { <char> } "\""
    <char> ::=              (ASCII other than "\"", "\\", 0-31, 127-159)
                            | (Unicode other than ASCII)
                            | ( "\\" (
                                "\"" | "\\" | "/" | "b" | "f" | "n" | "r" | "t"
                                | "u" <hex> <hex> <hex> <hex>
                            )
    <hex> ::=               /A-Fa-f0-9/
    <array> ::=             "[" [ <value> { "," <value> } ] "]"
    <number> ::=            <integer> [ <fraction> ] [ <exponent> ]
    <integer> ::=           "0" | /[1-9]+/ | "-" <integer>
    <fractional> ::=        "." /[0-9]+/
    <exponent> ::=          ("E" | "e") [ "-" | "+" ] /[0-9]+/
    <bool> ::=              "true" | "false"
    <fn-def> ::=            "(" <ident> { <ident> }
                                ("->" <value> | ":" <string> <string>) ")"
    <ident> ::=             <startc> { <identc> }
    <startc> ::=            /A-Za-z_/ or non-ASCII Unicode
    <identc> ::=            <startc> | /[0-9-]/
    <fn-app> ::=            "(" <ident> { <value> } ")"
    <var> ::=               "$" <ident>
    

  • It’s basically just JSON that can generate itself !

    You have inspired me.

    I will make JSON with meta-programming

    I will call it DyJSON, i.e. “Dynamic JSON” but pronounced “Die, Jason!”

    It is JSON with meta-programming and the ability to call C functions from libraries

    Example:

    # This is a line comment
    
    # Put your function definitions up here
    (concat str_a str_b: "concat" "my-lib.so") # Import a function through a C ABI
    (make-person first_name last_name email -> { # Define our own generative func
        "name": (concat (concat $first_name " ") $last_name),
        "email": $email
    })
    
    # And then the JSON part which uses them
    [
        (make-person "Jenny" "Craig" "[email protected]"),
        (make-person "Parson" "Brown" null)
    ]
    

    As you can see, it is also a LISP to some degree

    Is there a need for this? A purpose? No. But some things simply should exist

    Thank you for helping bring this language into existence