This is fun. Okay, I'm not a JavaScript programmer, but here are my submissions (the first two solutions taking 2-3 minutes to create):
First we create the array.
var ary = [1,2,3,4,5];
Now... First reversal method, assuming static array size and these particular numbers:
ary = [5,4,3,2,1];
Whether this is "in place" depends on how JavaScript works. Seems likely to me that it'll do it in place.
Second method, assuming static array size, this particular array size, and using any (numeric!) values within the array:
for (i = 0; i < 2; i++)
{
t = ary[i];
ary[i] = ary[5-i-1];
ary[5-i-1] = t;
}
Obviously uses a temporary variable. Depending on what was meant, that may violate the "in place".
Okay, after a couple more minutes, here's another:
for (i = 0; i < 2; i++)
{
ary[i] += ary[5-i-1];
ary[5-i-1] = ary[i] - ary[5-i-1];
ary[i] -= ary[5-i-1];
}
Again, assuming a 5 element array. No memory aside from the array used, though more (simple arithmetic) operations used.
Oh, shit, hey... Does this work?
for (i = 0; i < 2; i++)
{
ary[i] ^= ary[5-i-1];
ary[5-i-1] ^= ary[i];
ary[i] ^= ary[5-i-1];
}
Seems to. I'm not that knowledgeable, so I don't know this, but I get the sense that binary manipulations may be faster than arithmetic.
Also, I expect things like the 5-i-1 to get evaluated once and for the compiler to not bother calculating it again. If this were a concern, then storing the result in a temporary variable might make sense, depending on the overhead (and whether this again violates "in place").
More seriously, who's to say the writers of this algorithm can't run it in reverse to frame someone?
Oh, clever.
But now future courts can point to your post to show that the idea was common or at least public knowledge, empowering stylometric identification deniability in cases of plausible framing.
The Syrian civil war is one of the main topics. The other, arguably primary main topic is Apple's censorship. The sub-topic being discussed under Apple's censorship was platforms and social pressure. The sub-topic underneath that was Internet Explorer as an example of such. To think of IE and the civil war as a dichotomy is a mistake, though I certainly also feel the emotional impact of contrasting the two.
I do choose to be how I am, and I do catch flak for being different. That flak is social pressure.
Maybe you don't remember the days before Open Office, receiving important documents you couldn't read or needing to create important documents that you couldn't make without Microsoft software. Maybe you don't remember how many websites were IE-specific, or how it was business suicide to build a site without catering to the IE userbase. Do you think that those pressures weren't real?
You don't really care what people think, any more than I do.
You probably care less. It sounds like you don't have to interact in a business environment and maybe you don't have many friends who want to be in touch via Facebook- Oh, but you do use Facebook. Do you also build websites? When did you start web surfing? IE was a thorn in the sides of everyone who wanted a better browser, but folks had little choice except to deal with it -- that's social pressure. You don't have to worry about IE or Office now. It sounds like you didn't experience these things. And the one example of extant pressure, Facebook, you are using. So maybe it's hard for you to understand. Look around, though. There are plenty of other normative things that society smooths the way for, and which swimming against is damned hard.
Don't let your disdain for haughtiness distract you when you think you've caught whiff of it. There's a real issue here.
Even almost completely spelled out it's hard to get.
If each bandit takes a single bean from each villager, they will have only done 1% harm, and so they'll feel morally comfortable. But there are 100 bandits, which means each villager still loses their entire 100 bean meal.
That's the point. Even if you do only a little harm to others in your quest for self-satisfaction, it still adds up to others suffering substantially.
Within the realm of Apple systems that run only apps we have "favoring complete obedience or subjection to authority as opposed to individual freedom" and "the act or practice of supervising the manners or morality of others".
Part of the problem is that opt-in commercial systems become de facto social requirements. Internet Explorer, Office, Facebook, LinkedIn, smartphones... It's hard to navigate society without opting in. I use none of these things, and having opted out puts pressure on me. People around me think I'm weird (because I am strange, I am unusual and hard to understand) and they feel judged by my refusing to do what they do (this is similar to how just being a vegetarian is threatening to others) and that puts strain on my relations.
So I'm a component of a larger organism, society. What society chooses, whether enforced intentionally, using written rules and men with guns, or enforced incidentally, by the fact of social pressure, is what I am subject to. If society ignorantly opts to relinquish freedom by adopting some corporation's politically- and morally-constrained walled garden, they apply that authoritarianism and censorship to me as well.
You reject the quality and/or political message of the app, but miss the issue that Apple alone gets to say what's appropriate. Apple's authoritarian censorship is a "political game".
A belittled as we may want to think of it ("silly little platform"), it's actually big. You can reach a lot of people through Apple apps.
It's hard for most to understand the harm of having a corporation, a single entity decide what's acceptable.
And it's especially hard for an overwhelming majority to grasp the concept of distributed, incremental contribution to problems and how one's individual actions play in.
100 bandits descend on a village and rob the 100 villagers of their lunches, each bandit taking the 100 bean lunch from a single villager. The villagers lament in hunger. Later, the bandits experience qualms over harming the villagers so. Luckily, a clever bandit devises a solution: take only one bean from each villager. With 100 villagers between whom to spread the theft, each bandit gains a full meal without harming anyone noticeably.
Couple the difficulty of grasping this concept with the difficulty of knowing that there's harm being done in the first place and who can you expect to take the right actions except only the smartest?
It seemed like over the top, effusive behavior, but that didn't make sense to me in the context of what seemed to me Linus's history of being an effective leader. I had to investigate more closely. It looked at first like it was the same as the vitriolic feeling-blatting that de Raadt does. And that was disappointing.
But given the context you provide it makes more sense. Flogging with an edge of contempt might in fact be an effective tool for efficient management with such a large and public team. So long as it's done right.
Looking at the chain of emails I see that the contempt is for the thinking and the behavior. Failing to uphold the sanctity of the interface, blaming userspace, continuing to fail to own the error. Mistakes and mistaken thinking that threaten the method and operation of Linux kernel development. But it's the behavior and thinking that are contemned, never the person. (This is what I mean by an "edge" of contempt.) And this is an important distinction to make, and one that de Raadt frequently fails at. de Raadt conflates misbehavior or stupid thinking with the person's being valueless and so lashes out at the person. It's the thinking or behavior that needs stomping on, not the person. If you confuse the two, you end up attacking people instead of mistakes, which brings too much collateral damage. Distinguishing behavior you want eliminated from the actors themselves makes the difference between building a culture of hate and domination as you have with OpenBSD and a culture of tough-as-nails get-it-done as you have with Linux.
There may be an excess of references meaningful only to small ingroups. And that is certainly worthy of fighting against. (And I mean small ingroups inside the already small audience of geeks interested in cutting-edge stuff.)
This particular situation may not be the best to rail against, however. The Duke Nukem 3D references turn out to be valuable within the target audience. (Target audience being all of us computer nerds.)
But, yes, otherwise I agree that references should be kept as meaningful and inclusive of the overall target audience, rather than degenerating into having ingroup-only usefulness, serving just the aging population or any such group (conceivably specific tech, younger age, specific game, etc.).
He seems unwell to me, too. But he must be sufficiently well functioning to continue to afford a computer and a net connection. I'm curious as to how the story pans out.
What happens if you run a legitimate DNS server and a botnet spoofs source IPs in DNS requests to launder and amplify their attack by reflection off you (and countless other DNS servers)?
I've been seeing this come through my system and I don't yet have the sophistication to filter out the attacks. Not that I'm asking to be blacklisted, but... I should be blacklisted.
Fast removal may be a requirement that email anti-spam systems don't have, but that doesn't invalidate DNS as a delivery mechanism. You can update your listing at whatever frequency you see fit and you can set low TTLs on the DNS entries. As it turns out, XBL sets a 35 minute TTL. SpamCop's SBL sets 15 minutes.
Moreover, hosts that send any legitimate email are very few compared to hosts that send Web requests...
I think you're making a case against using a DNSBL, but I'm not sure how this point supports that.
I'm imagining something like how the XBL is run. Spamhaus is the aggregating, trusted third party. CBL and its multiple hosts, and NJABL and its multiple hosts, and possibly other providers collectively submit attack reports. Spamhaus publishes the result.
In any case, the exact delivery mechanism isn't as much the point as your more general idea is the point. The idea of facilitating individual systems in reporting DDoS attackers, aggregating the results, and publishing the aggregation is a good idea. I saw it as a mirror in essence of XBL etc.
The aggregated list should be data you can analyze and include as you see fit, not a judgement by the publisher, as if the publisher were the authority on whether reports are accurate. The list should state n systems have reported i address as attacking them within t time frame. The list subscribers should be able to score addresses by their own criteria.
Malicious reports by individual systems would be easy to ignore when compared to the many reports of systems actually being attacked. However, the list aggregator would do well to have some kind of trust relationship with the reporters, that is, having some additional verification of the reporters' trusthworthiness. I imagine a scenario where open reporting is subverted by a botnet directed to falsely report attacks.
"Backchannel" availability does seem like it would be a concern, but I don't know enough to speak to it.
The Spamhaus XBL, or "Exploits Block List", is a DNSBL (DNS-served blacklist) that lists IP addresses of systems known to be infected or otherwise being used by malicious parties. ("The XBL is an automatic system whose detectors need to receive email (spam, worms, etc.) directly from the IP address so the connection data can be analysed to determine if it's a proxy or virus-spewer.") The blacklist is developed in a way primarily to be useful in reporting systems exploited to send spam, but the idea is exactly what you're referring to.
...you are nothing more than the sum total of your useful skills...
Are you saying that surgeons do more to benefit others than mechanics? Maybe at least you're saying mechanics do more to benefit others than the unemployed? Bothering to say these things means you are ultimately concerned with the what these occupations or people are achieving: benefit to humanity. Which means the thing really being valued is humanity itself. Distilled, it's actually sentience, minds perceiving reality, experiencing happiness or suffering. You care about the welfare of minds.
Even dogs, for example, have minds, though, it's not just humans. You care about whether a dog is suffering or happy. If a dog were trapped in a burning house and you could safely let it loose, you would. What useful skill does that dog have? Do they benefit humanity more than unemployed hipsters?
Maybe you're inclined to make an argument that dogs benefit humanity so you can try to defend the idea further. What if you had a dog that was dangerous to all other people and animals, but it was happy being kept in a small cage by itself? It more or less lacks value at that point, but would you really feel good about killing it?
That seems a simplistic response, though, doesn't it? There's a lot of value to be gained in making reference to a similar subject, at least in that the referenced subject can serve as an example of how such things might tend to be. Also it serves to clarify, where a more abstract description might be hard for people to understand. I think I'm saying something constructive here, but it might be hard for you to grasp. Drawing parallels to something else could make it much easier for you to get. But, yeah, only so long as you know the reference.
You seem upset. Maybe you find unfamiliar references hurtful in some way? Exclusive? Exclusion is in fact a bad drawback for failed references. It's divisive of communities, resulting in reduced sense of valuation for those in the outgroup.
If it's any benefit to you, I don't devalue you because you're unfamiliar with Duke Nukem 3D. Heck, I'm an old fart and I never played it. Well, except multiplayer once at a friend's party. It was fun.
Your rhetorical style opposes your own goals, I should point out. You might lead a more enjoyable life if you learn to manage your emotional outbursts and instead make your communication intentional. Serving your feelings by blatting them out may feel good in the short term, but don't be fooled into thinking it's how you ought to behave and that it will help you feel good in the long run.
Because contempt for people causes all our lives to worsen. Have contempt for what people do, go ahead, but distinguish between that and the persons themselves.
It's very subtle and hard to understand. But I don't wish you harm because you can't figure it out.
Unshared context failure is something you'll run into, too. Indeed, you're already running into it, but on the converse side of how one might usually think of it.
What's the general solution? Always link to information about the context? And maybe the linked resource can give brief explanations and in turn link to related memes from other generations and cultures? A kind of inter-cultural / inter-generational meme translator?
This is fun. Okay, I'm not a JavaScript programmer, but here are my submissions (the first two solutions taking 2-3 minutes to create):
First we create the array.
var ary = [1,2,3,4,5];
Now... First reversal method, assuming static array size and these particular numbers:
ary = [5,4,3,2,1];
Whether this is "in place" depends on how JavaScript works. Seems likely to me that it'll do it in place.
Second method, assuming static array size, this particular array size, and using any (numeric!) values within the array:
for (i = 0; i < 2; i++)
{
t = ary[i];
ary[i] = ary[5-i-1];
ary[5-i-1] = t;
}
Obviously uses a temporary variable. Depending on what was meant, that may violate the "in place".
Okay, after a couple more minutes, here's another:
for (i = 0; i < 2; i++)
{
ary[i] += ary[5-i-1];
ary[5-i-1] = ary[i] - ary[5-i-1];
ary[i] -= ary[5-i-1];
}
Again, assuming a 5 element array. No memory aside from the array used, though more (simple arithmetic) operations used.
Oh, shit, hey... Does this work?
for (i = 0; i < 2; i++)
{
ary[i] ^= ary[5-i-1];
ary[5-i-1] ^= ary[i];
ary[i] ^= ary[5-i-1];
}
Seems to. I'm not that knowledgeable, so I don't know this, but I get the sense that binary manipulations may be faster than arithmetic.
Also, I expect things like the 5-i-1 to get evaluated once and for the compiler to not bother calculating it again. If this were a concern, then storing the result in a temporary variable might make sense, depending on the overhead (and whether this again violates "in place").
Critiques, please?
Oh, clever.
But now future courts can point to your post to show that the idea was common or at least public knowledge, empowering stylometric identification deniability in cases of plausible framing.
The Syrian civil war is one of the main topics. The other, arguably primary main topic is Apple's censorship. The sub-topic being discussed under Apple's censorship was platforms and social pressure. The sub-topic underneath that was Internet Explorer as an example of such. To think of IE and the civil war as a dichotomy is a mistake, though I certainly also feel the emotional impact of contrasting the two.
I do choose to be how I am, and I do catch flak for being different. That flak is social pressure.
Maybe you don't remember the days before Open Office, receiving important documents you couldn't read or needing to create important documents that you couldn't make without Microsoft software. Maybe you don't remember how many websites were IE-specific, or how it was business suicide to build a site without catering to the IE userbase. Do you think that those pressures weren't real?
You probably care less. It sounds like you don't have to interact in a business environment and maybe you don't have many friends who want to be in touch via Facebook- Oh, but you do use Facebook. Do you also build websites? When did you start web surfing? IE was a thorn in the sides of everyone who wanted a better browser, but folks had little choice except to deal with it -- that's social pressure. You don't have to worry about IE or Office now. It sounds like you didn't experience these things. And the one example of extant pressure, Facebook, you are using. So maybe it's hard for you to understand. Look around, though. There are plenty of other normative things that society smooths the way for, and which swimming against is damned hard.
Don't let your disdain for haughtiness distract you when you think you've caught whiff of it. There's a real issue here.
Even almost completely spelled out it's hard to get.
If each bandit takes a single bean from each villager, they will have only done 1% harm, and so they'll feel morally comfortable. But there are 100 bandits, which means each villager still loses their entire 100 bean meal.
That's the point. Even if you do only a little harm to others in your quest for self-satisfaction, it still adds up to others suffering substantially.
Did anyone else miss this?
Were you around for most of this curve? Did you find that time pleasant?
That's reassuring. I'll have to look at the issue in more depth.
The primacy of apps over web is something to consider. That is, apps are more prominent and more capable.
Okay, granted, it depends on context.
Within the realm of Apple systems that run only apps we have "favoring complete obedience or subjection to authority as opposed to individual freedom" and "the act or practice of supervising the manners or morality of others".
Part of the problem is that opt-in commercial systems become de facto social requirements. Internet Explorer, Office, Facebook, LinkedIn, smartphones... It's hard to navigate society without opting in. I use none of these things, and having opted out puts pressure on me. People around me think I'm weird (because I am strange, I am unusual and hard to understand) and they feel judged by my refusing to do what they do (this is similar to how just being a vegetarian is threatening to others) and that puts strain on my relations.
So I'm a component of a larger organism, society. What society chooses, whether enforced intentionally, using written rules and men with guns, or enforced incidentally, by the fact of social pressure, is what I am subject to. If society ignorantly opts to relinquish freedom by adopting some corporation's politically- and morally-constrained walled garden, they apply that authoritarianism and censorship to me as well.
I'm still pissed off about Internet Explorer.
You reject the quality and/or political message of the app, but miss the issue that Apple alone gets to say what's appropriate. Apple's authoritarian censorship is a "political game".
A belittled as we may want to think of it ("silly little platform"), it's actually big. You can reach a lot of people through Apple apps.
It's hard for most to understand the harm of having a corporation, a single entity decide what's acceptable.
And it's especially hard for an overwhelming majority to grasp the concept of distributed, incremental contribution to problems and how one's individual actions play in.
Couple the difficulty of grasping this concept with the difficulty of knowing that there's harm being done in the first place and who can you expect to take the right actions except only the smartest?
It seemed like over the top, effusive behavior, but that didn't make sense to me in the context of what seemed to me Linus's history of being an effective leader. I had to investigate more closely. It looked at first like it was the same as the vitriolic feeling-blatting that de Raadt does. And that was disappointing.
But given the context you provide it makes more sense. Flogging with an edge of contempt might in fact be an effective tool for efficient management with such a large and public team. So long as it's done right.
Looking at the chain of emails I see that the contempt is for the thinking and the behavior. Failing to uphold the sanctity of the interface, blaming userspace, continuing to fail to own the error. Mistakes and mistaken thinking that threaten the method and operation of Linux kernel development. But it's the behavior and thinking that are contemned, never the person. (This is what I mean by an "edge" of contempt.) And this is an important distinction to make, and one that de Raadt frequently fails at. de Raadt conflates misbehavior or stupid thinking with the person's being valueless and so lashes out at the person. It's the thinking or behavior that needs stomping on, not the person. If you confuse the two, you end up attacking people instead of mistakes, which brings too much collateral damage. Distinguishing behavior you want eliminated from the actors themselves makes the difference between building a culture of hate and domination as you have with OpenBSD and a culture of tough-as-nails get-it-done as you have with Linux.
There may be an excess of references meaningful only to small ingroups. And that is certainly worthy of fighting against. (And I mean small ingroups inside the already small audience of geeks interested in cutting-edge stuff.)
This particular situation may not be the best to rail against, however. The Duke Nukem 3D references turn out to be valuable within the target audience. (Target audience being all of us computer nerds.)
Duke Nukem 3D is ... seminal.
But, yes, otherwise I agree that references should be kept as meaningful and inclusive of the overall target audience, rather than degenerating into having ingroup-only usefulness, serving just the aging population or any such group (conceivably specific tech, younger age, specific game, etc.).
Point taken about shame.
He seems unwell to me, too. But he must be sufficiently well functioning to continue to afford a computer and a net connection. I'm curious as to how the story pans out.
What happens if you run a legitimate DNS server and a botnet spoofs source IPs in DNS requests to launder and amplify their attack by reflection off you (and countless other DNS servers)?
I've been seeing this come through my system and I don't yet have the sophistication to filter out the attacks. Not that I'm asking to be blacklisted, but ... I should be blacklisted.
Edge filtering sounds like an important thing to implement.
What about general egress filtering? How feasible is that?
Speak of the devil.
And he comes and shames himself.
This is not exactly what the OP had in mind.
Fast removal may be a requirement that email anti-spam systems don't have, but that doesn't invalidate DNS as a delivery mechanism. You can update your listing at whatever frequency you see fit and you can set low TTLs on the DNS entries. As it turns out, XBL sets a 35 minute TTL. SpamCop's SBL sets 15 minutes.
I think you're making a case against using a DNSBL, but I'm not sure how this point supports that.
I'm imagining something like how the XBL is run. Spamhaus is the aggregating, trusted third party. CBL and its multiple hosts, and NJABL and its multiple hosts, and possibly other providers collectively submit attack reports. Spamhaus publishes the result.
In any case, the exact delivery mechanism isn't as much the point as your more general idea is the point. The idea of facilitating individual systems in reporting DDoS attackers, aggregating the results, and publishing the aggregation is a good idea. I saw it as a mirror in essence of XBL etc.
The aggregated list should be data you can analyze and include as you see fit, not a judgement by the publisher, as if the publisher were the authority on whether reports are accurate. The list should state n systems have reported i address as attacking them within t time frame. The list subscribers should be able to score addresses by their own criteria.
Malicious reports by individual systems would be easy to ignore when compared to the many reports of systems actually being attacked. However, the list aggregator would do well to have some kind of trust relationship with the reporters, that is, having some additional verification of the reporters' trusthworthiness. I imagine a scenario where open reporting is subverted by a botnet directed to falsely report attacks.
"Backchannel" availability does seem like it would be a concern, but I don't know enough to speak to it.
That's simplistic.
Autonomous systems should have the ability to publish opinion and the ability to filter.
"Censoring is never right" as a response to reasonable filtering is like saying, "Every user should receive and read through all their spam."
Excellent idea.
You have described the XBL.
The Spamhaus XBL, or "Exploits Block List", is a DNSBL (DNS-served blacklist) that lists IP addresses of systems known to be infected or otherwise being used by malicious parties. ("The XBL is an automatic system whose detectors need to receive email (spam, worms, etc.) directly from the IP address so the connection data can be analysed to determine if it's a proxy or virus-spewer.") The blacklist is developed in a way primarily to be useful in reporting systems exploited to send spam, but the idea is exactly what you're referring to.
Are you saying that surgeons do more to benefit others than mechanics? Maybe at least you're saying mechanics do more to benefit others than the unemployed? Bothering to say these things means you are ultimately concerned with the what these occupations or people are achieving: benefit to humanity. Which means the thing really being valued is humanity itself. Distilled, it's actually sentience, minds perceiving reality, experiencing happiness or suffering. You care about the welfare of minds.
Even dogs, for example, have minds, though, it's not just humans. You care about whether a dog is suffering or happy. If a dog were trapped in a burning house and you could safely let it loose, you would. What useful skill does that dog have? Do they benefit humanity more than unemployed hipsters?
Maybe you're inclined to make an argument that dogs benefit humanity so you can try to defend the idea further. What if you had a dog that was dangerous to all other people and animals, but it was happy being kept in a small cage by itself? It more or less lacks value at that point, but would you really feel good about killing it?
That seems a simplistic response, though, doesn't it? There's a lot of value to be gained in making reference to a similar subject, at least in that the referenced subject can serve as an example of how such things might tend to be. Also it serves to clarify, where a more abstract description might be hard for people to understand. I think I'm saying something constructive here, but it might be hard for you to grasp. Drawing parallels to something else could make it much easier for you to get. But, yeah, only so long as you know the reference.
You seem upset. Maybe you find unfamiliar references hurtful in some way? Exclusive? Exclusion is in fact a bad drawback for failed references. It's divisive of communities, resulting in reduced sense of valuation for those in the outgroup.
If it's any benefit to you, I don't devalue you because you're unfamiliar with Duke Nukem 3D. Heck, I'm an old fart and I never played it. Well, except multiplayer once at a friend's party. It was fun.
Your rhetorical style opposes your own goals, I should point out. You might lead a more enjoyable life if you learn to manage your emotional outbursts and instead make your communication intentional. Serving your feelings by blatting them out may feel good in the short term, but don't be fooled into thinking it's how you ought to behave and that it will help you feel good in the long run.
People blather on one way or another about climate change.
I think we should keep track of who holds which positions.
Though maybe we'll all be too busy with suffering the effects of global warming to have time to tell people I Told You So.
Leads me to wonder what the prediction markets say on climate change.
Because contempt for people causes all our lives to worsen. Have contempt for what people do, go ahead, but distinguish between that and the persons themselves.
It's very subtle and hard to understand. But I don't wish you harm because you can't figure it out.
Unshared context failure is something you'll run into, too. Indeed, you're already running into it, but on the converse side of how one might usually think of it.
What's the general solution? Always link to information about the context? And maybe the linked resource can give brief explanations and in turn link to related memes from other generations and cultures? A kind of inter-cultural / inter-generational meme translator?
Correct. Rather, it means what I actually think it means.