What, you don't think artists want longer copyrights?
Depends on who you count as 'artists'. If you include writers, then actually most of us want shorter copyrights. It gives us a much stronger bargaining position with our publishers if they keep needing more new material because they're unable to make profits from huge back catalogues. Most writers only get a tiny trickle of royalties from books over 10 years old, but for the publishers that's a huge number of small trickles with almost no associated costs.
I suspect it's similar for musicians. If the labels weren't able to keep milking records from the 60's-80s then they'd have a lot more of an incentive to look for new artists to sign...
I'd be more inclined to believe the Republicans would block it. They have a preexisting reason to disagree with things that they support, and in general they have less to gain. The states that have large entertainment industry backing are predominantly democrat. Both parties are in the pocket of big business interests, but they're not always the same big business interests...
Because previously consoles were seriously underpowered for gaming, and were a smaller market than PC gaming. Now, gamer rigs are increasingly uncommon, so people aren't targeting them for games. They're targeting consumer PCs or consoles. In the future, they'll be targeting older PCs - longer upgrade cycles mean that requiring the latest and greatest reduces your target market so much - or consoles, and the console version will be tweaked for the specific hardware config, so is likely to be better.
My last four computers have all been laptops, but I recently built a machine from parts for the first time since about 2003. I wanted a NAS, and none of the off-the-shelf models did what I wanted.
Machines built from parts have always been a niche market. Most people bought pre-built systems and never upgraded them. Now, in contrast, they buy pre-built non-upgradable systems and never upgrade them. As long as there is a part of the market that isn't worth a ready-made product line, there will be a market for components.
The problem is that this is largely incompatible with the nicest form factors. I've disassembled every laptop I've owned. I thought the parts in my 386 were crammed together, but my new MacBook Pro is almost a solid lump of hardware internally. You've been able to get more standardised components for a while, but the price you pay for these is that you need more space when everything is modular. With the trend towards smaller machines, the first thing you sacrifice is modularity.
I want to play [the latest game] with the graphic detail maxed out, am I going to buy a tablet for that or am I going to order my shiny new SSDs and video card and mobo and other components from Newegg?
Now? You'll buy the components. In 10 years time? You'll probably buy the latest console...
At a university, you get to choose your friends from a wide selection including a lot of very intelligent people. You won't automatically find yourself among the best and the brightest, but they're there if you look. Most importantly, they're not all in the subject as you. I studied computer science, but my friends included linguists, engineers, physicists and chemists (no biologists - they never seemed to get out of the lab), and a few other disciplines.
Not just expensive - not that interesting. Quantum computers can't just take algorithms written for classical computers and run them insanely fast, they can run a certain category of algorithm insanely fast. A typical user would be better off with a slightly faster classical computer than an insanely fast quantum computer. For certain applications, a quantum coprocessor might be interesting though,
Well, the problem with the NSA's super-secret quantum computer is that they can't tell other agencies the result of decrypting any message unless they can think of some plausible way of decrypting it without needing a quantum computer. If they did, the world would know that they had a quantum computer and that RSA and related algorithms were totally compromised, and they'd switch to using something else.
Well, maybe not, but the same situation did occur in the second world war - Churchill didn't allow civilians to be warned of German bombing raids, because doing so would have let the Germans know that Enigma was broken.
But that defeats the point. Why 9-character segments? Why not 1-character segments? Then, when each letter has been generated once by your random number generator, you say 'done' and move on. The point of the gedankenexperiment is to show that a true random number generator will eventually produce any sequence, irrespective of whether you ascribe some meaning to that phrase or not. For example, it is just as probable that a monkey would type 'the original submitter is an idiot who misses the point of probability' as it is that they would type 'mfdag gfnaif pwrg kflgsq hmthwrhdga adsfjn fadfm asdfned qemangasd asv'. They are both 70-character strings of lowercase ASCII characters and spaces, and if you have a random number generator set up to produce these with no bias towards letter frequencies then either combination is equally probable. This 'experiment' added an extra step of determinism, which means that it is not an unbiased random number generator, it's a very badly designed program for generating a Shakespeare play.
Someone I know works in a call centre. He recently had the experience that someone who called refused to talk to him or anyone else in the Indian call centre, and insisted on being transferred to a British call centre. The call centre in question was in Wales, and my friend has a Welsh accent...
That's true, although there are a lot of industrial R&D centres around the place. There are also a lot of programming or engineering jobs that have a large CS component. If you're working at somewhere like Google, you'll make a lot more use of the CS background than if you're writing simple database systems for a small business, for example.
No, computer science is not a misnomer. However, saying 'CS is programming' implies that the grandparent has very little understanding of what computer science is. It's like saying 'astrophysics is telescopes'.
Facebook's entire value comes from allowing people to communicate. If you disapprove of Facebook, but create an account anyway, then you are increasing the value of Facebook to other people and are part of the problem. Unless you are a troll or complete social retard who has no friends and makes people actively want to leave a social network when you join...
Saving a file on the computer is easy. Click on a link to a PDF and Safari will download it. Double click on it and Preview will open it. This is the behaviour that users expect. Double click on it and OS X puts up a warning box telling them that it's the first time they've run this application that they downloaded from the Internet? That's not. Especially for normal users who won't download any applications from the Internet, so won't have seen that dialog before...
How does this get past the download protection though? Any executable that is saved by Safari or Mail.app will have the source location saved in the metadata. When you first run it, the system tells you that it's an executable that you've not run before and asks if you meant to. It never shows this for pdf files[1] so you know that it is definitely something malicious.
[1] Depressingly, it does show this warning when you open a UNIX shell script in TextEdit if it has execute permission. It also shows when you open a Windows application, irrespective of whether or not you have anything installed that will actually run it.
Generally, these agreements can only be enforced if both parties gain something. In the case of the car park, you gain the right to park there. If you don't accept the terms, then you are trespassing by entering the car park. In the case of a web server, you are gaining a limited copyright license. Your web browser is making a copy of someone else's copyrighted material, so you need a license. Depending on your jurisdiction, this license may or may not be implicitly granted by placing the material on a public web server.
Yes it is. It is part of the C specification, which defines the language and the standard library. The JavaScript specification also defines a standard library, containing Object, Array, String, and a few other things. DOM, however, is not part of the standard JavaScript language, it just happens to be the most popular API used with JavaScript. You can find V8 or SpiderMonkey in a lot of different applications without DOM, but with the core JavaScript APIs.
Neither is particularly better/worse than the other, just different
I think that depends on the problem. There are a lot of cases where one is better, and if you have the other then you end up creating a hacky implementation of the one you really wanted.
How does one establish whether methods/vars are public/private/protected?
One doesn't, but that's fairly common in object oriented languages. Very few actually provide this kind of functionality, and generally they're the ones that don't fully support object orientation.
Or inheritance?
JavaScript provides a single chain of prototype inheritance. Any slot lookup is checked along the prototype chain. So, for example, you can set a method in an object, use it as a prototype, and every object will see that method, unless it has its own set. You can then use one of these objects as a prototype and build a longer chain.
To me, the weird misappropriation of the function keyword to build objects,
Actually, the problem is the new keyword, which has just plain crazy semantics. JavaScript is very Self-like, but provides Java-like syntax, which is confusing. When you use the new keyword, it calls the function with its this variable set to a new clone of the function object's prototype field.
If you want to implement something like a class, then you should not do anything in the constructor at all. You should generate a prototype for the class, which has the methods defined and the instance variables set to default values, and set it as the constructor's prototype. When you invoke the constructor (using new ), you'll get a new object that is an instance of your 'class'. You can then add methods to the 'class' and have them appear in the instance, just like in any other object oriented language.
the verbosity of the code to express objects,
It's actually not that verbose when used correctly, but you seem to be doing it a slightly strange way.
and the lack of inheritance, etc.
As I said, JavaScript does have inheritance and uses it extensively. You seem to be confused because it has inheritance between objects, not just between classes.
are primitive compared to Actionscript 3, to Java, to PHP5, to C++, and a variety of other languages I've dealt with.
Wow, you really go out of your way to pick horrible languages. In comparison to that list, JavaScript doesn't seem so bad...
Don't replace it with another language, replace it with a well-defined bytecode. Something like the Smalltalk-80 or Self bytecode, for example, which is well understood and can be the target for a whole family of languages. As long as it has late binding / dynamic dispatch and doesn't allow pointer arithmetic, it should be fine.
I bet Adobe would be very happy if they adopted Flash's ActionScript byecode as the standard, since they have a lot of tools for creating it, and there are also open source ones, so it wouldn't even be a terrible choice. Flash's bytecode has the nice property that it already supports class and prototype-based object orientation.
What, you don't think artists want longer copyrights?
Depends on who you count as 'artists'. If you include writers, then actually most of us want shorter copyrights. It gives us a much stronger bargaining position with our publishers if they keep needing more new material because they're unable to make profits from huge back catalogues. Most writers only get a tiny trickle of royalties from books over 10 years old, but for the publishers that's a huge number of small trickles with almost no associated costs.
I suspect it's similar for musicians. If the labels weren't able to keep milking records from the 60's-80s then they'd have a lot more of an incentive to look for new artists to sign...
I'd be more inclined to believe the Republicans would block it. They have a preexisting reason to disagree with things that they support, and in general they have less to gain. The states that have large entertainment industry backing are predominantly democrat. Both parties are in the pocket of big business interests, but they're not always the same big business interests...
Because previously consoles were seriously underpowered for gaming, and were a smaller market than PC gaming. Now, gamer rigs are increasingly uncommon, so people aren't targeting them for games. They're targeting consumer PCs or consoles. In the future, they'll be targeting older PCs - longer upgrade cycles mean that requiring the latest and greatest reduces your target market so much - or consoles, and the console version will be tweaked for the specific hardware config, so is likely to be better.
My last four computers have all been laptops, but I recently built a machine from parts for the first time since about 2003. I wanted a NAS, and none of the off-the-shelf models did what I wanted.
Machines built from parts have always been a niche market. Most people bought pre-built systems and never upgraded them. Now, in contrast, they buy pre-built non-upgradable systems and never upgrade them. As long as there is a part of the market that isn't worth a ready-made product line, there will be a market for components.
The problem is that this is largely incompatible with the nicest form factors. I've disassembled every laptop I've owned. I thought the parts in my 386 were crammed together, but my new MacBook Pro is almost a solid lump of hardware internally. You've been able to get more standardised components for a while, but the price you pay for these is that you need more space when everything is modular. With the trend towards smaller machines, the first thing you sacrifice is modularity.
I want to play [the latest game] with the graphic detail maxed out, am I going to buy a tablet for that or am I going to order my shiny new SSDs and video card and mobo and other components from Newegg?
Now? You'll buy the components. In 10 years time? You'll probably buy the latest console...
Capacitor-based FeRAM is basically ferrite core memory, but made incredibly small. This is different, as the summary explains.
Unless you happen to have a massively parallel application that needs to serve a huge number of concurrent users. Like, say, a database. Or a web app.
At a university, you get to choose your friends from a wide selection including a lot of very intelligent people. You won't automatically find yourself among the best and the brightest, but they're there if you look. Most importantly, they're not all in the subject as you. I studied computer science, but my friends included linguists, engineers, physicists and chemists (no biologists - they never seemed to get out of the lab), and a few other disciplines.
Not just expensive - not that interesting. Quantum computers can't just take algorithms written for classical computers and run them insanely fast, they can run a certain category of algorithm insanely fast. A typical user would be better off with a slightly faster classical computer than an insanely fast quantum computer. For certain applications, a quantum coprocessor might be interesting though,
Well, the problem with the NSA's super-secret quantum computer is that they can't tell other agencies the result of decrypting any message unless they can think of some plausible way of decrypting it without needing a quantum computer. If they did, the world would know that they had a quantum computer and that RSA and related algorithms were totally compromised, and they'd switch to using something else.
Well, maybe not, but the same situation did occur in the second world war - Churchill didn't allow civilians to be warned of German bombing raids, because doing so would have let the Germans know that Enigma was broken.
But that defeats the point. Why 9-character segments? Why not 1-character segments? Then, when each letter has been generated once by your random number generator, you say 'done' and move on. The point of the gedankenexperiment is to show that a true random number generator will eventually produce any sequence, irrespective of whether you ascribe some meaning to that phrase or not. For example, it is just as probable that a monkey would type 'the original submitter is an idiot who misses the point of probability' as it is that they would type 'mfdag gfnaif pwrg kflgsq hmthwrhdga adsfjn fadfm asdfned qemangasd asv'. They are both 70-character strings of lowercase ASCII characters and spaces, and if you have a random number generator set up to produce these with no bias towards letter frequencies then either combination is equally probable. This 'experiment' added an extra step of determinism, which means that it is not an unbiased random number generator, it's a very badly designed program for generating a Shakespeare play.
Yup. Execution seems like a good solution there too...
Someone I know works in a call centre. He recently had the experience that someone who called refused to talk to him or anyone else in the Indian call centre, and insisted on being transferred to a British call centre. The call centre in question was in Wales, and my friend has a Welsh accent...
That's true, although there are a lot of industrial R&D centres around the place. There are also a lot of programming or engineering jobs that have a large CS component. If you're working at somewhere like Google, you'll make a lot more use of the CS background than if you're writing simple database systems for a small business, for example.
No, computer science is not a misnomer. However, saying 'CS is programming' implies that the grandparent has very little understanding of what computer science is. It's like saying 'astrophysics is telescopes'.
Facebook's entire value comes from allowing people to communicate. If you disapprove of Facebook, but create an account anyway, then you are increasing the value of Facebook to other people and are part of the problem. Unless you are a troll or complete social retard who has no friends and makes people actively want to leave a social network when you join...
Saving a file on the computer is easy. Click on a link to a PDF and Safari will download it. Double click on it and Preview will open it. This is the behaviour that users expect. Double click on it and OS X puts up a warning box telling them that it's the first time they've run this application that they downloaded from the Internet? That's not. Especially for normal users who won't download any applications from the Internet, so won't have seen that dialog before...
How does this get past the download protection though? Any executable that is saved by Safari or Mail.app will have the source location saved in the metadata. When you first run it, the system tells you that it's an executable that you've not run before and asks if you meant to. It never shows this for pdf files[1] so you know that it is definitely something malicious.
[1] Depressingly, it does show this warning when you open a UNIX shell script in TextEdit if it has execute permission. It also shows when you open a Windows application, irrespective of whether or not you have anything installed that will actually run it.
Generally, these agreements can only be enforced if both parties gain something. In the case of the car park, you gain the right to park there. If you don't accept the terms, then you are trespassing by entering the car park. In the case of a web server, you are gaining a limited copyright license. Your web browser is making a copy of someone else's copyrighted material, so you need a license. Depending on your jurisdiction, this license may or may not be implicitly granted by placing the material on a public web server.
Yeah, and printf() isn't technically part of C.
Yes it is. It is part of the C specification, which defines the language and the standard library. The JavaScript specification also defines a standard library, containing Object, Array, String, and a few other things. DOM, however, is not part of the standard JavaScript language, it just happens to be the most popular API used with JavaScript. You can find V8 or SpiderMonkey in a lot of different applications without DOM, but with the core JavaScript APIs.
Neither is particularly better/worse than the other, just different
I think that depends on the problem. There are a lot of cases where one is better, and if you have the other then you end up creating a hacky implementation of the one you really wanted.
How does one establish whether methods/vars are public/private/protected?
One doesn't, but that's fairly common in object oriented languages. Very few actually provide this kind of functionality, and generally they're the ones that don't fully support object orientation.
Or inheritance?
JavaScript provides a single chain of prototype inheritance. Any slot lookup is checked along the prototype chain. So, for example, you can set a method in an object, use it as a prototype, and every object will see that method, unless it has its own set. You can then use one of these objects as a prototype and build a longer chain.
To me, the weird misappropriation of the function keyword to build objects,
Actually, the problem is the new keyword, which has just plain crazy semantics. JavaScript is very Self-like, but provides Java-like syntax, which is confusing. When you use the new keyword, it calls the function with its this variable set to a new clone of the function object's prototype field.
If you want to implement something like a class, then you should not do anything in the constructor at all. You should generate a prototype for the class, which has the methods defined and the instance variables set to default values, and set it as the constructor's prototype. When you invoke the constructor (using new ), you'll get a new object that is an instance of your 'class'. You can then add methods to the 'class' and have them appear in the instance, just like in any other object oriented language.
the verbosity of the code to express objects,
It's actually not that verbose when used correctly, but you seem to be doing it a slightly strange way.
and the lack of inheritance, etc.
As I said, JavaScript does have inheritance and uses it extensively. You seem to be confused because it has inheritance between objects, not just between classes.
are primitive compared to Actionscript 3, to Java, to PHP5, to C++, and a variety of other languages I've dealt with.
Wow, you really go out of your way to pick horrible languages. In comparison to that list, JavaScript doesn't seem so bad...
Don't replace it with another language, replace it with a well-defined bytecode. Something like the Smalltalk-80 or Self bytecode, for example, which is well understood and can be the target for a whole family of languages. As long as it has late binding / dynamic dispatch and doesn't allow pointer arithmetic, it should be fine.
I bet Adobe would be very happy if they adopted Flash's ActionScript byecode as the standard, since they have a lot of tools for creating it, and there are also open source ones, so it wouldn't even be a terrible choice. Flash's bytecode has the nice property that it already supports class and prototype-based object orientation.
Cleaning up the blood and entrails from your balcony isn't much of an improvement...