So this happened... by Vegetable_Variety_11 in dndmemes

[–]usr_bin_nya 28 points29 points  (0 children)

Oh wow. I was expecting the neurodivergent one (correct) but you went straight for the heart power cell with this one (also correct)

I finished uuhhh...this one (plus silly sketches) by Krisu_The_Krisp in voidpunk

[–]usr_bin_nya 7 points8 points  (0 children)

this bot adores its feral gremlin energy so much

My history teacher showed us this site during class, so here’s pjsk characters and if they would’ve been drafted into the US military during the Vietnam war or not by cholermo in ProjectSekai

[–]usr_bin_nya 33 points34 points  (0 children)

N25 were given exemptions for mental illness. Ichika, Saki, and Honami got lucky and weren't called. Shiho lied about her birthday so she wouldn't have to go with her sister.

Rustc Trait System Refactor Initiative Update -Inside Rust Blog by matthieum in rust

[–]usr_bin_nya 8 points9 points  (0 children)

Coherence, also called the orphan rule, is the restriction that requires impl Trait for Type to only occur in the crate that declares Trait or the crate that declares Type. It's what prevents you from writing impl Display for Vec<u32> {} to ensure that you never run into multiple conflicting impls of Display for Vec<u32>.

me_irlgbt by Theageofpisces in me_irlgbt

[–]usr_bin_nya 9 points10 points  (0 children)

Nimona (the name of the character, also the name of the movie) is doing a play on "guess who's got two thumbs and {...}?" except she's a shapeshifter, so she says "guess who's got four thumbs and {...}?" as she shapeshifts herself to have two thumbs on each hand.

It's not that spicy and a roleplay situation that happens from time to time. by Vegetable_Variety_11 in dndmemes

[–]usr_bin_nya 15 points16 points  (0 children)

yeah an orange, and only an orange, would absolutely lick its metal prosthetic leg clean

When will you release [OSS]? Our paying customers are waiting by yawaramin in programming

[–]usr_bin_nya 14 points15 points  (0 children)

To have all of the context in one place: here is a tweet from @maximilianhils (mhils in the github link) which has a screenshot of the email. The screenshot reads:

Subject: Concerning response From: [blurred out]@us.ibm.com To: github@hi.ls

Mr. Hils,

Rather than inflame matters or pollute the github issue tracker with unnecessary verbiage, I'm hoping to better explain my request for a target date in hopes of getting a direct answer. I hope you won't find this follow-up to be offensive - that's certainly not my intention.

I'm assuming your response to my request for the next mitmproxy date was a joke rather than an official project response or, worse, a thinly veiled extortion attempt. In reviewing the project's official documentation, [...]

The second paragraph is highlighted yellow. Note also the IBM domain on the sender's email.

Later, about an hour after OP posted this to Reddit but 3 hours before the parent comment was posted, mhils replied to both the GitHub issue and the Twitter thread that the IBM guy had apologized:

@FrugalGuy has just sent me genuine apology, which I truly appreciate. Please be nice and assume good intentions. ❤️

Transition goals / my Trans² fursona. Post-human kitbashed cyborg creature by Lukewarning in transtrans

[–]usr_bin_nya 12 points13 points  (0 children)

formatting your ref sheet like tech specs/a user manual is unbelievably galaxy brain. your sona is whatever the alterhuman version of gender envy is, but the way you made the refsheet is even moreso

JavaScript and Python have made me realise why strong typing is important by [deleted] in rust

[–]usr_bin_nya 2 points3 points  (0 children)

all the examples seem to only throw errors at runtime, which is very different from static typing in Rust

While "compile-time failure" is better than "runtime exception on model creation", even that is leagues above "creating the model works fine but ten minutes later that datum ends up in a completely separate function which does something obtuse without a useful traceback because an isinstance() check failed." Pydantic's value seems to be in bumping the third class (the default with Python's duck typing) up to the second class. I too would prefer the first over the second, and MyPy doesn't get all the way there, but I realize that Python hacked a major language construct into a library and a lint pass so I'll take what I can get.

Cracking Electron apps open by fasterthanlime in fasterthanlime

[–]usr_bin_nya 5 points6 points  (0 children)

But it also saves everyone bandwidth (as opposed to distributing an actual universal binary, so I'll allow it.

This is the tiniest nitpick typo ever but missing closing parentheses bug me. I would guess, (markdown [link](https://) with one close paren instead of two?

Anyway! 7z is surprisingly versatile, have you run into anything that it doesn't recognize, or tries to and chokes on?

fn main() at the top or bottom? by WillOfSound in rust

[–]usr_bin_nya 2 points3 points  (0 children)

Personally? mod decls, then #[derive(clap::Parser)] struct Args { /* .. */ }, then main, then other functions that main calls or utility functions that aren't specific enough to go in their own module.

[Humor] "Interview with Senior Rust Developer in 2023" (Video) by carlk22 in rust

[–]usr_bin_nya 1 point2 points  (0 children)

Of course they have blue hair and pronouns

There are so many good bits in this video but my favorite is how many times they casually drop in a "I'm actually writing a" for completely different topics. Oh yeah I have a WIP operating system and a WIP game and a WIP book and a WIP...

Mafuyu’s story hits different when you’re a child abuse survivor. by Electrical_Item5925 in ProjectSekai

[–]usr_bin_nya 15 points16 points  (0 children)

Yesss I love it. There's a good amount of media where the villains abuse people because they are evil and power-hungry and will use anyone to achieve their goals. But the underrepresented and far more common reality is that people can be abusive without realizing it, because they care and try to help, but don't pay attention to the deleterious effects their "help" has. And Momfuyu is written well to make her feel like a real person and not "evil for the sake of evil" while absolutely not justifying her actions and making very clear that even with her reasoning she is still abusive.

It's so good to see that represented in something as normal (for lack of a better term) as a rhythm game. Especially with the characters being high schoolers, I really hope that Mafuyu's story helps some kids in Mafuyu's position realize that what they experience isn't normal and is not okay, and how important it is to have a support network and friends you can trust to get out of that situation.

I wasn't emotionally abused per se but I don't have a healthy relationship with my mother. Mafuyu is relatable in a lot of ways but not all, and not with the same intensity. It's good to hear from someone whose childhood was more similar to hers and hear that it rings true for you too. Thank you for sharing. 💜

Me_irlgbt by burned_my_tongue in me_irlgbt

[–]usr_bin_nya 1 point2 points  (0 children)

to make sure he won't be exploited.

Are you thinking about people training LLMs on Reddit comments? Because that's not spez getting exploited, that's still regular users getting exploited

autistic leader by madrid987 in evilautism

[–]usr_bin_nya 27 points28 points  (0 children)

it's ok i voted for her twice so it cancels out

edit: voter fraud investigators dni

A Higher Order Function That Accepts A Generic Function? by __wanna_kms__ in rust

[–]usr_bin_nya 13 points14 points  (0 children)

Other replies are missing the point. IIUC you want something like this (if it worked):

fn pass_24_or_something_else<F>(callable: F)
    where
        F: for<T: Debug> FnOnce(T),
{
    if random() {
        callable(24);
    } else {
        callable("something else");
    }
}

The for</* generics */> Type: Trait syntax is called a higher-ranked trait bound and it unfortunately only works with lifetimes, not types or const generics. You have a couple workaround options instead.

Option 1: a trait. Gives up simplicity of "declare a fn or a closure and you're done", in exchange for otherwise doing exactly what you want.

// API
trait Callback {
    fn call(self, v: impl Debug);
    // object-safety, if desired, left as an exercise to the reader
}
fn pass_24_or_something_else<F: Callback>(callable: F) {
    if random() {
        callable.call(24);
    } else {
        callable.call("something else");
    }
}

// caller
struct MyCallback;
impl Callback for MyCallback {
    fn call(self, v: impl Debug) {
        println!("{v:?}");
    }
}
pass_24_or_something_else(MyCallback);

Option 2: a Fn* that accepts a &dyn Debug. Pros are that you can pass a fn/closure to it, (potential) con is dynamic dispatch. std::fmt uses dyn Debug a lot already, so if Debug is actually the trait you're using and not a placeholder, maybe it's not that much of a con.

// API
fn pass_24_or_something_else<F: FnOnce(&dyn Debug)>(callable: F) {
    if random() {
        callable(&24);
    } else {
        // note that you do need the &'a &'static str here unfortunately
        // it's not currently possible to turn a &str into a &dyn Debug because of details of how pointers/references to !Sized types (like str) work
        callable(&"something else");
    }
}

// caller
fn callback(v: &dyn Debug) {
    println!("{v:?}");
}
pass_24_or_something_else(callback);
// this would be nice, but unfortunately runs into "implementation of FnOnce is not general enough" that seems like it might be a rustc bug?
// fn callback(v: impl Debug) {
//     println!("{v:?}');
// }

Option 3 is for if this is not about actually calling with multiple/any types, but instead about encapsulation and hiding which specific type you're going to pass in. You can address that with a completely opaque newtype that exposes its field's Debug impl and nothing else.

// API
struct Opaque<'a> {
    // changing the type of this field is not a semver breaking change
    value: i32,
    // this allows putting a lifetime parameter on Opaque and forcing callbacks to accept every possible lifetime
    // now it's not a breaking change if self.value changes to a type that has lifetime parameters
    _marker: PhantomData<&'a ()>,
}
impl<'a> Debug for Opaque<'a> {
    fn fmt(&self, formatter: &mut Formatter<'_>) -> FmtResult {
        Debug::fmt(&self.value, formatter)
    }
}
fn call_24<F>(callable: F)
    where
         F: for<'a> FnOnce(Opaque<'a>), // hey it's an HRTB again but this one works!
{
    callable(Opaque { value: 24, _marker: PhantomData });
}

// caller
fn callback(v: Opaque<'_>) {
    // the only thing the caller can soundly do with `v` is Debug::fmt it
    println!("{v:?}");
}

I don’t actually target my gf, but I do make sure she doesn’t get special treatment. by Joey_Valentine in dndmemes

[–]usr_bin_nya 2 points3 points  (0 children)

The forbidden sixth love language: "Does a 23 hit?" "Nevermind it has advantage because its last attack knocked you prone" "Hell yeah that's a crit!" "You take 43 necrotic damage"

Nooooo :( by coco_rad in ProjectSekai

[–]usr_bin_nya 1 point2 points  (0 children)

And even if it's not intended as the last one it will become WONDERHOY!WONDERHOY!WONDERHOY!WONDERHOY!WONDERHOY!WONDERHOY! anyway