I think that just means you're a zealot of functional programming; your expectations are wrong. If the language isn't fully functional in nature, don't expect key patterns like map() to work elegantly. They're hacks at best and not really part of the core language design; this is excellent proof of that.
You're just validating your own arbitrary decision to use that integer set. IEEE 754 defines positive and negative infinity separately. (However, if you look at the other comments below this one, you'll see that I argued for exactly this, reassigning the largest negative value to NaN in a signed integer format—but only for select situations.)
I wasn't thinking of the highest bit, just the highest value. As I'm guessing you already know, because of the nature of two's complement there's an asymmetry in positive and negative numbers (2^15 - 1 positive values, 2^15 negative values, and zero) resulting in one value that could easily be discarded; assigning this single value to an error would have an additional benefit of catching counter overflow. Certain older computers like UNIVACs actually used another system called one's complement, where the most significant bit was a negative sign, and numbers otherwise counted up from zero—this had the odd result of leaving a "negative zero" in the numbering system (which IEEE floating point numbers also have); this could also have been reassigned to NaN.
Yes, I agree that try/catch blocks are annoying from the perspective of people writing elaborate flat code—but they do force the programmer to actually handle errors instead of letting them propagate. In certain contexts this is vitally important. A programming language that permits NaNs is essentially making the decision that the division's failure is Not A Problem by default, which is a key point of contention: are we developing for a safety-critical application where a failure to test properly could have dire consequences? What if someone forgets to check for NaN values in the speed control system in an automobile? Is that better or worse than the program aborting entirely? (Almost certainly worse, as it's more likely there would be management code for catching and fixing that!)
So I would argue that, say, MATLAB or Lisp should support NaNs, but definitely not Ada, and I guess now I'm unsure about the C languages again.
Yes, exactly like how the number 1 is simultaneously true and false due to the ambiguous nature of your local pizzeria's ingredients, which may or may not include pepperoni.
It was a big story on Slashdot years ago. A similar cascade of discussions resulted. Let's think for a moment.
If you don't want to code to prevent a division by zero error in any situation where NaN isn't handled elegantly, you have an easy alternative, which is a try/catch structure. Adding NaN is basically just a magic error value, like -1 being returned on failure for C functions (example: failing to find a substring returns -1 as the index in many languages.) This practice is considered Generally Bad And Inadvisable by structured programming dogmatists, as it encodes control information inside of a content signal and potentially obfuscates the meaning of the program (and, in languages like Python, where negative indices have meaning, it can cause lots of subsequent problems.)
To keep things consistent, I would argue that NaN doesn't have a place in modern high-level languages that subscribe to structured programming paradigms; a division by zero is an error that occurs when data is improperly initialized or collected, and letting errors like this (a) propagate by ruining subsequent expressions and (b) potentially get displayed to the user is the vice of a PHP programmer who would rather just be told his or her code works rather than know if it was actually doing what was intended.
On the other side of things, I do actually agree with you and would propose that signed integer formats should reserve 0x8000000 (whatever the negative maximum value is, that one extra number you can't fit into the positive side anyway due to the asymmetry of two's complement) for NaN, because exception-handling invariably means unnecessary stack frame manipulation when used in C++, and programmers in low-level languages like the C family should have an alternative, just like they do with string search functions.
More importantly is what happens when you graph it: the limit of 1/x as x approaches zero is discontiguous. It's positive infinity when descending on the positive numbers, but negative infinity when ascending from the negatives. No one value can represent both!
The summary is misleading; the act will probably pass on Tuesday, and the provisions will be restored. It's depressing how completely dishonest this story is.
Yep, you've hit it on the head: the fashion world heavily depends on hyperspecific brands. A parent company may own an immense number of outlet identities that aim to cater to a specific submarket. Hot Topic is a good parent company for ThinkGeek because their model is already built around faddish, meme-driven trends (as you said), but the two target audiences have little enough overlap that this will be a substantial diversification to their marketing reach.
It's exhaustingly parodical—and entirely targeted at those who are sick of the book. Jasper Fforde has been hailed as a suitable compatriot to Douglas Adams and Terry Pratchett. Judging by covers, etc.
...well, maybe they weren't happy with the specifics of the Nationalist-Socialist platform. (I bet it was the anti-smoking mindset.) It's not quite as if neo-Nazis have a monopoly on profound racism, or even a monopoly on holocaust denial. Sometimes it's just desirable for the sake of some local variety of nationalism to pretend the Jews weren't as abused during World War 2 as they actually were.
Right, which is why I added the second sentence. My point is that it could've been phrased in a manner that avoids implying Moscow is a trap, e.g. "unable to return home." I'm sure there are schools of propaganda training that are more subtle and don't pooh-pooh that sort of structuring, but at the very least it implies some restraint on the parts of the authors away from being a proverbial anti-US slant.
I'd really love to see some examples—I've been watching demo competitions for years and I can't recall any efforts that really focused on authentic portrayal of humans.
Yes, I'm very aware that demoscene groups form (often very excellent) game companies, but I don't think any of those endeavours have resulted in products with anything like the quality shown in the video.
What does that really matter? Almost by definition, a demoscene prod involves clever choices in what to make and display on screen in order to achieve an effect. I'm pretty confident the winners of the competitions for the last few years (a) don't have the same flexibility for artists working with their demo engines as Square-Enix does and (b) would never be able to assemble enough assets and people to do the facial expression stuff with anywhere near the same quality (an area in which, AFAIK, Nvidia has been almost entirely pioneering.) The achievement of this video isn't diminished by the achievements of the scene, nor vice-versa.
I think that just means you're a zealot of functional programming; your expectations are wrong. If the language isn't fully functional in nature, don't expect key patterns like map() to work elegantly. They're hacks at best and not really part of the core language design; this is excellent proof of that.
You're just validating your own arbitrary decision to use that integer set. IEEE 754 defines positive and negative infinity separately. (However, if you look at the other comments below this one, you'll see that I argued for exactly this, reassigning the largest negative value to NaN in a signed integer format—but only for select situations.)
A vector is... really not an applicable answer, as fun as vectors are! We're only working with one dimension here.
I wasn't thinking of the highest bit, just the highest value. As I'm guessing you already know, because of the nature of two's complement there's an asymmetry in positive and negative numbers (2^15 - 1 positive values, 2^15 negative values, and zero) resulting in one value that could easily be discarded; assigning this single value to an error would have an additional benefit of catching counter overflow. Certain older computers like UNIVACs actually used another system called one's complement, where the most significant bit was a negative sign, and numbers otherwise counted up from zero—this had the odd result of leaving a "negative zero" in the numbering system (which IEEE floating point numbers also have); this could also have been reassigned to NaN.
Yes, I agree that try/catch blocks are annoying from the perspective of people writing elaborate flat code—but they do force the programmer to actually handle errors instead of letting them propagate. In certain contexts this is vitally important. A programming language that permits NaNs is essentially making the decision that the division's failure is Not A Problem by default, which is a key point of contention: are we developing for a safety-critical application where a failure to test properly could have dire consequences? What if someone forgets to check for NaN values in the speed control system in an automobile? Is that better or worse than the program aborting entirely? (Almost certainly worse, as it's more likely there would be management code for catching and fixing that!)
So I would argue that, say, MATLAB or Lisp should support NaNs, but definitely not Ada, and I guess now I'm unsure about the C languages again.
Yes, exactly like how the number 1 is simultaneously true and false due to the ambiguous nature of your local pizzeria's ingredients, which may or may not include pepperoni.
It was a big story on Slashdot years ago. A similar cascade of discussions resulted. Let's think for a moment.
If you don't want to code to prevent a division by zero error in any situation where NaN isn't handled elegantly, you have an easy alternative, which is a try/catch structure. Adding NaN is basically just a magic error value, like -1 being returned on failure for C functions (example: failing to find a substring returns -1 as the index in many languages.) This practice is considered Generally Bad And Inadvisable by structured programming dogmatists, as it encodes control information inside of a content signal and potentially obfuscates the meaning of the program (and, in languages like Python, where negative indices have meaning, it can cause lots of subsequent problems.)
To keep things consistent, I would argue that NaN doesn't have a place in modern high-level languages that subscribe to structured programming paradigms; a division by zero is an error that occurs when data is improperly initialized or collected, and letting errors like this (a) propagate by ruining subsequent expressions and (b) potentially get displayed to the user is the vice of a PHP programmer who would rather just be told his or her code works rather than know if it was actually doing what was intended.
On the other side of things, I do actually agree with you and would propose that signed integer formats should reserve 0x8000000 (whatever the negative maximum value is, that one extra number you can't fit into the positive side anyway due to the asymmetry of two's complement) for NaN, because exception-handling invariably means unnecessary stack frame manipulation when used in C++, and programmers in low-level languages like the C family should have an alternative, just like they do with string search functions.
It's been done. The results were crap.
By "it" I meant the limit; I don't think my phrasing was inaccurate.
More importantly is what happens when you graph it: the limit of 1/x as x approaches zero is discontiguous. It's positive infinity when descending on the positive numbers, but negative infinity when ascending from the negatives. No one value can represent both!
Why, Lenovo, why?! We trusted you! Guh, now I have to go find my old T61 and give it a hug.
The article starts with a picture that suggests it replaces the Esc key. (I can hear your screams of shock and pain from here.)
The summary is misleading; the act will probably pass on Tuesday, and the provisions will be restored. It's depressing how completely dishonest this story is.
Yep, you've hit it on the head: the fashion world heavily depends on hyperspecific brands. A parent company may own an immense number of outlet identities that aim to cater to a specific submarket. Hot Topic is a good parent company for ThinkGeek because their model is already built around faddish, meme-driven trends (as you said), but the two target audiences have little enough overlap that this will be a substantial diversification to their marketing reach.
It's exhaustingly parodical—and entirely targeted at those who are sick of the book. Jasper Fforde has been hailed as a suitable compatriot to Douglas Adams and Terry Pratchett. Judging by covers, etc.
Extending on this, there is at least one book where time travel is invented following the discovery of a recipe for unscrambling eggs.
...well, maybe they weren't happy with the specifics of the Nationalist-Socialist platform. (I bet it was the anti-smoking mindset.) It's not quite as if neo-Nazis have a monopoly on profound racism, or even a monopoly on holocaust denial. Sometimes it's just desirable for the sake of some local variety of nationalism to pretend the Jews weren't as abused during World War 2 as they actually were.
...But it's okay, because he actually died years ago; no one has bothered to check because he continues to emit information.
Vigorous!
Maybe unlimited storage of email text?
I believe at that point the poster child was OpenSSL/SSH, not a kernel.
Right, which is why I added the second sentence. My point is that it could've been phrased in a manner that avoids implying Moscow is a trap, e.g. "unable to return home." I'm sure there are schools of propaganda training that are more subtle and don't pooh-pooh that sort of structuring, but at the very least it implies some restraint on the parts of the authors away from being a proverbial anti-US slant.
I'd really love to see some examples—I've been watching demo competitions for years and I can't recall any efforts that really focused on authentic portrayal of humans.
Yes, I'm very aware that demoscene groups form (often very excellent) game companies, but I don't think any of those endeavours have resulted in products with anything like the quality shown in the video.
And! And: it says Snowden is "trapped" in Moscow, which is not very agitprop-friendly. Workable, but not exactly jingoism.
What does that really matter? Almost by definition, a demoscene prod involves clever choices in what to make and display on screen in order to achieve an effect. I'm pretty confident the winners of the competitions for the last few years (a) don't have the same flexibility for artists working with their demo engines as Square-Enix does and (b) would never be able to assemble enough assets and people to do the facial expression stuff with anywhere near the same quality (an area in which, AFAIK, Nvidia has been almost entirely pioneering.) The achievement of this video isn't diminished by the achievements of the scene, nor vice-versa.