True, true, and true. But that doesn't change the fact that IE only runs on Windows and 99% of Windows users have Automatic Updates turned on, usually checking weekly. So you're usually looking at a max "lag time" of seven days before an IE user gets the patch. And that assumes the worst possible case: the patch releases right after that user's computer was updated, and they use their computer (and IE) every day.
If what you're buying is essentially an account on a remote server so you can experience interactive online play, that's much harder to pirate. Sure, you can share the client software and your login info with all your friends, but the server admin can address simultaneous logins by either freezing the account or arbitrarily locking out one of the clients.
The upshot of this sort of system is that publishers can completely do away with DRM on the client software, since it's the account on the remote server that "matters".
Make it so that students can store their laptops at school at their parents' request.
Don't enable time-based lock down by default. However, give parents the ability to "opt-in" to a lock down policy that disables their child's laptop outside school hours.
Don't install content filters. However, have a well-defined usage policy and enforce it strictly. If non-kosher material is found on a student's laptop then they lose it for the rest of the school year.
Honestly, I agree with the other posters who commented that allowing students to take the laptops home is just asking for trouble.
One lesson is: gather evidence that would demonstrate the dad was okay with it. If he then tries to go after you for the fact that the girl was underage, you can produce evidence that makes him party to the crime since he knew about it and approved.
That said, I'm guessing the poster's story isn't 100% accurate. In many (most?) states its perfectly legal to sleep with a 17 year old regardless of the age difference. The additional lesson to be had: know the laws in your state. That lesson also applies to laws concerning recording without permission, as described above.
I wouldn't dumb down your choice of language based on their age. If you wouldn't choose a given language for teaching gifted 18 year olds then don't choose it for the 11-14 year olds.
I was first taught BASIC and then Pascal, but in retrospect I think I probably could have handled something beefier if someone had just taken the time to explain some basic concepts to me, which I assume you're willing to do with these kids.
Why not C? If it's important to have an IDE you could try the Eclipse CDT or Dev-C++.
As for programming tasks, I always enjoyed the "sorting" problem. Mainly because, in addition to correctness, performance "matters". Solving that problem forces you to not only write correct code, but to write efficient and "clever" code.
Describe how the basic bubble sort works and have them implement it. Then turn them loose to see if they can come up with something faster. Make the range of numbers being sorted relatively narrow. Say, 16 bits. Then see if anyone can arrive at the O(N) solution.
I wouldn't develop anything that doesn't revolve around account-based multi-player game play. Pirate the client software all you want; unless you pay me for an account (or share someone's who has) you're not getting any of the good stuff.
Hence my original point. I'd rather him spend the time doing something that might actually *improve* the quality of the application he works on. Barring that, I'd prefer he at least refrain from doing something that may *decrease* product quality.
True. My assumption is that the easter egg effort would cut into his "time spent on the project" not his "time spent reading slashdot". In any case, it seems like a waste of time.
As someone who does this for a living, and who values the performance and correctness of the applications I use, I find Easter Eggs sort of annoying. If it takes you 10 minutes to add the easter egg then that's 10 minutes I'd rather you have spent writing a unit test, fixing a bug or optimizing some routine.
He only uses V8 for JS testing. V8 has two problems. One, it's created by Google and they've been quite open about the fact that it's the benchmark they used when optimizing Chrome. Two, it's incredibly inconsistent. Run the benchmark twice and you're likely to get results that are 10-20% apart. SunSpider and Dromaeo are the de facto standard among JS benchmarks. I've tested Chrome vs. nightly builds of WebKit and FF 3.1 (with JIT enabled) on SunSpider and Dromaeo, and suffice it to say Chrome loses. In its defense, though, I was comparing it to pre-release code.
The other issue here is when the browsers he tested were released:
IE7 - October 2006
FF 3.0 - June 2008
Chrome - September 2008
Opera 9.6 - October 2008
Safari 3.2 - October 2008
On the one hand, the most meaningful benchmark to end users is the one that deals with *released* versions of the software, and not betas or nightly builds, since 99.9% of users are only ever going to use full releases. What's tricky about that, though, is that you're always giving an advantage to whomever released most recently.
It might have been nice to see a benchmark of the FF 3.1 Beta vs. IE8 Beta vs. Safari 4.0 Beta, since all of those exist right now. Throw in Opera 9.6 for kicks.
I use Firefox on Windows, and I'd switch back if IE8:
Ran javascript "in the same ballpark" performance-wise as Squirrelfish and Tracemonkey,
Supported (or supported a plugin) to do what Foxmarks does.
Better standards compliance would be icing on the cake, but not entirely necessary. I agree with you that MS will continue to lose overall market share, since there's no way they're going to release IE for non-Windows platforms, and non-Windows platforms (esp. OS X) are likely to continue to gain share. I was more thinking of their Windows-specific market share.
People are so down on Internet Explorer, and rightly so, that if they come out with something that is "competitive" with the other offerings, even if it isn't superior, it will be perceived as a huge win for Microsoft and likely win back much of the market share they've lost.
I'm basing this on the fact that many people will choose the "standard" (IE) unless there is a compelling reason to switch to something else. Especially corporate environments, excluding companies that are expressly anti-Microsoft (Apple, Sun, IBM, Google). So Microsoft doesn't have to provide a compelling reason to use Internet Explorer; they just have to ensure there are no compelling reasons to use something else.
Obviously you wouldn't present the statistics to the judge in that way. You'd say, "I have a method for selecting people from a crowd. The people I select are 100x more likely to have committed a crime than people I don't select. Don't you agree that if someone is 100x more likely than the average person to have committed a crime, that that's 'substantial chance'?"
It would probably still be a hard sell if those your method selects were only guilty 1% of the time. But suppose we could fiddle with the numbers. For argument's sake, let's suppose that 1% of all people would, if stopped, be found guilty of some crime. Now let's say you have a method of selecting people that allows you to get a 20% guilty rate when you stop 4.5% of travelers. In other words, you're catching 90% of the 1% who've committed crimes, and you're only stopping 1 in 20 people.
Now, a given person who's been stopped still only has a 20% chance of having committed a crime. But they're 20x more likely to be guilty than an arbitrary traveler, and implementing your method would stop 90% of those who actually are criminals. Under those circumstances, is "20% chance of being guilty" enough to qualify as probable cause? I suspect many judges would agree that it is.
For what it's worth, I think the criteria for probable cause are slightly more nuanced than you suggest.
Wiki suggests that one of the implications of the 1983 Supreme Court case Illinois vs. Gates is that "probable cause" now only requires a "substantial chance" or "fair probability" of criminal activity, and that a "better than even" chance isn't necessary.
So it's a matter of labeling. Rename it to "arbitrary criminal activity detection system". If those flagged by "the system" turn out to be 100x more likely to be guilty of a crime than those not flagged, then its conceivable that "being flagged" might, in and of itself, meet the criteria for probable cause.
Have there been any terrorist attacks? No. So they couldn't have stopped actual terrorists "in the act", because there haven't been any.
To judge whether 1% is actually decent, we'd need to know what percentage of *all travelers* are guilty of the offenses they're arresting the 1% for. If the number for all travelers is, say, 0.001%, then 1% is fairly significant.
I wasn't ridiculing you by using the word "paranoid". Paranoia is often completely warranted, as it might be in this case.
Now, to the rest. First of all, I don't necessarily equate "breaking the law" with "unethical". In this particular case, violating the terms of an NDA probably isn't be "breaking the law" per se, though it would give my employer excellent grounds to sue me. Depending on how specific the email is, it might not even violate the NDA. "Hey, you might want to examine the usage patterns of accounts originating from company.com's IP range" isn't exactly divulging trade secrets.
I wouldn't lose sleep over implementing this plan because, in effect, it prevents one party from acting unethically and taking advantage of another. In all honesty, I probably wouldn't implement it because no job is important enough to me to go through all that cloak and dagger crap. I'd probably immediately start looking for another job, and in the mean time go over my boss's head and point out his unethical demands to someone who might actually care. If that person sides with the boss, well then I quit.
The advice was contingent on someone being able to send email that couldn't be traced back to them by their employer. While email obviously isn't that anonymous, in order for the guy's employer to find out the company who's terms of service are being violated would have to rat him out to the company violating their terms of service. That seems pretty unlikely.
If you're truly paranoid:
Don a disguise: wear a hat, glasses, dye your hair, grow a beard, etc. (for the interior cameras).
Wear gloves (no fingerprints).
Walk to a library, restaurant, etc. with public terminals (walk = no license plate caught by parking lot cameras).
It does solve the ethical problem in that you're no longer enabling your employer to violate these other companies' terms of service. At least, not for any longer than it takes for those companies to block the fake accounts your employer had you create.
It doesn't overly stress your relationship with the boss, unless that relationship is such that he can't stomach any feedback whatsoever. You did your "due diligence" and raised your objections to the task. Then you sucked it up and did exactly what he asked. Ostensibly, it isn't your fault that this other company actually decided to enforce their terms of service.
As for the technical problem...wait, what technical problem?
So repeat the process a couple of times. Eventually, as long as the boss doesn't come to view you as incompetent, he may come to view the "task" of getting around these other companies' blocking mechanisms so difficult that it's worth respecting their TOS and actually paying for the content. And, of course, while all this is going on, be looking for another job.
That's one possibility. I had assumed a certain level of technical understanding on the boss's part. Honestly, if the boss is such that he's going to fire you for something like that, then you were already going to get fired for something. It's just a matter of "when" and "what".
True, true, and true. But that doesn't change the fact that IE only runs on Windows and 99% of Windows users have Automatic Updates turned on, usually checking weekly. So you're usually looking at a max "lag time" of seven days before an IE user gets the patch. And that assumes the worst possible case: the patch releases right after that user's computer was updated, and they use their computer (and IE) every day.
If what you're buying is essentially an account on a remote server so you can experience interactive online play, that's much harder to pirate. Sure, you can share the client software and your login info with all your friends, but the server admin can address simultaneous logins by either freezing the account or arbitrarily locking out one of the clients.
The upshot of this sort of system is that publishers can completely do away with DRM on the client software, since it's the account on the remote server that "matters".
Namely:
Honestly, I agree with the other posters who commented that allowing students to take the laptops home is just asking for trouble.
True. If he were in California, he should have just married her or waited the "less than 12 months" it would have taken for her to turn 18.
One lesson is: gather evidence that would demonstrate the dad was okay with it. If he then tries to go after you for the fact that the girl was underage, you can produce evidence that makes him party to the crime since he knew about it and approved.
That said, I'm guessing the poster's story isn't 100% accurate. In many (most?) states its perfectly legal to sleep with a 17 year old regardless of the age difference. The additional lesson to be had: know the laws in your state. That lesson also applies to laws concerning recording without permission, as described above.
I wouldn't dumb down your choice of language based on their age. If you wouldn't choose a given language for teaching gifted 18 year olds then don't choose it for the 11-14 year olds.
I was first taught BASIC and then Pascal, but in retrospect I think I probably could have handled something beefier if someone had just taken the time to explain some basic concepts to me, which I assume you're willing to do with these kids.
Why not C? If it's important to have an IDE you could try the Eclipse CDT or Dev-C++.
As for programming tasks, I always enjoyed the "sorting" problem. Mainly because, in addition to correctness, performance "matters". Solving that problem forces you to not only write correct code, but to write efficient and "clever" code.
Describe how the basic bubble sort works and have them implement it. Then turn them loose to see if they can come up with something faster. Make the range of numbers being sorted relatively narrow. Say, 16 bits. Then see if anyone can arrive at the O(N) solution.
I wouldn't develop anything that doesn't revolve around account-based multi-player game play. Pirate the client software all you want; unless you pay me for an account (or share someone's who has) you're not getting any of the good stuff.
Hence my original point. I'd rather him spend the time doing something that might actually *improve* the quality of the application he works on. Barring that, I'd prefer he at least refrain from doing something that may *decrease* product quality.
True. My assumption is that the easter egg effort would cut into his "time spent on the project" not his "time spent reading slashdot". In any case, it seems like a waste of time.
As someone who does this for a living, and who values the performance and correctness of the applications I use, I find Easter Eggs sort of annoying. If it takes you 10 minutes to add the easter egg then that's 10 minutes I'd rather you have spent writing a unit test, fixing a bug or optimizing some routine.
He only uses V8 for JS testing. V8 has two problems. One, it's created by Google and they've been quite open about the fact that it's the benchmark they used when optimizing Chrome. Two, it's incredibly inconsistent. Run the benchmark twice and you're likely to get results that are 10-20% apart. SunSpider and Dromaeo are the de facto standard among JS benchmarks. I've tested Chrome vs. nightly builds of WebKit and FF 3.1 (with JIT enabled) on SunSpider and Dromaeo, and suffice it to say Chrome loses. In its defense, though, I was comparing it to pre-release code.
The other issue here is when the browsers he tested were released:
On the one hand, the most meaningful benchmark to end users is the one that deals with *released* versions of the software, and not betas or nightly builds, since 99.9% of users are only ever going to use full releases. What's tricky about that, though, is that you're always giving an advantage to whomever released most recently.
It might have been nice to see a benchmark of the FF 3.1 Beta vs. IE8 Beta vs. Safari 4.0 Beta, since all of those exist right now. Throw in Opera 9.6 for kicks.
I use Firefox on Windows, and I'd switch back if IE8:
Better standards compliance would be icing on the cake, but not entirely necessary. I agree with you that MS will continue to lose overall market share, since there's no way they're going to release IE for non-Windows platforms, and non-Windows platforms (esp. OS X) are likely to continue to gain share. I was more thinking of their Windows-specific market share.
People are so down on Internet Explorer, and rightly so, that if they come out with something that is "competitive" with the other offerings, even if it isn't superior, it will be perceived as a huge win for Microsoft and likely win back much of the market share they've lost.
I'm basing this on the fact that many people will choose the "standard" (IE) unless there is a compelling reason to switch to something else. Especially corporate environments, excluding companies that are expressly anti-Microsoft (Apple, Sun, IBM, Google). So Microsoft doesn't have to provide a compelling reason to use Internet Explorer; they just have to ensure there are no compelling reasons to use something else.
Obviously you wouldn't present the statistics to the judge in that way. You'd say, "I have a method for selecting people from a crowd. The people I select are 100x more likely to have committed a crime than people I don't select. Don't you agree that if someone is 100x more likely than the average person to have committed a crime, that that's 'substantial chance'?"
It would probably still be a hard sell if those your method selects were only guilty 1% of the time. But suppose we could fiddle with the numbers. For argument's sake, let's suppose that 1% of all people would, if stopped, be found guilty of some crime. Now let's say you have a method of selecting people that allows you to get a 20% guilty rate when you stop 4.5% of travelers. In other words, you're catching 90% of the 1% who've committed crimes, and you're only stopping 1 in 20 people.
Now, a given person who's been stopped still only has a 20% chance of having committed a crime. But they're 20x more likely to be guilty than an arbitrary traveler, and implementing your method would stop 90% of those who actually are criminals. Under those circumstances, is "20% chance of being guilty" enough to qualify as probable cause? I suspect many judges would agree that it is.
For what it's worth, I think the criteria for probable cause are slightly more nuanced than you suggest.
Wiki suggests that one of the implications of the 1983 Supreme Court case Illinois vs. Gates is that "probable cause" now only requires a "substantial chance" or "fair probability" of criminal activity, and that a "better than even" chance isn't necessary.
So it's a matter of labeling. Rename it to "arbitrary criminal activity detection system". If those flagged by "the system" turn out to be 100x more likely to be guilty of a crime than those not flagged, then its conceivable that "being flagged" might, in and of itself, meet the criteria for probable cause.
Have there been any terrorist attacks? No. So they couldn't have stopped actual terrorists "in the act", because there haven't been any.
To judge whether 1% is actually decent, we'd need to know what percentage of *all travelers* are guilty of the offenses they're arresting the 1% for. If the number for all travelers is, say, 0.001%, then 1% is fairly significant.
Architecture, 3D game programming, bio-informatics, computational finance, math education.
...if he can't blow the whistle without getting caught.
You could run the WebKit nightly, which is almost as fast and slightly more standards compliant.
I wasn't ridiculing you by using the word "paranoid". Paranoia is often completely warranted, as it might be in this case.
Now, to the rest. First of all, I don't necessarily equate "breaking the law" with "unethical". In this particular case, violating the terms of an NDA probably isn't be "breaking the law" per se, though it would give my employer excellent grounds to sue me. Depending on how specific the email is, it might not even violate the NDA. "Hey, you might want to examine the usage patterns of accounts originating from company.com's IP range" isn't exactly divulging trade secrets.
I wouldn't lose sleep over implementing this plan because, in effect, it prevents one party from acting unethically and taking advantage of another. In all honesty, I probably wouldn't implement it because no job is important enough to me to go through all that cloak and dagger crap. I'd probably immediately start looking for another job, and in the mean time go over my boss's head and point out his unethical demands to someone who might actually care. If that person sides with the boss, well then I quit.
The advice was contingent on someone being able to send email that couldn't be traced back to them by their employer. While email obviously isn't that anonymous, in order for the guy's employer to find out the company who's terms of service are being violated would have to rat him out to the company violating their terms of service. That seems pretty unlikely.
If you're truly paranoid:
It does solve the ethical problem in that you're no longer enabling your employer to violate these other companies' terms of service. At least, not for any longer than it takes for those companies to block the fake accounts your employer had you create.
It doesn't overly stress your relationship with the boss, unless that relationship is such that he can't stomach any feedback whatsoever. You did your "due diligence" and raised your objections to the task. Then you sucked it up and did exactly what he asked. Ostensibly, it isn't your fault that this other company actually decided to enforce their terms of service.
As for the technical problem...wait, what technical problem?
So repeat the process a couple of times. Eventually, as long as the boss doesn't come to view you as incompetent, he may come to view the "task" of getting around these other companies' blocking mechanisms so difficult that it's worth respecting their TOS and actually paying for the content. And, of course, while all this is going on, be looking for another job.
That's one possibility. I had assumed a certain level of technical understanding on the boss's part. Honestly, if the boss is such that he's going to fire you for something like that, then you were already going to get fired for something. It's just a matter of "when" and "what".