• 0 Posts
  • 55 Comments
Joined 2 years ago
cake
Cake day: June 26th, 2023

help-circle

  • If the fact that a 128-bit value when sent to your server can retrieve a single piece of media or user info then I have real bad news about what you can do with a typically much shorter password.

    Is it ideal that you can retrieve streams or user info from Jellyfin if you know the ID of the entity you’re looking for? No, obviously not. But you need to authenticate to get those IDs in the first place, and there are fewer bits of entropy in most people’s passwords than there are in UUIDs.

    Being able to get streams unauthenticated by guessing the correct UUID is arguably still better security than using passwords without 2FA.









  • vithigar@lemmy.catoProgrammer Humor@lemmy.mlWhat the F#
    link
    fedilink
    arrow-up
    2
    arrow-down
    1
    ·
    3 months ago

    i is still a value type, that never changes. Which highlights another issue I have with the explanation as provided. Using the word “reference” in a confusing way. Anonymous methods capture their enclosing scope, so i simply remains in-scope for all calls to those functions, and all those functions share the same enclosing scope. It never changes from being a value type.






  • C# .NET using reflection, integer underflow, and a touch of LINQ. Should work for all integer types. (edit: also works with char values)

    // this increments i
    private static T Increment<T>(T i)
    {
        var valType = typeof(T);
        var maxField = valType.GetField("MaxValue");
        var minField = valType.GetField("MinValue");
        if (maxField != null)
        {
            T maxValue = (T)maxField.GetValue(i);
            T minValue = (T)minField.GetValue(i);
    
            var methods = valType.GetTypeInfo().DeclaredMethods;
            var subMethod = methods.Where(m => m.Name.EndsWith("op_Subtraction")).First();
                   
            T interim = (T)subMethod.Invoke(
                null,
                [i, maxValue]);
    
            return (T)subMethod.Invoke(
                null, 
                [interim, minValue]);
        }
        throw new ArgumentException("Not incrementable.");
    }
    

  • I’m the primary developer for a third party tool for Elite Dangerous and this is basically my entire thought process when I want to work on it.

    I could work on Observatory…

    Or I could play some Elite…

    Or I could just stare at my screen ineffectually for several hours.

    Staring at the screen wins frighteningly often.