The judge's precedent in the linked opinion (assuming I read it right. IANAL) is really restrictive because it requires that somebody read the terms of use for every website to be sure that they're not running afoul of the CFAA. This makes it impossible to use any sort of tool to crawl the web and extract information unless you've read the terms of service on all the sites before you crawl them. With the so-called "semantic web" finally coming around, this would be a gigantic setback.
The Court's argument as to why the first sale doctrine doesn't apply is complete, utter crap (in my opinion -- IANAL). The judge references U.S.C. 117(b), using it to say that copies of computer programs can't be resold without the copyright holder's permission, but if you go and actually read that section, it clearly only covers "backup copies".
The Court then goes on to use the EULA (which is under dispute) to decide that the defendants agreed that the software was licensed. Grr.
The one thing that really bugs me about Java that I haven't seen mentioned is its type system. The whole thing seems very poorly designed. To take a particular example, consider the Array:
class A { } class B extends A { }
public class test {
static void f(A[] arr) { arr[0] = new A(); }
public static void main(String[] args) {
A[] okay = new A[10];
B[] bad = new B[10];
f(okay);
f(bad);// <-- Error!
} }
How do they deal with this? Runtime type checks! To really deal with this, there should be read-only and write-only arrays, so that you can automatically upcast to a read-only array, and downcast to a write-only array. Oh well.
Ironically, I found the proofs in algorithms classes an attempt by computer scientists to say "see, we are a real discipline, we do proofs too"...
CS proofs are just as rigorous and important as math proofs. The reason they seem sort of half-assed is that often, completely correct CS proofs are incredibly tedious. Have you ever read or (god forbid!) written a soundness proof for a type system? They're one of the most tedious and boring types of proofs I've ever encountered.
IDE support for common programming tasks and your editor's choice of keyboard interface are entirely orthogonal. There's no reason you can't have a vi-like editor in your IDE and still have symbol completion, documentation popping up in little windows, and whatever other bells and whistles you need to be an effective coder.
Also, I don't understand your point about deleting a line. If you have a complex task that you do all the time, you're going to end up binding it to a key combination, which is exactly what you'd do in vi anyway. Would you really prefer using the mouse to click on "Edit -> Complex tasks -> Delete a line" fifty times, or type d49[down]?
Oh, and I can't resist: Try typing "malloc" in vim, putting the cursor somewhere in the word, and typing the letter "K" (capital!). Also, try creating a tags file with ctags, putting the cursor on a function name, and typing Ctrl-].
For those not in the know, the "do" construct that jovlinger so greatly dislikes allows you to write that big mess of lambdas and bindM applications as simply
do
r <- funone...
s <- funtwo... r... ...
providing a very elegant syntax for sequential operations while keeping the whole thing nicely pure.
Older versions of the driver have locked up on every single computer I've ever used that has an AMD processor and a VIA chipset when you restart X (it works perfectly the first time, but the second causes a panic). A friend with such a system claims the new drivers fix the problem. I wouldn't know myself, because I haven't rebooted since two releases ago.
I meant to imply that he should have a more helpful attitude than simply, "get used to it." I didn't intend to make any statement about the technical merits of NAT or lack thereof.
Re:IP6s problem is the numeric addresses r so comp
on
The State of IPv6
·
· Score: 2, Interesting
Here's where your logic breaks down: The only addresses that are going to be really complex are the ones that are auto-generated, which you won't need to type. Suppose you have a prefix of, say, 2001:f4c:2a5::/48. 2001 is a pretty easy number to remember, and f4c:2a5 is the same number of bits as an IPv4 address. Just tack on other easy to remember numbers and you're set:
2001:f4c:2a5::1 for the gateway, 2001:f4c:2a5:1::/64 for the first subnet, etc.
There's this new phenomenon appearing on the 'net recently, where people blatantly misrepresent facts in an attempt to anger or annoy people. Your best bet is to just ignore them.
[...] Canada really is arboring terrorists [...]
Canada is putting terrorists into trees?
The judge's precedent in the linked opinion (assuming I read it right. IANAL) is really restrictive because it requires that somebody read the terms of use for every website to be sure that they're not running afoul of the CFAA. This makes it impossible to use any sort of tool to crawl the web and extract information unless you've read the terms of service on all the sites before you crawl them. With the so-called "semantic web" finally coming around, this would be a gigantic setback.
Figure out how to best invest your $300 annual Bush tax savings to cover the social security benefits you'll never get
I'll just use my $300 tax savings to buy 100 cups of coffee.
The Court's argument as to why the first sale doctrine doesn't apply is complete, utter crap (in my opinion -- IANAL). The judge references U.S.C. 117(b), using it to say that copies of computer programs can't be resold without the copyright holder's permission, but if you go and actually read that section, it clearly only covers "backup copies".
The Court then goes on to use the EULA (which is under dispute) to decide that the defendants agreed that the software was licensed. Grr.
Ironically, I found the proofs in algorithms classes an attempt by computer scientists to say "see, we are a real discipline, we do proofs too" ...
CS proofs are just as rigorous and important as math proofs. The reason they seem sort of half-assed is that often, completely correct CS proofs are incredibly tedious. Have you ever read or (god forbid!) written a soundness proof for a type system? They're one of the most tedious and boring types of proofs I've ever encountered.
C is a higher level language in the same way that an axe made out of a piece of chipped obsidian is a useful tool.
IDE support for common programming tasks and your editor's choice of keyboard interface are entirely orthogonal. There's no reason you can't have a vi-like editor in your IDE and still have symbol completion, documentation popping up in little windows, and whatever other bells and whistles you need to be an effective coder.
Also, I don't understand your point about deleting a line. If you have a complex task that you do all the time, you're going to end up binding it to a key combination, which is exactly what you'd do in vi anyway. Would you really prefer using the mouse to click on "Edit -> Complex tasks -> Delete a line" fifty times, or type d49[down]?
Oh, and I can't resist: Try typing "malloc" in vim, putting the cursor somewhere in the word, and typing the letter "K" (capital!). Also, try creating a tags file with ctags, putting the cursor on a function name, and typing Ctrl-].
People interested in computer voting systems should read the Caltech-MIT Voting Technology Project's reports.
Older versions of the driver have locked up on every single computer I've ever used that has an AMD processor and a VIA chipset when you restart X (it works perfectly the first time, but the second causes a panic). A friend with such a system claims the new drivers fix the problem. I wouldn't know myself, because I haven't rebooted since two releases ago.
Oh come on, calculated COME_FROMs are the wave of the future! Get with the program!
This is one of the stupidest things I've read this week.
I wish I could mod you up to higher than 5!
s/he/you/
I meant to imply that he should have a more helpful attitude than simply, "get used to it." I didn't intend to make any statement about the technical merits of NAT or lack thereof.
I do agree with you, by the way.
How about, "Yeah, NAT breaks stuff, let's fix it" instead?
Oh, really?
Or you could type :%s/is/eir/ or /is<RET>cweir<ESC>.
Admittedly, that's still pretty bad.
But that would make him easier to find!
Here's where your logic breaks down: The only addresses that are going to be really complex are the ones that are auto-generated, which you won't need to type. Suppose you have a prefix of, say, 2001:f4c:2a5::/48. 2001 is a pretty easy number to remember, and f4c:2a5 is the same number of bits as an IPv4 address. Just tack on other easy to remember numbers and you're set:
2001:f4c:2a5::1 for the gateway,
2001:f4c:2a5:1::/64 for the first subnet,
etc.
It's really not hard.
There's this new phenomenon appearing on the 'net recently, where people blatantly misrepresent facts in an attempt to anger or annoy people. Your best bet is to just ignore them.
Could it be using /usr/lib/win32/QuickTime.qts (A Windows exectuable)?
Ahh, if only we could all live in your bug-free fantasy world!