Das globale Management von Fortinet hat nun zurückgerudert mit seinem Statement, das an verschiedene internationale Medien gesendet wurde. Dieses auch an CH Media zu schicken, hat die Firma unterlassen. Auch sonst liegt uns bisher kein weiteres Statement von Fortinet vor.
"Fortinet's global management has now backtracked with its statement that was sent to various international media outlets. The company neglected to also send this to CH Media. We have not yet received any further statements from Fortinet."
Oh hey, the Attorney General of Indiana has published a snitch line for schools that teach LGBTQ+ issues, or make Woke materials available to their students!
Here’s the URL. Use it responsibly. Don’t use it to report Godzilla flying the Trans flag or anything like that, ok?
@foone I tried, but Paypal says my credit card cannot be used for making payments, which is bullshit because no other website has an issue with it, including Amazon. (Also, they want my phone number for some reason.) Do you have any other payment channel that doesn't involve Paypal?
@thunderbird Just updated Thunrderbird. Got a web page asking for donations. Page design is kinda sus (doesn't tell you who's behind it, there are no links with more info or "about us", etc., not sure this is even legal in Germany), but I decided to click the Donate button anyway. Got nothing; button doesn't work, just reloads the page. Might want to fix that.
#TIL Today I learnt that adding ? after * transforms a #regex expression from being "greedy" into "lazy" (important for performance, safe validators, and protection against DoS attacks).
I don't know how I missed this bit of knowledge for so long. :blobfoxbox:
@castarco I don't see how it protects against DoS attacks. The DoS problem is caused by badly written regexes that take "forever" to fail, so the regex engine is busy trying all possible variations to make the regex match a given string (assuming a standard backtracking implementation).
Making quantifiers non-greedy (by appending ?) does not change the number of ways a regex can match, nor does it shortcut the matching process. It simply changes the order in which alternatives are tried.
In the case of X*, the normal order is to try to match as many X's as possible and only "give back" matches if the rest of the regex fails to match. With X*?, the regex engine will try to match as few repetitions as possible (i.e. 0 at first) and only consume more if the rest of the regex fails to match. In either case all possibilities are tried before giving up.
@samir Oh, I know this one. Like when you download a custom "image pack" for an HTML game, and the format turns out to be executable JavaScript that registers functions that set .innerHTML of some elements to HTML code with img elements whose src attribute is a data:image/jpeg;base64,... string.
Today I spent a few hours trying to track down a problem deep in a helper module of a complex production application written in #Haskell. Among other things, it involves threads, a monad transformer stack (3 or 4 levels deep, I think?), an SQL database, and HTTP calls to an external service.
In the end, I managed to boil one issue in the code down to the following crucial lines:
forever_mpl :: Monad m => m a -> m b<br></br>forever_mpl m = fix (m >>)<br></br><br></br>forever_mpf :: Monad m => m a -> m b<br></br>forever_mpf m = fix (self -> m >> self)<br></br>
In theory, both of these should be equivalent to forever from the base library. However ...
In one place in the code, using forever_mpl (the first definition) works correctly: It repeats an action forever. But switching to forever_mpf (the second definition) makes the code hang instead (at 0% CPU). Why?!
I know the answer now, so here's a #debugging challenge: Can you think of a reason why these two definitions should behave differently? Can you implement a Monad instance with a >> that distinguishes between them somehow?
ChatGPT
In the provided PHP code, you are defining a constant named lol and creating an array $lol with two elements. Let's break down what the echo statement will output:
"$lol[010]": This part will not output as expected. In PHP, variables inside double-quoted strings are parsed, but array indices are not parsed correctly if they are not enclosed in curly braces. Therefore, this part will not output the value of $lol['010'].
"${lol[010]}": This is a correct way to access an array element within a double-quoted string. The curly braces allow PHP to correctly parse the array and its index. This will output "Merry".
"${ lol[010]}": This is similar to the previous part, but with a space after the opening curly brace. PHP is generally tolerant of such spaces, so this should also output "Merry".
However, there's an important note about the array indices: "8" will be interpreted as an integer index (8), but "010" is a bit tricky. In PHP, a number starting with a 0 is considered octal (base 8). However, since 010 is an invalid octal number (octal digits are 0-7), PHP will interpret it as a string index instead. Thus, '010' remains as the string "010".
Putting it all together, the output of the echo statement will be something like:
Notice: Undefined variable: lol in your_script.php on line X<br></br>Merry Merry<br></br>
This notice is generated because $lol[010] is not recognized as a valid array element in the first part of the echo statement. The other two parts correctly output the string "Merry".
Any #regex wizards here?
Is there a way to match multiple linebreaks regardless of the content but only if the number of linebreaks exceeds a value like 5?
i have an idea to make computers even worse, let's make it where a file can also be a directory. i mean going beyond the nix "everything is a file" paradigm. i'm saying, /bin/bash is still bash but you can also just store jpegs in /bin/bash/cat_pics
The trick that mathematicians haven't quite figured out yet is that you can combine multiple letters into "words" and use those to name things. Then you don't need five scripts and three separate fonts just to give everything its own unique letter. #subtoot