I grew up with the sentiment that forms of masculinity are some of the chief evils of society being the dominant narrative. I grew up learning that the US is patriarchal culture, and that it must continue to evolve and progress in order to truly provide equal opportunity to women. This narrative always seemed to view men as a kind of primordial oppressor. I remember in high school and college it was common for some people to say, "Kill All Men!" as a half joking slogan. I'm 24 for reference.
I confess, I'm not very bright and am having trouble decoding the subtleties of "Kill All Men!" as you have done. Could you explain how you got from "All" to "just the bad ones"? Would you interpret "Kill All Women" in the same manner?
Tangential question: do you advocate death for all bad people, a group which according to you includes the president?
I think GP is more in response to "view[ing] men as a kind of primordial oppressor", then the "Kill All Men" statement.
In any case - "Kill All Men" was always just a shibboleth. Treating it as an actual policy recommendation is prima facie risible. Throwing it out there to see who is oblivious enough to object is the point.
When I grew up, I was taught that if someone in your friend group makes a racist joke, you should stand up to them, and inform them that casual racism leads to normalizing racism.
Even if "Kill All Men" was just a shibboleth of a specific online culture, it seems like objecting to it would be a kind of moral duty (for the same reasons), as long we are in agreement that normalized misandry is bad. But again, in my generation I don't think there was any kind of consensus that misandry is wrong. That's why objecting to a shibboleth like this would be evidence of how "oblivious" and behind the times you are
Okay but "some people are racist and we should stand up to them" is different from "the sentiment that forms of masculinity are some of the chief evils of society was the dominant narrative."
Do you honestly believe these people are advocating for slaughtering half the human race and damning the rest of it to extinction? Or is there some hyperbole that is going over your head?
In your comment above, you said that the less-hyperbolic version is killing all "bad" men, including the president. If one is trying to get all non-"bad" men on board with this, why would you use an alienating slogan like "Kill All Men?" It's such a big messaging fail that I can't really credit them with any thought process.
This is why I asked how you managed to extract something other than "Kill All Men" from the phrase "Kill All Men".
I am not claiming my experience generalizes here. But my experience was absolutely saturated by a narrative that men are oppressors who are the cause of many/most of the ills of society. The nuance of only including men who are "evil" was not present in my experience. A conversation might go like:
A: "Kill All Men! They are disgusting"
B: "Well, surely not all men, some men are noble or allies to your cause"
A: "When I look at who the evil people are, they are almost all men, and they are supported by many men. Men are responsible for the evil and for failing to stop the evil. For every man that commits date rape, there's 5 men that hear about it and don't do anything. They are all responsible, and just as guilty."
I'm certainly not claiming that there is widespread oppression towards men, but at least in my generation (particularly in higher education) the overton window includes denigrating masculinity but doesn't include admiring it.
Who are the people you have these conversations with?
Another comment mentioned "ShitRedditSays" - is it possible you were saturated with a narrative that you went out and sought to saturate yourself with?
I don't know what exactly you're asking by "Who are the people I have these conversations with?" They were real-life in-person interactions, most often with young women I knew in college. It's interesting that even when I specifically say that I don't know whether my experience generalizes I still get subtly accused of having a preconceived narrative that I tried to confirm. I can only give you a n=1 sample size. But in my experience growing up in the US casual misandry is very normalized, in a way that contrasts to the stigma that surrounds casual misogyny.
I honestly think you're over-intellectualizing it.
The core contention is that he's a virginal loser with no friends. Men have insinuated this about each other, independently of political division, across the ages.
I do think it's helpful to understand when interactions are really just boiling down to this. Helps with the angst.
It feels like there's almost no engagement with the actual claims I'm making.
From the original claim of, "Nobody really thinks men are the cause of most of societies problems."
My response was, "While growing up I was taught and interacted with people who definitely thought men were the cause of most of societies problems."
The counter was, "You must be a terminally online virgin with no friends then."
From my perspective I have a rich social life that includes both genders and would consider myself a feminist. But it really is radicalizing that even mentioning experiences of casual misandry is met with accusations of social ineptitude
You ever hear anybody say "toxic femininity"? Yeah, me neither.
But, anyway, it's a confused conversation. It's helpful to zoom out a bit. The top-level comment is (partially) blaming feminist discourse for a social ill (increasing gambling addiction among young men). While politely stated, the claim is pretty inflammatory.
So part of what's going on here is that people are reacting to what they perceive as you defending that initial claim (which, again, is pretty inflammatory IMO) instead of just denouncing a bunch of people as incels and moving on.
Anyway, I will validate you. You are not taking crazy pills. You're just ... saying some things that are taboo to say. I would, uh, avoid ever using the word "misandry" in a setting where it can be associated with your real name.
I simply do not believe that people start interactions with you by saying "Kill All Men! They are disgusting"
That is simply so far out of the realm of believability. It is no different than if you said people started conversations with you by levitating and turning into flocks of bats.
I can believe that a conversation like that happened once. Maybe twice, if I want to be extra generous with the benefit of the doubt. It's missing context but I can have my imagination can fill in those gaps.
Yeah that wasn't meant to be an accurate transcript of a whole conversation, just wanted to sketch out the ideas involved. The "kill all men" bit would come after getting to know the other person and talking to them about how they see the world, they wouldn't say that to introduce themselves
"Kill all men" was certainly a Tumblrism (and SRSism) in the mid-20-teens, so if you hung out with young women into Tumblr in 2014 or so you might have heard someone drop it in real life. I did a couple times.
It seems salient to ask the follow up question of "Why aren't men getting laid and/or married?" Actually finding the root cause may be much less simple. Your response seems as hand wavy to me as saying "Most of the loneliness epidemic is really an epidemic of people feeling lonely"
Because if the problem was "everyone is feeling a bit lonely", then that's something that points at actual problems, that aren't self-inflicted, and need fixing. If the problem is "The absolute worst men you know no longer can get laid by being the only available option", then whatever, who cares, it's self-inflicted.
I do not predict that. We just need the bet to have a time limit because BB(7) will always have holdouts as long as I live. I chose 10 years because I have prior experience with that timeframe [1].
By representing all numbers with lists (or sets).
0 = []
1 = [True]
2 = [True, True]
Etc.
Then for example addition becomes appending two lists together
Doesn’t sound natural to me, and I couldn’t find any examples online using that phrasing to mean someone was removed from a deal. You can be cut from a team, though.
A charitable interpretation of nico is that he was saying a well-trained NN is itself a model of the world. If it can tell you what a system will do given some inputs, then it functions as a model. While internally it isn't creating a model that we could understand, it does "model the world" in the sense that we can treat it as a model
Consider for a moment replacing the NN with another person, who forms a model of the world that is very useful for prediction.
Now our lead experimenter asks this person "what will happen if the global average temperature increases by N degreesC?" and they get an answer.
Can we way that the lead experimenter has built a model? They have not, certainly not in the sense that they have any access to it. The person who replaced the NN may have (and indeed, probably has) built some sort of model, but that's a very different claim.
Explainability in NN/ML systems is a hot topic, and many people (not all!) would say that if the NN/ML system cannot explain why adjusting parameter X will cause changes in parameters A, M and T, then you have no access to anything that merits being called a model.
A consequence of this is that if the person who replaced the NN can explain themselves (e.g. answer the X -> A,M,T coupling), then even the experimenter can probably be said to "have a model". But if all that can be said is "I don't know and/or I can't explain, you just need to trust me that this coupling is real", then the claim that a model has been built is on unstable ground.
A truism in the computer modeling communities of the 1970s and 1980s was “the product of a modeling exercise is not the computer model, but the modeler”.
The insight gained by rigorously modeling a system in computer code produces a person (the modeler) who can provide valuable insight when asked questions about the system. In policy analysis, the modeler’s insight can often provide quick and dirty and auditable (and often correct) analyses/answers about the modeled system without ever running the developed formal computer model. The exercise of the formal development of a computer model credentials the modeler as having gained a level of rigorous systems-level expertise. And the scope and detail of that modeler knowledge is certified in the depth and breadth of the computer model itself (and the currency and accuracy of the input data sets).
Nice to have such an human analyst around when important policy decisions need to be made, since such policy decisions should be made and implemented by humans who can explain the confidence that exists regarding the knowledge that supports the given decision. The decision makers can then point to the analysts for the estimate of the degree of confidence that can be ascribed to the policy analysis that supports the decision. That’s how it’s supposed to work, and that philosophy is formalized in existing decision processes for complex technical systems such as transportation, telecommunications, power, military systems, etc.. You know, the important stuff….
> Now our lead experimenter asks this person "what will happen if the global average temperature increases by N degreesC?" and they get an answer
What symbols or language did the lead experimenter use to ask the person the question? And what does degrees, temperature and global mean?
All of those things require models to be communicated between the components of your system
Any symbolic communication is necessarily a model of what it is trying to represent
Of course, if there isn’t someone to interpret it, it’s just symbols. But to interpret a meaning behind symbols, then it implies the symbols represent a model of the meanings that are being communicated
I think that the first amendment prevents congress from banning tiktok for the reason that the content is objectionable. Instead they would need to argue that it is a nation security risk (spyware, etc)
Yes, I believe that this is due to how python lets you dynamically redefine functions even to violate lexical scoping. So in the author's example:
def f(x):
if x > 0:
return f(x-1)
return 0
# Here is where a compiler might assume that f(x) is tail recursive, and so do TCE
g = f
def f(x):
return x
g(5)
So according to the python standard, g(5) returns 4, since it calls the original f, but then the first recursive call will go to the new f. If f was TCE'd, then it would return 0, as the actual recursion would be eliminated, so it wouldn't matter that you've reassigned f to a new function.
I find that argument very unpersuasive: the optimization is tail CALL elimination, not tail RECURSION elimination, and the call to f(x-1) is certainly a tail call. I see no reason you couldn't optimize away that stack frame. "Tail recursion" is a technique in functional programming, that depends crucially on tail call elimination, but the tail call itself absolutely does not have to be recursive (it just has to be in tail position), it's just that it happens to be so in a tail recursive algorithm.
Incidentally: I don't believe that is a violation of lexical scoping. f is scoped globally, inside itself f is not defined, so f(x-1) refers to the globally scoped f. When it's reassigned, you reassign the global f. Nothing here violates lexical scoping, since f is never scoped anywhere other than globally (note that the blog post never claims it is, either)
I don't disagree with Guido's larger point, though, Python probably shouldn't use TCO. The debugging/stack trace point is very true, and also it's just not Pythonic to write algorithms TCO style. You just don't need to, in Python.
It’s somewhat unclear, but in this case Guido is responding directly to a particular - broken - attempt to add TCO to self-tail calls to CPython in the fashion described. I assume, having not read the linked article, that the author must have done that as a quick hack - because CPython’s bytecode must allow arbitrary jumping within a function body but doesn’t have the means to express a true tail call. I guess.
He goes on, later in the post, to describe how he’d go about adding tail calls - although this treatment is also confused.
Well I mean the reason you can't optimize away the stack frame is that at any point during runtime f can be redefined to be a different function. In the above example, do you agree that any tail call elimination would result in the wrong evaluation of `g(5) = 0` instead of the correct `g(5) = 4`?
And your understanding of why python doesn't permit TCE is because functions are globally scoped with indefinite extent?
> In the above example, do you agree that any tail call elimination would result in the wrong evaluation of `g(5) = 0` instead of the correct `g(5) = 4`?
No, I very much do not agree: it is still a tail call, and can use tail call optimization. When it calls f(x-1), regardless of whether f has been reassigned or not, you have to resolve what f is, because it COULD have been reassigned. The Python interpreter has to do this regardless, the fact that it's recursive is irrelevant.
You do that, and you get the function value you need to call (it could be the original value assigned to f, it could be the new value, it doesn't matter). At that point, nothing that is remaining on the stack frame except the arguments and return address is needed anymore, so you can reuse it for the the call to f(x-1). That is what tail call elimination is.
I'll grant that it's entirely possible that I've misunderstood this whole thing and that Guido is correct (he's a much smarter fella than me), but if so, I have no idea why I'm wrong.
> And your understanding of why python doesn't permit TCE is because functions are globally scoped with indefinite extent?
No, not at all, that was just a side note about why you were wrong to say it violated lexical scoping (it doesn't). My understanding of why Guido didn't do this is because he didn't think tail call elimination is a very useful feature for Python, and it destroys stack traces. Both of which I agree with. I just don't buy the other technical reason.
What amuses me is that he goes on to explain how you'd retain the existing Python behavior and still do a tail call optimization. You have to retain the late binding by not converting the call-return into a jump but instead to a special new call_return which still performs the lookup (to satisfy late binding) and can reuse the stack frame instead of generating a new one.
This would work for every instance of call-return pairs except in try statements and similar (anything that that has whatever Python calls unwind-protect). Since, in those cases, the except/finally/else of a try is code that may be executed (or is always executed in the case of the finally) after the call but before the return.
So it really does come down to a desire to prevent the use of deep call stacks (auto-recursion is just one case that would have been optimized here) rather than a true technical limitation. This could even have been brought in incrementally over the years and provided as an option.
Let's say you had a library function foo, which takes no arguments, does an expensive computation, and then prints a single result to the console. You need the function to instead return the value, so that you can do more computation on it. You could write a wrapper function that will call foo, but replace the print function with one that records the printed result.
For example:
def foo():
print('usually this value is inaccessible from "python land"')
def extract_printed_values(bar):
global print
old_print, returnv = print, None
def new_print(x):
nonlocal returnv
old_print(returnv := x)
print = new_print
bar()
print = old_print
return returnv
fooval = extract_printed_values(foo)
fooval will then be equal to whatever value foo printed to the console, otherwise foo will behave exactly the same as normal (assuming it only printed a single value), and print will even behave normally afterwards