Vigge93

joined 2 years ago
[–] Vigge93@lemmy.world 1 points 1 day ago (1 children)

Thanks! Don't know how I missed the Authentik docs for this.

[–] Vigge93@lemmy.world 6 points 1 day ago (3 children)

How did you set up Jellyfin with Authentik? Are you using SSO or is it only through LDAP?

[–] Vigge93@lemmy.world 7 points 3 weeks ago

That's why you always have the same number of digits. 01 < 05 < 10

[–] Vigge93@lemmy.world 2 points 3 weeks ago

That's when you get into more of the nuance with tokenization. It's not a simple lookup table, and the AI does not have access to the original definitions of the tokens. Also, tokens do not map 1:1 onto words, and a word might be broken into several tokens. For example "There's" might be broken into "There" + "'s", and "strawberry" might be broken into "straw" + "berry".

The reason we often simplify it as token = words is that it is the case for most of the common words.

[–] Vigge93@lemmy.world 6 points 3 weeks ago (3 children)

Each word gets converted to a number before it is processed, so asking how many "how many r are there in strawberry" could be converted to "how many 7 are there in 13", for example.

(Very simplified)

[–] Vigge93@lemmy.world 1 points 1 month ago

You would assume that, but you would be very wrong. People are lazier/sloppier than you might think.

Searching for "client side authentication NVD" turns up a lot of examples. There is even a CWE for "Use of Client-Side Authentication:

https://cwe.mitre.org/data/definitions/603.html

[–] Vigge93@lemmy.world 13 points 1 month ago (10 children)

That would be an extremely bad idea tho, because it would allow a malicious attacker to

  1. Try random usernames, and if the website returns a hash they know that user exists
  2. Once they have the hash, and the hashing algoritm, it is much easier to brute-force the password, bypassing any safeguards on the server

Username/password validation should happen entirely server-side, with as little information as possible provided to the client

[–] Vigge93@lemmy.world 4 points 4 months ago* (last edited 4 months ago) (2 children)

I think it does make sense, it's a "did this loop exit naturally? If so, do x". This makes a lot of sense if you, for example, have a loop that checks a condition and breaks if that condition is met, e.g. finding the next item in a list. This allows for the else statement to set some default value to indicate that no match was found.

Imo, the feature can be very useful under certain circumstances, but the syntax is very confusing, and thus it's almost never a good idea to actually use it in code, since it decreases readability a lot for people not intimately familiar with the language.

Edit: Now, this is just guessing, but what I assume happens under the hood is that the else statement is executed when the StopIteration exception is recieved, which happens when next() is called on an exhausted iterator (either empty or fully consumed)

[–] Vigge93@lemmy.world 0 points 4 months ago (4 children)

Your point about it not running when there is nothing to iterate over is incorrect. The else-statement runs when the iterator is exhausted; if the iterator empty, it is exhausted immediately and the else-statement is executed.

[–] Vigge93@lemmy.world 24 points 5 months ago

In a competitive setting, it would mean that both players get 0.5 points instead of white getting 0 and black getting 1 points.

[–] Vigge93@lemmy.world 4 points 5 months ago (1 children)

Wow, this is great! Works perfectly if you only care about the order of the files. However, if you wanted e.g. the 238th file or know which index file 99993 is, that's a bit more of a headache.

You'll also run into filename length limits quite quickly, since the number of files scales linearly with the number of characters in the filename, compared to exponentially with the 01 method.

[–] Vigge93@lemmy.world 9 points 5 months ago* (last edited 5 months ago)

Which makes it easier to keep up the momentum

view more: next ›