• 1 Post
  • 174 Comments
Joined 2 years ago
cake
Cake day: June 20th, 2023

help-circle

  • Counterpoint: Yes, parse don’t validate, but CLIs should not be dealing with dependency management.

    I love Python’s argparse because:

    • It’s “Parse, don’t validate” (even supports FileType as a target)
    • It enforces or strongly encourages good CLI design
      • Required arguments should in most situations be positional arguments, not flags. It’s curl <URL> not curl --url <URL>.
      • Flags should not depend on each other. That usually indicates spaghetti CLI design. Don’t do server --serve --port 8080 and server --reload with rules for mix-and-matching those, do server serve --port 8080 and server reload with two separate subparsers.
      • Mutually exclusive flags sometimes make sense but usually don’t. Don’t do --xml --json, do -f [xml|json].
      • This or( pattern of yours IMO should always be replaced by a subparser (which can use inheritance!). As a user the options’ data model should be immediately intuitive to me as I look at the --help and having mutually exclusive flags forces the user to do the extra work of dependency management. Don’t do server --env prod --auth abc --ssl, do server serve prod --auth abc --ssl where prod is its own subparser inheriting from AbstractServeParser or whatever.

    Thinking of CLI flags as a direct mapping to runtime variables is the fundamental mistake here I think. A CLI should be a mapping to the set(s) of behavior(s) of your application. A good CLI may have mandatory positional arguments but has 0 mandatory flags, 0 mutually exclusive flags, and if it implements multiple separate behaviors should be a tree of subparsers. Any mandatory or mutually exclusive flags should be an immediate warning that you’re not being very UNIX-y in your CLI design.


  • I’ve been using the AI to help me with some beginner level rust compilation checks recently.

    I never once got an accurate solution, but half the time it gave me a decent enough keyword to google or broken pattern to fix myself. The other half of the time it kept giving me back my own code proudly telling me it fixed it.

    Don’t worry though, AGI is right around the corner. Just one more trillion dollars bro. One trillion and we’ll provide untold value to the shareholders bro. Trust me bro.


  • Did you even read the article? Even under the VERY GENEROUS interpretation of contract law that contracts can’t be predatory (which is not a particularly popular philosophical stance outside of cyberpunk fiction), AWS MENA fell short of even their typical termination procedures because they accidentally nuked it while doing a dry-run.

    I don’t know where you work but if we did that to a paying customer, even IF there was a technicality through which we could deny responsibility, we would be trying to make it right.


  • The author put it well:

    What if you have petabytes of data? How do you backup a backup? What happens when that backup contains HIPAA-protected information or client data? The whole promise of cloud computing collapses into complexity.

    Multi-region cloud computing is already difficult and expensive enough, multi-cloud is not only technically complex but financially and legally fraught with uncertainties. At that point you’re giving up so much of the promise of cloud computing that you might as well rent rack space somewhere, install bare-metal infra, and pay someone to drive there to manually backup to tape every 3 months.

    This level of technical purity is economically unfeasible for virtually everyone, that’s the whole point of paying a vendor to deal with it for us. And you know who doesn’t need to put up with the insane overhead of multi-cloud setups? That’s right, Amazon, Microsoft, and Google, who will be getting paid for hosting everyone else’s multi-cloud setups while they get to run their huge infra on their own cloud without fear. The last thing GAFAM competitors - especially OSS projects - need is even fewer economies of scale.

    Stop with the victim-blaming, this blunder is squarely on AWS.


  • Is it prejudice if I have extensive first-hand experience with it?

    The worst environment to me (react-native)

    Which is exactly what the Windows start menu runs on, doesn’t it?

    I don’t even care that JS is slow, in most circumstances. I like Python, it’s not any faster necessarily (though it is much easier to debug CPython than V8 when you do eventually run into low-level issues, and python is still a lot better at multithreading than javascript even if the GIL is an issue, but that’s besides the point). My real problem is that the ES “standard” “library” is a complete clusterfuck, absolutely diseased, like engineers heard of the concept of technical debt and decided to build a shrine to it.

    Sure, you can technically use JS decently. That’s hardly an achievement. Any sufficiently fast Turing-complete apparatus can be “used decently” if you start by re-implementing a python interpreter. But the entire ecosystem is fucked. The appeal of javascript, the entire reason it has taken over, is that the lowest bidder is not going to use decently but will do the wildest, most insane shit imaginable to get a product out the door.

    I commented the other day about PHP. Same problem. The language is too easy to use badly. Sure, you can write magnificent code in either, if you have enough experience and discipline to avoid every footgun. But when every other tool in your shop is an unlabeled footgun, maybe it’s time to admit that there are some deep-seated issues.

    Speaking of treating JS like a turing machine; that’s what TypeScript does. And, I have to admit, it solves maybe 40 % of the problems I have with JavaScript. I still don’t like it, because the stdlib and ecosystem still sucks donkey balls and V8 is a subpar JIT interpreter in every way besides raw single-threaded performance, but at least TS itself is decent enough and lends itself to static analysis well enough for senior engineers to have a hope of safely defusing or refactoring away most footguns set off by the junior/offshore devs. Most.


  • “I want predictable behavior for all possible inputs” is hardly a requirement that requires a fortune teller to see coming.

    JavaScript has a particularly insane stdlib because this language wasn’t designed, it is a botched chimera with deformities so severe it should have died 15 times over but people just won’t let it.

    Then to rub salt in the wound this horrific mess became the most popular language in the world by virtue of being the only language for the most popular application ecosystem in the world (the web). So the cancer is spreading and now you can find JavaScript in servers and fucking desktop environments and now your windows start menu takes five seconds to load because fucking react.js is loading the 75 polyfills necessary to make up for the fact that JS’s “standard” library looks like it was designed by 3 cocained-up gibbons.




  • The central bank facilitating electronic cash flow makes so much more sense than letting random foreign corporations siphon billions in profit they clearly don’t deserve in the slightest from your economy.

    Good on Brazil for breaking free. There’s finally been some push here in the EU for EPI/Wero, but progress has been frigid and online payment processing remains extremely fragmented to the point that if I buy something online outside the Benelux with a small vendor, chances are very high I will have to fall back to an American payment processor, which is insane.


  • And literally not a single one of them is useful for the purpose of quick, efficient, and secure transactions.

    Blockchains are slow and inefficient by design, since they need to build consensus. On any sufficiently popular blockchain, transactions are either fast or secure, never both.

    The “fix” that the crypto industry has come up with is to re-invent banks, except with even more crime and virtually no regulations. Now you’re just entrusting FTX with your coins to enjoy “immediate” transfers, how could that possibly go wrong?


  • If I am not mistaken the 47.0.0.0/8 ip block is for Alibaba cloud

    That’s an ARIN block according to Wikipedia so North America, under Northen Telecom until 2010. It does look like Alibaba operate many networks under that /8, but I very much doubt it’s the whole /8 which would be worth a lot; a /16 is apparently worth around $3-4M, so a /8 can be extrapolated to be worth upwards of a billion dollars! I doubt they put all their eggs into that particular basket. So you’re probably matching a lot of innocent North American IPs with this.


  • It can do both, lossiness is toggleable.

    If you’ve seen a picture on Lemmy, you’ve almost certainly seen a WebP. A fair bit of software – most egregiously from Microsoft – refuses to decode them still, but every major browser has supported WebP for years and since superior data efficiency compared to JPG/PNG means is already very widely used on the web. Bandwidth is not that cheap.


  • Broadly correct. Franquin was a grassroots leftist by his peak in the '70s and even now a lot of his comics would generate a lot of “Gaston goes woke???” youtube thumbnails. His comics included a lot of overt anticapitalist & ecologist messaging in particular.

    Idées Noires (apparently reedited as “Die Laughing” in English) has his most politically charged stuff and is what happened when Franquin didn’t try to draw for mass appeal:

    A lady and a man meeting and kissing on a public bench, then turns into the man VERY gruesomely and graphically eating her and saying "Hmmm, I really have to learn to control my appetite..."

    Businessmen proudly and literally walking over a line of downtrodden people, suitcase in hand

    Depiction of awful factoring farming with a cheerful businessman

    I did however find some racist colonial stuff from his very early works (1950). I won’t like, it’s quite bad. However the 1950 stuff is ignorant & insensitive racist colonial fuckery from a then 26 year old author who later denounced it and tried to make up for it, while the 2023 stuff is very intentional dogwhistling to modern day racists from boomers who should really know better. It’s unfathomable that Dupuis would have greenlighted such backwards stuff in the modern age.



  • Not a very hot take, only corpo bootlickers pretend that Nintendo isn’t squandering the franchise.

    It’s supremely frustrating that franchises like these get enshittified to hell and there’s fuck-all anyone can do about it if they are not willing to work completely for free (i.e. fanfiction writers). Same with the Star Wars content mill which also went to shit while we’re forced to sit and watch or give up on the franchise entirely. Or LoTR which in the past 20 years only gave us The Hobbit (🤮) and the Amazon show (🤮🤮).
    Human stories were meant to be evolved and expanded on; that’s how all of our ancestors built a rich tapestry of myths and folklore over generations, constantly retelling and updating stories. But we aren’t allowed to.

    I’m Belgian. My grandparents, my parents, my cousins and my cousin’s children all grew up reading Belgian comics such as Tintin, Spirou&Fantasio, Lucky Luke, the Smurfs, etc, which were written in the mid-20th century. Yet if any of them publishes anything set in those universes they’ll get sued into the ground, so instead these important cultural works are left to rot and wither and be slowly forgotten by each subsequent generation while the Estate shits out a soulless (if not outright racist and sexist which shits on everything that Franquin ever stood for) reboot that no-one cares about every 15 years or so. Such a sad end for such important cultural landmarks that used to be the pride of our country.

    Copyright should last 25 years, just like patents. That’s more than enough time to recoup your initial investment and doesn’t prevent you from making money after then, you’ll just have to compete for it on the marketplace of ideas. Isn’t that what capitalists should want?


  • Screenshot from Cobblemon

    Cobblemon is a pokémon mod for minecraft, and definitely has a charm to it and fits weirdly well into the minecraft-pixel-art-with-shaders esthetic IMO. Plus the “gotta catch em all” basic gameplay loop meshes well with Minecraft’s incentive to explore the world.

    Of course it’s a free mod so it’s a bit rough around the edges and there doesn’t seem to be much to do beyond collect pokémon and build minecraft houses, but in my online circles it certainly has captured a lot more attention than any pokémon game released in the last forever. I would like to think Nintendo is taking notes, but we all know they Don’t Give A Fuck. They’ll pump out any asset flip and people will buy it because they’re nostalgic and Nintendo has a legally enforced monopoly on the franchise.



    1. Don’t infantilise him. He’s not attention-starved, he’s a Nazi.
    2. Did everyone forget Trump already did that during his first term??? I am going absolutely insane. We know he will threaten to nuke anyone and everyone. And right now the odds aren’t looking good that he won’t actually do it. That’s my call. Nuclear war. People called me crazy in 2020 when I called Trump a fascist, and my worst predictions will be proven right again because everyone seems to be dead-set on downplaying the actions of these Nazi lunatics and acting surprised when they pull through with a Nazi promise which only emboldens them.

  • It can either work very well or terribly I think.

    It would have been terrible in TW3. There are too many damn quests to keep track of; when you get to Novigrad you spend the first couple hours being bombarded by quest hooks, some of which are not supposed to be resolved until Geralt gains 10 more levels (for instance Hattori’s quest line). Having to turn down a quest hook or fail a quest because of time constraints would be punishing through no fault of the player and therefore bad game design. Book Geralt would ignore all the side-quests and focus on finding Ciri, but that’d make for a very different game. Also 75 % of the quest hooks where you’re supposed to meet someone “at the docks tonight” are just a narrative shortcut. In real-life you’d say “sorry I already have a nightwraith contract, can you do tomorrow night instead?”.

    If the reasons why you have to turn down a quest are well integrated to the narration and the player can only fail a quest because of actual time mismanagement, then it makes sense. IMO this seems most doable in a game with a reduced scope, up to 20 hours of content, where every quest is distinct and meaningful and can be kept in mind. Which I’m very down for because I don’t have much time for 100+ hour main story games anymore.