Ah I read the ".ml", but not the username. It doesn't make sense for me to continue to argue. You're deep into the Russian propaganda pool.
- Posts
- 0
- Comments
- 514
- Joined
- 3 yr. ago
- Posts
- 0
- Comments
- 514
- Joined
- 3 yr. ago
The US are using its bases in allied countries to attack Iran. It is not named a NATO mission because it isn't. The NATO alliance does not require it's members to let the US use the military bases in their countries.
For example, Spain, a member of NATO, did not allow the US to use the military bases located in Spain to attack Iran.
The US has many allies. Some in NATO, and some outside NATO. Even if the US exited NATO, it could still use the bases in allied countries.
It does matter to Iran if it is a NATO mission or not. Because since it is not, it doesn't have to fight against the entirety of NATO.
The US cannot use military bases it does not own or in foreign territory without permission. If there were "NATO military bases" in Ukraine, It would need the permission of NATO and Ukraine to use such base. NATO would presumably not grant permission to use it for an offensive war, as it is a defensive alliance.
Yeah. A defensive alliance is totally the same as a military that is currently committing a genocide for the purpose of territorial expansion.
And Russia is totally an invented enemy that is not currently in a war with the purpose of territorial expansion.
Oh wait, what is actually similar to the IDF is Russia! Who would have thought?
They can defend themselves the same way as if any other country attacked them.
NATO doesn't protect you if you start an offensive war. It only protects you if you've been attacked first.
There's no better example than the epstein-US-Iran war. Trump keeps whining that his "NATO allies" are not helping him. Iran right now can attack the US as much as it can, since the US started the war for no fucking reason.
Some individual countries that are part of NATO have helped the US, but that was independently of NATO.
What expansion?
The latest new members of NATO after many years have applied because Russia invaded ukraine, a non-NATO country.
If there weren't countries invading other ones, no one would need to join NATO, as it is a defensive alliance.
I believe it went over your head. This was a satire comment. It is made by OP. OP doesn't believe in those words. Sarcasm can be used without writing "/s".
If you criticism the Chinese government on a .ml instance, you will quickly get banned for "rule 2: xenophobia".
Go to basically any comment section of a politics-related popular post on a .ml instance. I can almost guarantee that there will be some china/Russia/north Korea brainless take.
1 million is the net worth of the person. Assuming the wealthiest person of your family has 50% of the family's wealth, the wealthiest person is still not in the top 1%.
If you read the conclusion, it is very clear that you should not ever break convention. You should not apply this if it would affect any other program.
That is, if your input is in u8, your output should be in u8 too. Otherwise you are "exposing" your different quantization.
I don't think this post is telling you that you should use the 256 method. I think it is pretty clear that it is just explaining it, not advocating for it. At various points of the article it is written something like "I struggle to see a situation where it would be beneficial".
The offset is needed because this quantization dividing by 256 uses truncation whereas by 255 uses rounding.
So a value of 245 (for example) could be anything between 245.00000 and 245.99999. Therefore, when dequantizing, we set the value to 245.5, which is in the middle. Between 245.00000 and 245.99999.
Did you read the article or just the title?
I'm honestly surprised this comment is the one that shows at the top.
The random number generation is not the source of the complaint. That is just made to easily prove the point in the article.
The argument is not to use another method when randomly sampling from
[0,1). The argument is that f32 color channels are already in the[0,1)range, and following the alternate method results in a "fair-er" representation of the range.The plot that was generated with the random sampling is just to show that the standard method is not "fair".
The correct way to scale a number from one range to another is ...
Citation needed.
It is just as valid to quantize the following way:
q = (x+0.5)/256The inverse would be:
x = min(truncate((q*256)), 255)In fact, you could argue that this method is technically more correct. The only issue being the exact value of 1.0, which we have to handle explicitly with
min(..., 255).This method is idempotent. Try it with
x=90for example. It does destroy data, but that is true for all quantization methods.We have to remember that quantization is the process of representing a bigger set of numbers (usually infinite) with a smaller one. We sort a range of values from the bigger set into a single bin in the smaller set.
The argument of the article is not about "resolution". The argument is about using the 8bits available as efficiently as possible.
As the article points out, if you follow the naive approach of:
q = x/255x = round(q * 255)You are losing a tiny bit of the 8bit range. Since the ranges represented by 0 and 255 are half as big as the other ones. The naive approach is really quantizing in the range of
[0-0.5/255, 1+0.5/255)instead of[0,1). This is becauseround()maps approaching values to x from both sides, so some negative values map to 0, but there are no negative values in our set.The conclusion at the end of the article is mostly the correct one though. If there is an industry standard, it is best to follow that standard. Since mixing a quantization function from one method with the dequantization function from another is just wrong. You can only choose your own method if both your input and your output is the small range.
EDIT:
The "naive" approach described in the article does
x = truncate(q * 255 + 0.5)which is equivalent to thex = round(q*255)Checks out with my experience in university. I had like 3-4 classmates in software engineering that could program a simple program that ran. And this was before LLMs. You don't even need to cheat to pass while being absolutely incompetent. Of course, some people also cheated.
Why is that. A problem? You have to have the line somewhere. It's better if it goes along an already existing imaginary line. If they didn't line up, you would need to remember sets of arbitrary lines instead of 1.
- JumpRemoved
Zig language's policy on AI
This is not a list of all the things they are banning AI from.
This is a list of every reasonable use of LLMs they can think of in their environment.
So if anyone thinks "hmm, I know they don't like LLM contributions but I'm just going to use it once for X". The immediate next thought should be "They don't even allow LLMs to spell check, therefore my single use of LLM for X will not be welcome, I will not do it".
Basically none of this is enforceable. The rules are there so if someone is caught doing something, it can be pointed out that that something is written in the rules. And also to give a general sense of what is tolerated or not in a community.
This reminds me of a traffic law in my country:
It is illegal to go all the way around a roundabout 3 times in a row. There is not a police officer ok every roundabout, or a camera counting how many times you go around it. But if a kid goes off and do stupid shit at 2AM with a loud AF car, one of the things one might do is do many loops on a roundabout. Therefore they can't just say "I'm not doing anything illegal, I'm just using the public roads with my car and a valid driver's license". Since one of the things they did was doing more than 3 rounds in a roundabout.
TL;DR:
Domain Driven Design has a flaw: not all types can be categorized into "valid" and "invalid", since it often depends on context.
Solution: you just haven't modeled your domain correctly. You have a type for "MyData" but you don't have a type for "MyDataThatIsBeingEditedByTheUser".
So the "final" type should be valid, but often you should have intermediate type(s) that model incomplete input.
Basically, when doing DDD don't forget your builder types.
If you come with reddit mentality, you're gonna see reddit eveywhere. In Lemmy, upvotes are not a popularity contest. There is no karma. Votes have no use other than sorting.
One of the reasons my comment may have more upvotes might be because it directly answers the question of the commenter above.
OP didn't ask what the borrow checker was, OP asked if it was an integral part of rust, and I answered it. Just like another commenter asked more specific questions about rusts' borrow checker and I answered them.
Another reason might just be that my comment has more entertainment value, while the other one is purely educational.
Another reason might be that Lemmy is already full of rust explanations, therefore there are probably not a lot of people left to learn how it works.
I don't see how LLVM helps with bootstrapping.
Yes, it helps with supporting newer platforms, since LLVM is a big project and will probably have support for the new platforms relatively fast.
But as long as any part of the whole process is in rust, it means that you need a rust compiler to build the rust compiler, thus needing to solve the bootstrapping problem.
Of course, every compiler has this issue (even if not self-hosted, you still have to bootstrap the compiler of the language your language is written in).
The only solution for this is to have a compiler-chain where the first level is a simple compiler that can be relatively easily written in the assembly language of the new platform.
EDIT: or of course I could've read any other comment. Of course you can use one of the intermediate representations that are portable to build the first compiler. In which case you don't need a rust compiler, just need LLVM. Makes sense then.
I can respond to every single comment of yours. It's just that my time is worth much more than that. Since Russia has basically an infinite amount of propaganda and you won't stop until you spew all of it.
If you were a user that used logic and reasoning I might be motivated enough to engage in conversation. You are not, however.