WTF Bites



  • @acrow I don't fully believe that article. In large part because as far as I can tell most helicopter blades don't have any washout. I also don't believe the benefit is as big as the article claims. There seems to be some snake oil peddlership involved here.

    Also I am rather confident the risk of hitting the tail boom would be similar in all helicopters—all of them would be designed so that the rotor structural limits are exceed before the rotor contacts the tail boom anyway, and most of them are designed with similar structural limits.

    At the end of the day it is much more useful to train how to avoid getting into the dangerous situation, just like for fixed wing aircraft it is more useful to train how to avoid spin, because a spin in base-to-final turn is not recoverable in the available height even with good spin recovery training either.



  • @Bulb said in WTF Bites:

    At the end of the day it is much more useful to train how to avoid getting into the dangerous situation, just like for fixed wing aircraft it is more useful to train how to avoid spin, because a spin in base-to-final turn is not recoverable in the available height even with good spin recovery training either.

    With helicopters you don't really have any choice. when the engine dies for whatever reason, you either crash or make an autorotate landing. It's not something you as a pilot did that caused it, but you as a pilot can, if trained, make it out alive, maybe.



  • @Carnage That's autorotation. For loss of power, you have to be ready to react. You have to be ready to react to loss of power in a fixed-wing aircraft too though you generally have more time for it there, but you still need to establish proper gliding speed there.

    But settling with power (vortex ring state) is similar to a spin of a fixed-wing aircraft. In both cases you get in it by mishandling the controls and while in both cases you can recover, you need some altitude to do it and if you don't have it, you are in a fix. So in both cases it is most important to learn to recognize the approach to it and regain the control before it becomes a problem.


  • Considered Harmful

    The future is dumb 😖



  • @Applied-Mediocrity said in WTF Bites:

    The future is dumb 😖

    Did you hear about next gen graphics cards yet? Apparently something like the 4080 might be looking at 500+W just for the GPU. Good thing that energy prices are low as ever...



  • @cvi said in WTF Bites:

    @Applied-Mediocrity said in WTF Bites:

    The future is dumb 😖

    Did you hear about next gen graphics cards yet? Apparently something like the 4080 might be looking at 500+W just for the GPU. Good thing that energy prices are low as ever...

    The M1/M2 is blazing a new trail. GPUs are kinda at a diminishing returns curve compared to a bunch of years ago where every two years an upgrade meant a yuuuge difference. My old 1080 Ti is still trucking along acceptably at max fancy in most games (except for RT). I don't think that graphics that hungry will be sustainable in the long run. Soon enough you're gonna have to run your gaming rig on it's own phase.


  • Discourse touched me in a no-no place

    @Carnage said in WTF Bites:

    My old 1080 Ti is still trucking along acceptably at max fancy in most games (except for RT). I don't think that graphics that hungry will be sustainable in the long run.

    About 7 years ago, I got an R9 Fury (or maybe a Fury X; it was 7 years ago!) and that's still trucking along nicely in pretty much all games given that it isn't driving a 4k display and isn't being asked to do raytracing. At that time, I expected it to last around 2 years, yet it has done 3½ times that, which is pretty wonderful return. It might help that it has never been overclocked, as I know that really shortens the live of parts (if it didn't, manufacturers would sell it as going at the higher speed for a bigger price and pocket the profit).





  • @Bulb said in WTF Bites:

    In both cases you get in it by mishandling the controls and while in both cases you can recover, you need some altitude to do it and if you don't have it, you are in a fix. So in both cases it is most important to learn to recognize the approach to it and regain the control before it becomes a problem.

    Except you can get in VRS due to an unlucky gush of wind. And helicopters are often used in low altitude work because they can. So being in low altitude and getting into VRS is about as much in the pilot's hands as quitting his job. Then the only question becomes, when VRS happens, whether they can do anything about it, with the little altitude they do have left.



  • @Bulb said in WTF Bites:

    as far as I can tell most helicopter blades don't have any washout

    The washout seems to be formed by the blade flexing, according to this book. Maybe. I'd like to read the whole chapter but Google doesn't, so...

    1565a0aa-ca53-4035-9c90-f2fb7748e726-image.png


  • Notification Spam Recipient

    Status: wtf roflcopter


  • Considered Harmful

    @topspin said in WTF Bites:

    @LaoC said in WTF Bites:

    GNOME

    compelling

    :doubt:

    They shirley had one of the other senses in mind.


  • Considered Harmful



  • @Tsaukpaetra said in WTF Bites:

    @Gribnit said in WTF Bites:

    I know! We'll use a parallel data stream addressable by the filenameinode!

    What is this "filename" thou weakest of?

    Uhm, I was under the impression that the filesystems with inodes are also the filesystems that don't support alternate data streams...
    Or at least, operating systems that commonly use such filesystems don't, which to me is the main obstacle to programmers ever getting a standardized API to list and access them.


  • Notification Spam Recipient


  • Considered Harmful

    @Medinoc said in WTF Bites:

    @Tsaukpaetra said in WTF Bites:

    @Gribnit said in WTF Bites:

    I know! We'll use a parallel data stream addressable by the filenameinode!

    What is this "filename" thou weakest of?

    Uhm, I was under the impression that the filesystems with inodes are also the filesystems that don't support alternate data streams...
    Or at least, operating systems that commonly use such filesystems don't, which to me is the main obstacle to programmers ever getting a standardized API to list and access them.

    Modulo my limited understanding of what NTFS does there: xattrs are basically the same thing, although most people would consider using them for significant amounts of data an abuse.



  • @LaoC Strangely enough, xattrs are not actually free-form. They have defined namespaces and mostly there is a defined set and nobody would use them beyond that. But mainly

    @Gribnit said in WTF Bites:

    @Tsaukpaetra said in WTF Bites:

    @PleegWat said in WTF Bites:

    this configuration

    If only there was some way to denote the format of a file,..

    I know! We'll use a parallel data stream addressable by the filename!

    This is really, really wrong. The xattrs, nor the alternate streams or anything similar, won't follow the file around when you copy it, write it to a USB key (which has VFAT on it), pack it into a .zip, send it via e-mail etc.

    For any practical purposes the only thing that works is if the format can be correctly guessed from the content itself.



  • @LaoC said in WTF Bites:

    xattrs are basically the same thing, although most people would consider using them for significant amounts of data an abuse.

    xattrs even have size limits. Wikipedia says up to 64kB in theory, but less on most file systems. IIRC ADS on Windows don't really have any limits (other than what the normal file streams have).


  • Notification Spam Recipient

    In some of our projects we use Refit. If you don't know what it is - it's a library for calling REST apis. You create an interface of api client you want, add some refit attributes, and puff! the client gets created during compilation, type safe and all. It's like magic.

    Cool, except in one situation, where we are interested in details of a failed call. With refit, when a call is successful, you get deserialized ApiResponse<T>, which is convienient. On failure, you also get ApiResponse<T>, but T content is null. What if you want to dig out some additional info about a failed call? Let's see...

    private readonly HttpResponseMessage response;
    

    Oh. It's private. But shirley there's a way to get it, some accessor or method or... nope.
    Hmm, there is something promising though: EnsureSuccessStatusCodeAsync(). It populates Error property on ApiResponse and raw response is there, great!

    Damn, it throws an exception if status is not successful. Well fuck it, let's just trycatch this. Ah, sorry, now I see it clearly - it should throw a sensible exception, but instead it fails on some internal crap and throws ArgumentException with zero useful info.

    All of this went great. What do? I guess I'll have to inherit from ApiResponse<T> to add this already existing field, but public, and roll out our own deserializer.

    public sealed class ApiResponse<T>
    

    :angry: 🔫


  • BINNED

    @MrL said in WTF Bites:

    What do? I guess I'll have to inherit from ApiResponse<T> to add this already existing field, but public, and roll out our own deserializer.

    Wouldn't private (instead of protected) prevent you from doing this even if the class wasn't sealed?


  • Notification Spam Recipient

    @topspin said in WTF Bites:

    @MrL said in WTF Bites:

    What do? I guess I'll have to inherit from ApiResponse<T> to add this already existing field, but public, and roll out our own deserializer.

    Wouldn't private (instead of protected) prevent you from doing this even if the class wasn't sealed?

    Not with custom deserializer - with it I get raw data and populate all fields.


  • Discourse touched me in a no-no place

    @MrL said in WTF Bites:

    Oh. It's private. But shirley there's a way to get it, some accessor or method or... nope.

    Looks like it is time to use reflection to pick the stuff out of the guts. This issue looks related:


  • Notification Spam Recipient

    @dkf said in WTF Bites:

    @MrL said in WTF Bites:

    Oh. It's private. But shirley there's a way to get it, some accessor or method or... nope.

    Looks like it is time to use reflection to pick the stuff out of the guts. This issue looks related:

    Yeah, this issue comes up since 2016 at least. With usual "hahaha, you want to do what?" responses from people-who-know-better.

    All it would take is changing this accessor to public. But no, ENCAPSULATION BITCH!

    Solution from your link doesn't work, because Error is null. Of course it is.



  • @MrL ENCA…WAT?

    The purpose of encapsulation is reducing coupling. Bu the error is part of the interface of the server the client is coupled to anyway, so making it private encapsulates nothing. It just throws users sticks under their feet.



  • The newspaper FAZ presents in an advertorial:
    Snakeoil production & sales by software company Comforte:
    Comforte.JPG
    (paywalled)

    Software Company Comforte
    "We offer absolute security"
    Cybersecurity specialist Comforte has developed unbreakable encryption software. Credit card users benefit from this.



  • @BernieTheBernie said in WTF Bites:

    absolute security ... unbreakable encryption

    :rofl:


  • Considered Harmful

    @BernieTheBernie :technically-correct: It cannot be broken führer further if it's already broken by design.


  • Discourse touched me in a no-no place

    @MrL said in WTF Bites:

    Solution from your link doesn't work, because Error is null. Of course it is.

    Suspected as much. It's more that that's the issue to pile reports onto, including posting "here's the workaround with reflection because fuck you for not understanding how horrid some use cases really are". If that doesn't make someone sit up and take notice, nothing much will.

    Still not a 200 FILE_NOT_FOUND, which I've seen for real. 😖


  • Notification Spam Recipient

    @HardwareGeek said in WTF Bites:

    @BernieTheBernie said in WTF Bites:

    absolute security ... unbreakable encryption

    :rofl:

    They onepad everything? Stunning and brave.


  • BINNED

    @BernieTheBernie said in WTF Bites:

    The newspaper FAZ presents in an advertorial:
    Snakeoil production & sales by software company Comforte:
    Comforte.JPG
    (paywalled)

    Software Company Comforte
    "We offer absolute security"
    Cybersecurity specialist Comforte has developed unbreakable encryption software. Credit card users benefit from this.

    Sounds about as cranky as the “Kryptochef“ with his retarded “Vollbitverschlüssung“.

    Unfortunately can’t find an English translation, but he’s a bit of a long-running meme on German forums, not quite but almost on the crank level of the time cube of encryption.



  • Context: This is a picture from a hotel room for three people.

    e686d68b-c9a0-4c35-8eff-197211cb2795-image.png


  • Notification Spam Recipient

    @Rhywden said in WTF Bites:

    Context: This is a picture from a hotel room for three people.

    e686d68b-c9a0-4c35-8eff-197211cb2795-image.png

    Perfect place to practice voyeurism?



  • @Rhywden said in WTF Bites:

    hotel room for three people.

    Perhaps the hotel assumes that three people sharing a room comprise a ménage à trois.


  • Notification Spam Recipient

    @HardwareGeek said in WTF Bites:

    @Rhywden said in WTF Bites:

    hotel room for three people.

    Perhaps the hotel assumes that three people sharing a room comprise a ménage à trois.

    Yeah the two-person rooms have curtains!



  • @dkf said in WTF Bites:

    Still not a 200 FILE_NOT_FOUND

    Well, if I understand @MrL's problem correctly, that would be one way to "solve" it... 🤡



  • @ixvedeusi said in WTF Bites:

    @dkf said in WTF Bites:

    Still not a 200 FILE_NOT_FOUND

    Well, if I understand @MrL's problem correctly, that would be one way to "solve" it... 🤡

    I had to write code like that. The code was very passively aggressively commented and explained that the system on the other end was developed by nincompoops that couldn't.


  • 🚽 Regular

    @Rhywden At least people coming out of the shower are not completely in view of the exit door. Just barely.


  • Considered Harmful

    @cvi said in WTF Bites:

    @LaoC said in WTF Bites:

    xattrs are basically the same thing, although most people would consider using them for significant amounts of data an abuse.

    xattrs even have size limits. Wikipedia says up to 64kB in theory, but less on most file systems. IIRC ADS on Windows don't really have any limits (other than what the normal file streams have).

    I thought you could have like one block per basically any number of attributes but it turns out at least ext4 limits the total space to 4k per file.



  • @Rhywden Was that at nh hotels? They also have rooms with a glass walled shower inmidst the room...


  • Notification Spam Recipient

    @ixvedeusi said in WTF Bites:

    @dkf said in WTF Bites:

    Still not a 200 FILE_NOT_FOUND

    Well, if I understand @MrL's problem correctly, that would be one way to "solve" it... 🤡

    No, FILE_NOT_FOUND would fail deserialization to T, so the same result as 400 BUT_WHAT_REALLY HAPPENED_X.



  • @MrL The server would have to always return a 200 and have a success field in the response and an error or message optional field set if success == false. That way T would contain those fields, so it would still deserialize fine.


  • Notification Spam Recipient

    @Bulb said in WTF Bites:

    @MrL The server would have to always return a 200 and have a success field in the response and an error or message optional field set if success == false. That way T would contain those fields, so it would still deserialize fine.

    Yeah, but then you pollute all your Ts with those fields. Not to mention you probably don't have control over the responding server to begin with :|



  • @MrL Sure. I think I've seen that approach somewhere, but it sure is brain-damaged.



  • @MrL said in WTF Bites:

    Yeah, but then you pollute all your Ts with those fields.

    If you follow my original suggestion (and yes that's implausibly assuming you can modify the server) you're already in :this_is_fine: land and at that point you might as well go all the way. Hence the little clowny face in that reply.

    More seriously though, I suspect that this kind of bullshit is how we end up with these 200 FILE_NOT_FOUND responses: Some library like this refit thing does the "Wat is error handling LOL" derp and rather than applying the clue-bat to the devs or throwing out the broken piece of shit, the library users pile another layer of WTF on top to make it work. Rinse and repeat a few times with other issues and you end up with the current state of the internet.


  • Notification Spam Recipient

    @ixvedeusi said in WTF Bites:

    pile another layer of WTF on top to make it work. Rinse and repeat a few times with other issues and you end up with the current state of the internet.

    Yes, it's a layer cake of stupidity. All of IT.



  • I recently had to smack down a situation like that.

    In my case I have a POST to send an item to an API and sometimes for :raisins: it’d get through, do its thing, but CloudFlare in the middle would hit me with a 52x code so I had no way of knowing that the object was successfully received.

    They wanted to return 200 for success and also a 200 for “we already had that, here’s the id for it” but with different return structures.

    I’m like… either return the whole structure as is (so it looks the same and the result is meaningfully somewhere in the region of idempotent, all orders from my side contain unique keys so two POSTs containing the same order id cannot be placed twice from my side), or give me a different error code back so I know what’s happened and can deal with it meaningfully.


  • Notification Spam Recipient

    @Arantor said in WTF Bites:

    I recently had to smack down a situation like that.

    In my case I have a POST to send an item to an API and sometimes for :raisins: it’d get through, do its thing, but CloudFlare in the middle would hit me with a 52x code so I had no way of knowing that the object was successfully received.

    They wanted to return 200 for success and also a 200 for “we already had that, here’s the id for it” but with different return structures.

    I’m like… either return the whole structure as is (so it looks the same and the result is meaningfully somewhere in the region of idempotent, all orders from my side contain unique keys so two POSTs containing the same order id cannot be placed twice from my side), or give me a different error code back so I know what’s happened and can deal with it meaningfully.

    We 'work with' a company that does this all the time - multiple return structures for the same request.
    Why? Because their system is a rotting pile of javascript excrements, with gigantic if trees trying to piece together what data it actually received from somewhere (or itself).


  • Considered Harmful

    @MrL said in WTF Bites:

    gigantic if trees trying to piece together

    3er7nv.png

    Except without javascript whatsoever...


  • Discourse touched me in a no-no place

    @Bulb said in WTF Bites:

    @MrL The server would have to always return a 200 and have a success field in the response and an error or message optional field set if success == false. That way T would contain those fields, so it would still deserialize fine.

    Actually, the server will return 200 OK with an HTML document describing the error (instead of the usual JSON or XML or whatever format). Because of course it does.



  • @MrL said in WTF Bites:

    gigantic if trees trying to piece together what data it actually received from somewhere

    Seems like something I'd probably use polymorphism for, and just let the secret magic gnomes work out by giving them hints and then just be able to ask the object what type it is.


Log in to reply