• 3 Posts
  • 17 Comments
Joined 1 year ago
cake
Cake day: May 19th, 2024

help-circle

  • a more boilerplate way to remove having to worry about designing the UI/UX so I could focus on [blank]

    Yes.

    In a way, it is super funny ironic / funny to me that we have basically no actual GUI standard. There is Qt, there is stuff with html/css/js, and the rest just lack tons of features.

    No idea how it works on windows tbh.

    Making a cli app? Sure, easy peasy, done in 5 mintues. Making a small GUI app? Strap in for 2 weeks of basics how this framework chose to solve certain issues.






  • I don’t understand why the R4L are even trying to get it into THE kernel at this point. Especially after the open hostility, but also after basically offering to be “downstream” of whatever C people do.

    The difference to forking and gradually transitioning things to Rust seem technically minimally negative and socially enormously positive to me.

    And when and if people want to use the linux kernel with Rust, made by the R4L people, they would then be able to do that? Idk.

    I have no stakes in either side, so I don’t really care.




  • I’m working on an RTS too, there isn’t too much to show yet.

    The “inspiration” is supreme commander and other RTS being low on the complexity and planning aspects.

    The approach I have seen in the industry is that people take AoE2 and starcraft as a baseline and then switch out or improve different elements. E.g. starcraft 2 massively improved unit movement and pathing. I think total biscuit tried to make a mod where resource gathering was “automated” and easier and more recently “battle aces” focuses more heavily on the skirmish aspect. Many opinions I have also heard boil down to “if you remove micro, you remove the game”. And that’s not wrong, I can certainly see the point and the skill differentiation between someone who can and someone who can’t micro their units.

    But what I want to see is all of things that people already do “in their mind”, like picking a build order, certain defined “points” in their own “gameplan” that they decide “X units A Y units B is when I should attack”, or “transition points” and steps, and to make all of that explicit.

    MTG “deckbuilding” works the same way, players anticipate certain problems and situations and then they build their decks with specific setups in mind and situations that they want to reach, and if they reach those states, victory gets very very close.

    Taking all of that into account, surely there are just “strategies” that work better than others and finding those is more interesting or at least equally interesting as micro to me, but basically no games give you any tools or help to actually do it. You basically have to take out pen and paper to write down what worked in your last game, what didn’t.

    What would a game look like that gave you ALL the planning tools and performance metrics?

    To me, that’s where the modern “big scale” RTS fail, or rather, why they don’t interest me.


    And also, once things are “perfectly” planned and prepared, there are always ways to introduce e.g. random failure into plan steps to keep players solving “micro” problems, they would just happen in a different place.



  • Why the heck would 2 projects share the same library?

    Coming from the olden days, with good package management, infrequent updates and the idea that you wanted to indeed save that x number of bytes on the disk and in memory, only installing one was the way to go.

    Python also wasn’t exactly a high brow academic effort to brain storm the next big thing, it was built to be a simple tool and that included just fetching some library from your system was good enough. It only ended up being popular because it is very easy to get your feet wet and do something quick.


  • The difficulty with python tooling is that you have to learn which tools you can and should completely ignore.

    Unless you are a 100x engineer managing 500 projects with conflicting versions, build systems, docker, websites, and AAAH…

    • you don’t really need venvs
    • you should not use more than on package manager (I recommend pip) and you should cling to it with all your might and never switch. Mixing e.g. conda, on linux system installers like apt, is the problem. Just using one is fine.
    • You don’t “need” need any other tools. They are bonuses that you should use and learn how to use, exactly when you need them and not before. (type hinting checker, linting, testing, etc…)

    Why is it like this?

    Isolation for reliability, because it costs the businesses real $$$ when stuff goes down.

    venvs exists to prevent the case that “project 1” and “project 2” use the same library “foobar”. Except, “project 1” is old, the maintainer is held up and can’t update as fast and “project 2” is a cutting edge start up that always uses the newest tech.

    When python imports a library it would use “the libary” that is installed. If project 2 uses foobar version 15.9 which changed functionality, and project 1 uses foobar uses version 1.0, you get a bug, always, in either project 1 or project 2. Venvs solve this by providing project specific sets of libraries and interpreters.

    In practice for many if not most users, this is meaningless, because if you’re making e.g. a plot with matplotlib, that won’t change. But people have “best practices” so they just do stuff even if they don’t need it.

    It is a tradeoff between being fine with breakage and fixing it when it occurs and not being fine with breakage. The two approaches won’t mix.

    very specific (often outdated) version of python,

    They are giving you the version that they know worked. Often you can just remove the specific version pinning and it will work fine, because again, it doesn’t actually change that much. But still, the project that’s online was the working state.



  • it_depends_man@lemmy.worldtoProgrammer Humor@lemmy.mlAI's take on XML
    link
    fedilink
    Deutsch
    arrow-up
    1
    ·
    edit-2
    9 months ago

    I’m not sure now that I think about it, but I find this more explicit and somehow more free than json. Which can’t be true, since you can just

    {"anything you want":{...}}
    

    But still, this:

    <my_custom_tag>
    <this> 
    <that>
    <roflmao>
    ...
    

    is all valid.

    You can more closely approximate the logical structure of whatever you’re doing without leaving the internal logic of the… syntax?

    <car>
    <tyre> air, <valve>closed</valve>  </tyre>
    <tyre> air, <valve>closed</valve>  </tyre>
    <tyre>      <valve>open</valve>  </tyre>
    <tyre> air, <valve>closed</valve>  </tyre>
    </car>
    

    Maybe I just like the idea of a closing tag being very specific about what it is that is being closed (?). I guess I’m really not sure, but it does feel nicer to my brain to have starting and closing tags and distinguishing between what is structure, what is data, what is inside where.

    My peeve with json is that… it doesn’t properly distinguish between strings that happen to be a number and “numbers” resulting in:

    myinput = {"1":"Hello",1:"Hello"}
    tempjson = json.dumps(myinput)
    output = json.loads(tempjson)
    print(output)
    >>>{'1': 'Hello'}
    

    in python.

    I actually don’t like the attributes in xml, I think it would be better if it was mandatory that they were also just more tagged elements inside the others, and that the “validity” of a piece of xml being a certain object would depend entirely on parsing correctly or not.

    I particularly hate the idea of attributes in svg, and even more particularly the way they defined paths.

    https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#curve_commands

    It works, but I consider that truly ugly. And also I don’t understand because it would have been trivial to do something like this:

    <path><element>data</element><element>data</element></path>
    


  • It is very cool, specifically as a human readable mark down / data format.

    The fact that you can make anything a tag and it’s going to be valid and you can nest stuff, is amazing.

    But with a niche use case.

    Clearly the tags waste space if you’re actually saving them all the time.

    Good format to compress though…



  • At the cost of sounding naive and stupid

    It may be a naive question, but it’s a very important naive question. Naive doesn’t mean bad.

    The answer is that that is not possible, because the compiler is supposed to translate the very specific language of C into mostly very specific machine instructions. The programmers who wrote the code, did so because they usually expect a very specific behavior. So, that would be broken.

    But also, the “unsafety” is in the behavior of the system and built into the language and the compiler.

    It’s a bit of a flawed comparison, but you can’t build a house on a foundation of wooden poles, because of the advantages that wood offers, and then complain that they are flammable. You can build it in steel, but you have to replace all of the poles. Just the poles on the left side won’t do.

    And you can’t automatically detect the unsafe parts and just patch those either. If we could, we could just fix them directly or we could automatically transpile them. Darpa is trying that at the moment.