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

help-circle



  • Oh, I definitely meant far future. While the differences are far too big today, I can see gradually increasing cooperation between e.g. the EU and African Union at some point culminating in the construction of a governmental body that has some regulatory power over them both.

    Once such a body exists, I can imagine that it over time accumulates power, bringing the two unions even closer together. The EU started out as a relatively small organ, and has grown gradually to what it is today over many decades. My point was that if some “global government” ever forms, I think that kind of gradual process is how it will happen. Starting out with trade agreements, and then gradually regulating more aspects of government.


  • These don’t need to be mutually exclusive though. A lot of the progress in Europe the past 80 years is a result of the improved cooperation brought by the EU.

    The EU isn’t like the UN, where everyone is equally represented (sans veto powers), but is a democratically elected super-national body with opposing super-national political factions. I can see a concept like that working on a global scale some time in the (relatively far) future.


  • I think something like this is the most reasonable, and we’re already closer to it than at any previous point in history. We have the EU, the African Union (AU), and I think there’s a South American union as well (?) there’s also the US, which is a bit between a union and a single state (US states have more autonomy than regional municipalities most other places, but far less than any full-fledged county).

    I think that if a “global government” ever develops, it will be due to these unions forming an overarching union. The major hurdle is that we’re a very far way off anybody wanting to concede any governing power to an organisation above the “continental union” level. Even holding the EU together is non-trivial, because a lot of people feel that too much power is concentrated far away in Brussels.

    Regarding judicial systems and military forces, the UN has showed that it’s possible to have a kind of global system for this, but it’s still a far stretch from anything that could be called a “global judicial system with enforcement powers”.




  • The fundamental difference to me, which makes me not see “a website with extensive docs and a download button” as marketing, is whether you need to seek it out or not.

    If I need to seek it out myself, it’s not marketing, it’s simply “providing solid information” and “making your product accessible”, which is a whole different ballgame from “shoving your shit into peoples face in the hope that they’ll give you money”.


  • I think there’s a substantial difference between “supplying information about a product without shoving it in people’s face”, and what most people associate with “marketing”.

    If a company putting up neutral, verifiable information about their product on their own webpage where I can find it by searching for something I’m looking for after reflexively scrolling past the ads counts as marketing, then yes, I “fall for marketing” all the time. However, what I typically associate with “marketing” involves me somehow being fed information about a product without seeking it out. Usually when that happens, I’ll actively look somewhere else.



  • Similarly, what would you gain by saying uint32_t const* x = my_var.get<uint32_t>();

    To be frank: You gain the information that MyConcreteType::get<uint32_t> returns a uint32_t, which I otherwise couldn’t infer from the docs. Of course, I could assume it, based on the template parameter, but I don’t want to go around assuming a bunch of stuff in order to read docs.

    Take an example like auto x = my_var.to_reduced_form(), it’s very clear that x is the “reduced form” of my_var, which could be meaningful in itself, but what type is it? I need to know that if I want to do anything with x. Can I do x += 1? If I do, will that modify my_var? Let’s say I want to make a vector of whatever to_reduced_form returns… and so on.

    All these questions are very easily answered by MyConcreteType x = my_var.to_reduced_form(). Now I immediately know that everything I can do with my_var, I can also do with x. This makes me happy, because I need to do less digging, and the code becomes clearer to read.


  • Thanks, that was a good read :)

    However, my impression is that he’s largely using the existence of templates and polymorphism as arguments that “we don’t really care about type”. I disagree: A template is essentially a generic type description that says something about what types are acceptable. When working with something polymorphic, I’ll prefer ParentClass&, to indicate what kind of interface I’m working with.

    Sure, it can be very useful to hide exact type information in order to generalise the code, but I think that’s a weak argument for hiding all type information by default, which is what auto does.


  • I really like C++ (I know, shoot me), and I think auto should be avoided at (almost) all costs.

    One of the things I love about a language like C++ is that I can take one glance at the code and immediately know what types I’m working with. auto takes that away while adding almost no benefit outside of a little convenience while writing.

    If I’m working with some very big template type that I don’t want to write out, 99/100 times I’ll just have a using somewhere to make it more concise. Hell, I’ll have using vectord = std::vector<double> if I’m using a lot of them, because I think it makes the code more readable. Just don’t throw auto at me.

    Of course, the worst thing ever (which I’ve seen far too often) is the use of auto in examples in documentation. Fucking hell! I’m reading the docs because I don’t know the library well! When you first bother to write examples, at least let me know the return type without needing to dig through your source code!


  • Isn’t one of the reasons it’s argued that it could be a cosmic ray that in millions of automated run-throughs, they haven’t been able to reproduce it? That is: Something extremely unlikely, and quite possibly non-deterministic (i.e not a software bug) clearly happened.

    Also, I believe they pinpointed that there was exactly one bit-flip. I’m not disagreeing that a bit flip caused by a cosmic ray is astronomically unlikely, but it’s not unprecedented either. It does happen, though rarely, and I have yet to see a more convincing explanation for what we saw in that speed run.




  • Honestly, after re-reading my own comment, I’m considering just putting some stupid-simple wrapper around mv that moves files to a dedicated trash bin. I’ll just delete the trash bin every now and then…

    -Proceeds to collect 300 GB of build files and scrapped virtual environments over the coming month-


  • thebestaquaman@lemmy.worldtolinuxmemes@lemmy.worldlinux rm
    link
    fedilink
    arrow-up
    10
    ·
    edit-2
    1 month ago

    I usually don’t think about it at all, but every now and then I’m struck by how terrifyingly destructive rm -r can be.

    I’ll use it to delete some build files or whatever, then I’ll suddenly have a streak of paranoia and need to triple check that I’m actually deleting the right thing. It would be nice to have a “safe” option that made recovery trivial, then I could just toggle “safe” to be on by default.