Q: Even if the motion picture and other industries come up with a system to protect this content with a broadcast flag, the security technology will just be broken into and made worthless in a very short time. Given that, whats the point?
MPAA answer: It is unfortunate that some people may attempt to illegally hack or break into this security system. However, even if a few are successful, the flag will not be worthless. Most people are honest and will not attempt to circumvent the flag.
So if most people are honest and will not attempt to circumvent the flag, why not just trust the people not to do the horrible, dishonest deeds this measure wants to prevent?
The server can't measure the latency all on it's own. How can tell what's latency and what's just the user thinking about his next move? It needs to know when the client received his opponent's move to know when to start his clock.
I have a related problem: I'm the author of an open source client for a chess server. Now, in chess, time is an important thing, since each player is given a certain amount of time for the game and when that runs out, he loses. The problem is, how do you account for lag when sending moves over the internet?
In the young days of internet chess, there was no compensation for lag, so whoever had a faster connection, had the advantage. Nowadays, most chess servers have implemented what is called timestamp or timeseal. While the specific algorithms differ, the idea is the same - the client somehow authenticates itself against the server and tells it that it's a trusted client. From this point, it simply counts the time it takes for the user to make his move and sends the time along with the move.
The problem with that is that the authentication method and algorithm have to be kept proprietary, since otherwise, anyone can claim to be a trusted client and always say that it took him 0 seconds to make the move. My problem with that, is that I don't like an important part of my code to be closed source (since I agreed not to release it when I was given the method/algorithm description).
The question is, is it possible, and if so, how, to implement move timestamping which would not rely on the server trusting the client? Perhaps by obtaining the time in an encrypted form from a (custom made) NTP server and then sending it to the chess server, which can talk to the NTP server and have it decrypt the time?
If I could come up with such a protocol, I would suggest it to the server guys, who would gladly implement it, since it's much more secure (since the client doesn't need to be trusted anymore, there's no point in hacking it), and my life would be much easier, since I wouldn't need to distribute obfuscated, proprietary pieces of software along with my open software.
I seriously don't understand. Ok, so you won't be able to modify the source, recompile and run the program (or you will be able, but won't be able to access special features which are only enabled if your program is signed). But surely someone will write and sign a VM soon enough. That VM will allow access to all the features and run any kind of code. Will I have to sign my Java program to get the already signed JVM to run it? I don't think so. It will kill Linux? Surely someone will write a signed emulation layer which will allow the Linux kernel to run as is on the new Palladium enabled CPU. It'll perhaps run somewhat slower, but it certainly won't kill Linux.
How can the PC stay a turing complete platform while at the same time disallowing certain actions? As long as I can access bytes within a file and put pixels on the screen, how can a piece of hardware prevent me from decoding and playing a copy protected movie?
Knowing a third of what is just those 4 books will make you very knowledgeable. Knowing all what is in them will make you a very valuable expert in IT/CS.
Well, they did to that. And won the "Ultimate builder Competition", and it got sent to the International Space Station. Not sure it works in the presence of gravity though:-)
Here's Sun's article on this. Apparently, they managed to squeeze a JVM with multithreading (although no garbage collection) into 16K. Who said Java was big and bloated?:-)
A funny quote:
The robot that they built for the International Space Station, called Jitter, floats around collecting particles of debris. So even though it doesn't have a garbage collector, it is one!
I mean, take The Matrix: great film (IMHO). But vision - yeah, I can just see a near-future where man and machines fight a war, the machines win and enslave us all as power generators while building a convincing virtual world. Oh yeah, and the science holds up on that as well. Pfffft.
Your mind is one of those having trouble letting go. Of course all those things would seem unlikely to you - since you're living in the matrix. This is a key point in the movie - you can't argue about how believable it is, because you don't know whether you live in 2200 inside the matrix or in 2002 in the real world.
Class comments: describe the purpose of the class. If applicable, give sample usage.
Method comments: describe the purpose of the method. Describe how it behaves when given "interesting" (potentially bad) values (doing this one will also make sure that you are handling those values somehow).
In-code comments: If you don't want to break relatively unrelated parts of the code into different methods, put several empty lines between them and comment what each part does. Comment and explain anything that isn't obvious.
It's pretty obvious that the government can't fund/subsidize proprietary software (except for military purposes), because it's the public's money they're spending, so the public deserves to get the code their money was spent on. The question is which open source license it should be under. The way I understand it is that there are two points of view on this.
BSD style license
Licensing it under a BSD style license will make it easier for various companies to take the code, extend it and then sell it back to the public. The downside is that unless the stuff added wes important and significant, or the company makes sure to charge proportionally to it importance, the public is paying twice for the same software. The upside is that in order to develop those extensions, the companies will have to hire developers, giving back to the public, in a way. Obviously, however, the amount money spent on those developers will be less than what the company intends to charge. So in the end, the public usually ends up paying less than twice, but definitely more than once for that software.
GPL
With the GPL, the public basically says "We've payed for this software. You want to use it? You'll have to pay for it too, in the form of showing us any extensions you decide to make". This way, there's no way to screw the public and make them pay again for software they've already payed for. On the other hand, that software is then much less likely to be used commercially, so any extensions might not end up getting developed at all.
Since I don't tend to trust companies (especially not Microsoft) to charge properly for adding a pretty button to software I payed for and then selling it to me, I prefer the GPL, but it's obvious that both licenses have their advantages and disadvantages in this scenario.
I really don't see how limiting adult oriented websites to specific domains hurts free speech. These sites would still be allowed to exist and operate, but they will be easily identifiable as adult oriented.
There are already many limitations on free speech which don't really hurt it and are considered "good" by practically everyone. Limiting porn (both selling and making) to 18 comes to mind.
.NET platforms will win over from java because.NET compilers to.EXE and.DLL files which look and seem to work just like the ones you are used to.
I'm sorry, but this is a load of bull. Download and run the windows version of this application and tell me how you would figure out (unless you're a Java developer) that the application is in Java. And no, it's not even compiled to native windows code (something you can easily do with Excelsior's JET compiler) OR requires you to install or configure anything except the application.
Another thing you are missing is that client side is not everything, and in fact, Java is currently more popular on the server side, where it doesn't matter whether you run "java HelloWorld", or "HelloWorld.exe" (actually, it'd be more like "./helloworld" on most servers:-) )
And Sun really has a double standard there: when Apple exposes all their native platform APIs to Java, that's fine. It's just not fine when Microsoft does it.
Uff, how many times must this be explained - it's ok to expose any API to Java code - it's not ok to put that API in the java.* libraries fooling developers into thinking their code is pure Java when it isn't.
Imagine someone adding their own functions to the C standard library and advertising them as standard, portable C. How would you feel then?
What you should have done instead was install SavaJE XE on it, which is a Java operating system which fully supports Java 2 and runs much faster than any JVM that runs on top of an operating system.
Swing 1.1.1 works beautifully under JDK1.1. See my URL for a JDK1.1 fully compatible application which uses Swing.
There is a bug report on Sun's bug reporting database claiming that Swing doesn't work on PersonalJava because Swing checks for the existance of some security related class to find out whether it runs under 1.1 or 1.2 and PersonalJava is essentially 1.1 with 1.2 security. Despite this bug, I've seen small demo applications using swing running under PersonalJava.
Note that all new iPAQs come with Insignia's Jeode JVM preinstalled.
We've developed a very fast map displaying application (the map is rendered on the client, with antialiasing, so it looks really well, and the amount of data to transfer to the client is very small), originally meant for the web, but now we've been given the task of implementing it for PDAs. While we plan a whole different architecture for the lower end PDAs (Palms etc.), we found that the only things we needed to do to port the application to PDAs such as the iPAQ, Zaurus or other high end (16MB+, 200Mhz+) devices was to improve the performance slightly and design a new user interface to fit the small screen/resolution and to be usable without a keyboard.
We didn't need to change one line of code besides those two changes because our application was originally an applet written for the web, so it was JDK1.1 compatible and PersonalJava (what runs on most mid to high end PDAs) is almost completely compatible with JDK1.1.
I'm also planning to port my pet project (see my URL) to run on PDAs and all I need is to rewrite the UI a bit. Java is great - who said platform independence was a dream promised but not delivered?
Or are they still whining about incompatibilities with Microsoft's own terrible Java?
From the press release:
In its complaint, Sun alleges that Microsoft has engaged in extensive anticompetitive conduct, including the following:
Fragmenting the Java platform;
Flooding the market with incompatible Java Runtime Environments;
Forcing other companies to distribute or use products that are incompatible with Java;
Significantly limiting Sun's distribution channels for the Java Runtime Environment;
Intentionally interfering with the development of Java-based applications for compatible runtimes;
Copyright infringement resulting from Microsoft's distribution of an unlicensed implementation of the Java Runtime Environment;
Intentional creation of incompatibilities between Microsoft software and competing technologies, thereby raising switching costs for consumers and reducing consumer choice.
So except for complaint No. 4, I'd say, yes they are:-)
Q: Even if the motion picture and other industries come up with a system to protect this content with a broadcast flag, the security technology will just be broken into and made worthless in a very short time. Given that, whats the point?
MPAA answer: It is unfortunate that some people may attempt to illegally hack or break into this security system. However, even if a few are successful, the flag will not be worthless. Most people are honest and will not attempt to circumvent the flag.
So if most people are honest and will not attempt to circumvent the flag, why not just trust the people not to do the horrible, dishonest deeds this measure wants to prevent?
The server can't measure the latency all on it's own. How can tell what's latency and what's just the user thinking about his next move? It needs to know when the client received his opponent's move to know when to start his clock.
I have a related problem: I'm the author of an open source client for a chess server. Now, in chess, time is an important thing, since each player is given a certain amount of time for the game and when that runs out, he loses. The problem is, how do you account for lag when sending moves over the internet?
In the young days of internet chess, there was no compensation for lag, so whoever had a faster connection, had the advantage. Nowadays, most chess servers have implemented what is called timestamp or timeseal. While the specific algorithms differ, the idea is the same - the client somehow authenticates itself against the server and tells it that it's a trusted client. From this point, it simply counts the time it takes for the user to make his move and sends the time along with the move.
The problem with that is that the authentication method and algorithm have to be kept proprietary, since otherwise, anyone can claim to be a trusted client and always say that it took him 0 seconds to make the move. My problem with that, is that I don't like an important part of my code to be closed source (since I agreed not to release it when I was given the method/algorithm description).
The question is, is it possible, and if so, how, to implement move timestamping which would not rely on the server trusting the client? Perhaps by obtaining the time in an encrypted form from a (custom made) NTP server and then sending it to the chess server, which can talk to the NTP server and have it decrypt the time?
If I could come up with such a protocol, I would suggest it to the server guys, who would gladly implement it, since it's much more secure (since the client doesn't need to be trusted anymore, there's no point in hacking it), and my life would be much easier, since I wouldn't need to distribute obfuscated, proprietary pieces of software along with my open software.
Wouldn't it infringe on this? On the other hand, I think god can afford more lawyers than John Cage's music publishers.
I seriously don't understand. Ok, so you won't be able to modify the source, recompile and run the program (or you will be able, but won't be able to access special features which are only enabled if your program is signed). But surely someone will write and sign a VM soon enough. That VM will allow access to all the features and run any kind of code. Will I have to sign my Java program to get the already signed JVM to run it? I don't think so. It will kill Linux? Surely someone will write a signed emulation layer which will allow the Linux kernel to run as is on the new Palladium enabled CPU. It'll perhaps run somewhat slower, but it certainly won't kill Linux.
How can the PC stay a turing complete platform while at the same time disallowing certain actions? As long as I can access bytes within a file and put pixels on the screen, how can a piece of hardware prevent me from decoding and playing a copy protected movie?
UPDATE:U.S. Denies Data Retention Plans
Well, here's what I have (and only that):
Knowing a third of what is just those 4 books will make you very knowledgeable. Knowing all what is in them will make you a very valuable expert in IT/CS.
Well, they did to that. And won the "Ultimate builder Competition", and it got sent to the International Space Station. Not sure it works in the presence of gravity though :-)
The google translation of the german page about this
Here's Sun's article on this. Apparently, they managed to squeeze a JVM with multithreading (although no garbage collection) into 16K. Who said Java was big and bloated? :-)
A funny quote:
The robot that they built for the International Space Station, called Jitter, floats around collecting particles of debris. So even though it doesn't have a garbage collector, it is one!
a distribution called AGNULA (A GNU/Linux Audio distribution).
Looks like RMS got his way with this one :-)
I mean, take The Matrix: great film (IMHO). But vision - yeah, I can just see a near-future where man and machines fight a war, the machines win and enslave us all as power generators while building a convincing virtual world. Oh yeah, and the science holds up on that as well. Pfffft.
Your mind is one of those having trouble letting go. Of course all those things would seem unlikely to you - since you're living in the matrix. This is a key point in the movie - you can't argue about how believable it is, because you don't know whether you live in 2200 inside the matrix or in 2002 in the real world.
It's pretty obvious that the government can't fund/subsidize proprietary software (except for military purposes), because it's the public's money they're spending, so the public deserves to get the code their money was spent on. The question is which open source license it should be under. The way I understand it is that there are two points of view on this.
BSD style license
Licensing it under a BSD style license will make it easier for various companies to take the code, extend it and then sell it back to the public. The downside is that unless the stuff added wes important and significant, or the company makes sure to charge proportionally to it importance, the public is paying twice for the same software. The upside is that in order to develop those extensions, the companies will have to hire developers, giving back to the public, in a way. Obviously, however, the amount money spent on those developers will be less than what the company intends to charge. So in the end, the public usually ends up paying less than twice, but definitely more than once for that software.
GPL
With the GPL, the public basically says "We've payed for this software. You want to use it? You'll have to pay for it too, in the form of showing us any extensions you decide to make". This way, there's no way to screw the public and make them pay again for software they've already payed for. On the other hand, that software is then much less likely to be used commercially, so any extensions might not end up getting developed at all.
Since I don't tend to trust companies (especially not Microsoft) to charge properly for adding a pretty button to software I payed for and then selling it to me, I prefer the GPL, but it's obvious that both licenses have their advantages and disadvantages in this scenario.
I really don't see how limiting adult oriented websites to specific domains hurts free speech. These sites would still be allowed to exist and operate, but they will be easily identifiable as adult oriented.
There are already many limitations on free speech which don't really hurt it and are considered "good" by practically everyone. Limiting porn (both selling and making) to 18 comes to mind.
Can't they just wait for 2006 when it'll be available at the local computer shop for $700?
I'm sorry, but this is a load of bull. Download and run the windows version of this application and tell me how you would figure out (unless you're a Java developer) that the application is in Java. And no, it's not even compiled to native windows code (something you can easily do with Excelsior's JET compiler) OR requires you to install or configure anything except the application.
Another thing you are missing is that client side is not everything, and in fact, Java is currently more popular on the server side, where it doesn't matter whether you run "java HelloWorld", or "HelloWorld.exe" (actually, it'd be more like "./helloworld" on most servers :-) )
Excluding spell checking APIs, that is ;-)
Well, thanks to Google, we now have that too.
And Sun really has a double standard there: when Apple exposes all their native platform APIs to Java, that's fine. It's just not fine when Microsoft does it.
Uff, how many times must this be explained - it's ok to expose any API to Java code - it's not ok to put that API in the java.* libraries fooling developers into thinking their code is pure Java when it isn't.
Imagine someone adding their own functions to the C standard library and advertising them as standard, portable C. How would you feel then?
This article isn't about flaming Microsoft, it's about laughing at it.
we snagged an iPaq 3670 and installed ARM Linux
What you should have done instead was install SavaJE XE on it, which is a Java operating system which fully supports Java 2 and runs much faster than any JVM that runs on top of an operating system.
Swing 1.1.1 works beautifully under JDK1.1. See my URL for a JDK1.1 fully compatible application which uses Swing.
There is a bug report on Sun's bug reporting database claiming that Swing doesn't work on PersonalJava because Swing checks for the existance of some security related class to find out whether it runs under 1.1 or 1.2 and PersonalJava is essentially 1.1 with 1.2 security. Despite this bug, I've seen small demo applications using swing running under PersonalJava.
Note that all new iPAQs come with Insignia's Jeode JVM preinstalled.
We've developed a very fast map displaying application (the map is rendered on the client, with antialiasing, so it looks really well, and the amount of data to transfer to the client is very small), originally meant for the web, but now we've been given the task of implementing it for PDAs. While we plan a whole different architecture for the lower end PDAs (Palms etc.), we found that the only things we needed to do to port the application to PDAs such as the iPAQ, Zaurus or other high end (16MB+, 200Mhz+) devices was to improve the performance slightly and design a new user interface to fit the small screen/resolution and to be usable without a keyboard.
We didn't need to change one line of code besides those two changes because our application was originally an applet written for the web, so it was JDK1.1 compatible and PersonalJava (what runs on most mid to high end PDAs) is almost completely compatible with JDK1.1.
I'm also planning to port my pet project (see my URL) to run on PDAs and all I need is to rewrite the UI a bit. Java is great - who said platform independence was a dream promised but not delivered?
I know, I know, it's "virii" :-)
How about naming them after windows viruses?
nimda, codered, sircam, melissa...
Rest assured you'll never run out of names.
Or are they still whining about incompatibilities with Microsoft's own terrible Java?
From the press release:
In its complaint, Sun alleges that Microsoft has engaged in extensive anticompetitive conduct, including the following:
So except for complaint No. 4, I'd say, yes they are :-)