One of the biggest areas too many programmers these days lack in is variety of languages. C/C++/Java have become so ubiquitous that everyone forgets all about all the other languages out there, Scheme, Lisp, Eiffel, Smalltalk, Forth, Haskell, Prolog and many many others are often better languages than the usual C/C++/Java contingent. You can learn a lot by using another language for a while, you may even dump your old one completely;) It would be a terrible shame if your students never learned how much C is flawed, or how poor a hack C++ is. The very thing keeping the C-like languages in use is ignorance of anything else. If you got students accustomed to different ways of looking at problems (ie, functionally) they will have much less trouble later on.
is that there are no links to 'Space Travel'. Dammit they hyped up that game more than quake, so now i've got to see it. "Simulate an entire solar system", "Fly between and land on the various planets", "Rendered in stunning graphics" (What is stunning graphics on a PDP-7?) Oh wait, its probably in PDP assembly. Bah, maybe they open sourced it;)
I run Linux on my two personal computers, a hacked up old Redhat dist and a newer Debian (potato) dist. While I like Linux a lot, both distributions caused a great hassle in terms of getting things neat and clean. Too many packages wallowing around with configuration files scattered. I understand Debian is trying to work on this (and there's always slackware...) but I have found that FreeBSD's layout is very clean and simple and when you are setting up a server you do not want lots of junk cluttering up your disk space and possibly posing a security hazard. OTOH, I installed XF86 on the Linux boxes (4.0.1 on the redhat:) and that has a tendency to waste disk space, cause security problems, and clutter up directories; I generally do not install X on FreeBSD boxes. Oh well:) In any case, my main point is that the BSD's tend to be much more cleanly packaged (and NetBSD has cleaner code..), whatever the kernel's performance is like. There is probably a Linux distribution out there that tries to focus on remaining clutter-free, but with all the many distributions out there it is often hard to see the smaller ones. Not to imply having many distributions is a bad thing, choice is always good. But when you have to setup multiple servers, inanities can drive you nuts. OTOH, I created a two-floppy IP Masq (or NAT, whatever;) firewall off of Linux 2.2.14, to run on a 486-DX50, 8 MB RAM, with no harddrive. With 10BaseT ISA cards, it managed to pass 400k/s while performing as a IP Masq firewall. Not too shabby, running FreeBSD on that (and probably the others) would take a lot more effort, if it were even possible. But it did take an awful amount of time to get going... (tip: hack slackware bootdisks instead of trying to create your own from scratch:) It boils down to a matter of personal choice I suppose. I use both, like both, and I get along just fine.
(define (this-is-more-elegant b e) (cond ((> e 0) (* b (this-is-more-elegant b (- e 1)))) (else 1)))
(this-is-more-elegant 2 8) => 256
float than_this(float, int);
float than_this(float b, int e) { int i; float sum=1;
for(i=0;i<e;i++) sum*=b; return sum; }
than_this(2,8); => 256
(define (exp b e) (this-doesnt-use-stack 1 b e))
(define (this-doesnt-use-stack sum b e) (cond ((> e 0) (this-doesnt-use-stack (* b sum) b (- e 1))) (else sum)))
(exp 2 8) => 256
Truthfully, people who think functional languages are somehow inferior to imperative languages are talking out of their ass. Functional languages can be just as powerful and just as fast as imperative languages (if not more powerful and faster!), its just that most implementations suck. Remember BASIC, and unstructured coding? When you upgraded to structured coding you did away with things like 'goto's. When you upgrade to functional programming, you toss away side effects. What are side effects? In a functional language, a function will always return the same result given the same arguments. Anything that does not has a side effect. A good example of a side effect are global variables, or in fact, assignment of any type. This is where recursion comes into play, as you noticed in the example I gave above; in order to decrement the variable, I simply called the function again with the variable decremented. There was no assignment, only initialization. My third example is the C program rewritten in Scheme. It uses tail-recursion to loop. Alas, Scheme does not push anything on the stack when tail-recursion is used, so there is no possibility of a stack overflow. Scheme can be as high level or as low level as you like, just like C, after all whats the difference between inb(0x3f8); and (inb 0x3f8) ? I will even go as far as to venture that Scheme can be optimized to the point where it is competitive with hand-coded ASM, but since most will laugh, I will leave that as speculation (for now). As for the original complaint of the post I am replying to... Scheme is a heck-of-a-lot more nice looking than C, and a lot easier to understand once you lose the '{' and ',' craziness. Its grouped just like any old mathematics equation: with parentheses! f(x,y) and (f x y). f(g(x),y) and (f (g x) y). I find the Scheme easier to read than the math notation. Sure it uses prefix notation, but its a functional language it only makes sense! (+ 1 1), (plus 1 1), plus(1,1); whats the difference? Instead of f(g(x),h(y)) + i(x,j(x)) you have (+ (f (g x) (h y)) (i x (j x))) Remember, everything is grouped by parentheses, so you have (g x) and (h y) and (j x), call them a b and c, then you have (f a b) and (i x c) call them d and e, and you're left with (+ d e). Of course if you've never touched algebra... well go learn it now, wouldnt want to hire a programmer who couldnt do algebra, eh? (and i didnt even discuss lambda-functions! ack!;)
The ' means its a symbol, not a variable or function.
:)
Re:everything to do with Communism
on
Linux And Beijing
·
· Score: 1
You are a bit confused on the nature of communism. In communism, there is no government, therefore totalitarianism is impossible. That is why countries such as Russia and China have been and never will be communist. What they say is that a temporary government will take care of the issues related to turning into a communist country, but that temporary government never steps down. If you are interested in seeing examples of true communism, I suggest looking into the kibbutzim of Israel. Communism has worked for small communities at times, but never have I heard of it working for a whole nation. Totalitarianism does not go hand-in-hand with communism, it is in fact further from it than democracy is (ever hear of "tyranny of the majority"?). The best analogy I can think of is in terms of computers:
In totalitarianism you have a CPU and everything obeys that CPU.
In democracy the various hardware components perform the job of the CPU by voting on "rules" that determine system behaviour.
In communism everything works in cooperation for the good of the whole. A CPU is not needed.
As you can see, communism doesn't work too well when you have non-like minded citizens. Which is why I believe it won't ever work in anything but small communities.
And democracy is far from being perfect. The bread-and-circuses problem of voting irresponsibly is a serious issue. And your proof of communism's relationship to totalitarianism is fundamentally flawed because it assumes that countries that have called themselves "communist" are in fact, while they are not - they are totalitarianistic. As I mentioned earlier and will reiterate - communism is opposite of totalitarianism because communism implies no government while totalitarianism implies a very strong and large government. 50 years of red-bashing takes its toll. But lets not forget that we are not perfect either.
I'd like to interject the fact that Common Lisp has something called the CLOS, Common Lisp Object System, which qualifies Common Lisp as an object-oriented language as well. Read about CLOS
I've been a C, and then C++ programmer for quite some time, but I've been using Lisp and Scheme more and more recently and have been quite intrigued.
Normally you are correct, about prefix, but in the case of a for() loop that is not the case. Go ahead, try it out, I just tested it with GCC myself. I've always thought of a for() loop like this:
for( a ; b ; c) { d; }
a; while( b ) { d; c; }
As you can see, it really doesn't matter whether you use prefix or not.
Try this code:
#include<stdio.h>
int main (void) { int i; for(i=0;i<1;i++) printf("hi\n"); for(i=0;i<1;++i) printf("hello\n"); }
Output for me was: hi hello
But if things worked as you said, it would merely be: hi
What you pointed out is important, but it doesn't apply in this case.
On the second link of this article, if you scroll up, you will see convincing evidence that open source software has nothing to fear about security competition from closed source software.
Here is a direct link, read the first article, although I doubt you will be surprised.
This is true, but that was not the problem. The problem was that they were assigning the read count to the array that was supposed to hold the values that were read! Since they only read one byte at a time, the array always contained the value 1. Here is this relevent code:
From the read man page: ssize_t read(int fd, void *buf, size_t count); On success, the number of bytes read is returned
As you can see, RandBuf was being set to the number of bytes read, instead of the byte read.
In fact, I have my own issue with that code. The for loop should read: for(i = 0; i < count; ++i)
But I am not very familiar with the context of this code. The original code would loop count + 1 times while my version will loop count times. This may or may not be the desired behaviour. I guess I'll go send in another bug report;)
Anyone notice that Extrans doesnt seem to be working? or is it just me.
I stopped reading about the time he starts trashing ESR for his pro-gun stance. When you see someone ranting about 'gun nuts' that generally proves they are a nut themselves. It was too sickening to read onward, his blatant disregard for objectivity (children trained from 12 to use weapons running around killing ? I picked up my first rifle when I was 8 and I've yet to kill anyone) and his complete focus on RMS (who is an idealist, and does not represent the majority of people), to the point where I would like to ask him: "Should I format my Hard disk and install Win2k because of all the poor starving programmers at Microsoft?" Not only that, but he accused RMS of citing without reference, but look at all the 'evidence' he cites w/o reference in his anti-gun tirade. Go figure! Really, give me a break. In his very trashing and often unjustified attacks on the ideals of RMS he contradicts himself. (he accuses RMS of being a hot-head when his own views in a supposedly 'objective' ethics essay are hot-headed) In concentrating so much on the GNU he gives token credit to actual products produced by open source enthusiasts, and the spirit of cameraderie it promotes. His argument is that software development should be a self-serving process and nothing else. Having people tell me that I'm a communist and I'm doing wrong and all sorts of other things is really sad, when all I'm trying to do is do something that I like to do, and help other people out at the same time. There is no software, no work at all in fact, that is produced without the help and influence of other people, and to deny their efforts is what is truely selfish. This only goes to show to me, again and again, that anything written about "Ethics" and "Morals" is generally bullshit and more about telling you how to live then what is "right and wrong", as if anyone could ever define that.
Meyer can say what he wants but obviously he's a much better OO programmer than an ethicist. Of course, other people have said he's a bit stuck up about OO... ah well OO is just another tool for software creation and the way I use it would probably get me on this Meyer guy's shitlist. Time people learn that one method is not the be-all end-all of life.
This will make using Gnutella just that much more exciting now that you never know what the server you are getting your MP3s from is doing with your IP address. I suppose that some encryption authentification scheme could be thought of that assures that the MP3s are real, but that would just lead to live-bait IP-logging servers. So while Gnutella creates an distribution method impossible to stop, it also cannot protect against the inherent risks in obtaining files across the internet. What is even more dangerous is that one person could obtain the IP addresses of everyone on the network, by recursively requesting the IP address list from every IP address they get. A good solution to that would be to have many separate networks (like IRC). But the baiting method of obtaining IP addresses will probably be used by the copyright 'police' and should result in a cat & mouse type game. I can see Gnutella networks (and other similar ones) becoming fragmented into smaller networks of trusted individuals. Time will tell.
Edwin Hubble would be proud.
on
Hubble Turns 10
·
· Score: 1
Not bad for a satellite... many are destroyed by the time they reach 10 years, or are almost completely useless thanks to all the dust and junk out there. Produced some great pictures, and aided science in a great way. Personally, I'm looking forward to the massive arrays of telescopes they're planning, that can take pictures of Earth-size planets... now hows that for dreaming:)
Interesting how reliable its been, despite having those troubles at first. One patch and it goes? Wish I could say the same for all software..
There was a telescope called Hubble
That had a tendency to see double
Sent over some men,
Who fixed it, and then
The creationists were in deep trouble.
As a general rule, physicists do not apply the Theory of Relativity to speeds lower than 10% of the speed of light, because its results, and the Newtonian results are almost indistinguishable. Assuming no large gravity sources, in special relativity, there is the gamma-factor which is 1/sqrt(1-(v/c)^2). When v == 0, the gamma-factor is 1. When v == 10% of speed of light, the gamma factor is 1.005037815... as you can see they are still very close. Now 10% speed of light is 30,000,000 meters/sec or 67,033,440 miles/hour (approx). I couldn't find any info on velocities (although I didn't look _that_ hard), so I assume that to keep you from sitting around at your keyboard for ages (30-40 minutes Earth to Mars at 10% speed of light) while travelling, time will be sped up by the simulation... or else some new form of propulsion will be 'invented' that gets you to high speeds w/o the relativistic effects. Also, for those interested, the gamma-factor is the proportional factor for measured times,lengths, and masses (t' = gamma*t, L' = gamma*L, M = gamma*M'). There will be distortions (length contraction mostly) due to these factors and some others, but none will involve the bending of light, that is part of the theory of general relativity, and that is hardly applicable here except perhaps near the surface of the sun... not likely you'll be travelling there and last long enough to notice:) I personally wouldn't mind seeing a relativistic simulation... having to take into account the fact that everyone will measure events to happen at different coordinates in space and time should spice up communications quite a bit... and the visual effects could be quite cool.
As for the name Terminus, when I first saw the promotions I thought 'Foundation!'... while glancing through the review, I noticed it mentions the ability to fashion many permutations from the initial plotlines and simulate what will happen... 'psychohistory' anyone? (if you don't know what this is (doubtful, here anyway) check out Isaac Asimov's Foundation books.. if you can break away from/.;)
This is all rather ironic to me, as just before reading this article, I was driving home and talking with my dad (who is a trademark lawyer) about how themes of stories (shakespeare was the example) are not copyrightable, they are so basic and so representing of humankind that for every story there are tons others with the same theme. (I'm talking about theme such as 'guy meets girl..' or 'family feud, but one member of a family has fallen in love with a member of the enemies family aka Romeo and Juliet or West side story') This seems to me to be about the same thing, themes in games, themes in stories... why are they any different? Often a game is a story (zelda,etc..). Even Doom has a theme... something about aliens..;)
In the world of Physics, you can have a complete theory, explaining everything in crystal-clear logic and irrefutable proofs. But if the central, guiding assumptions are wrong, the whole theory collapses. Law, like Physics, is based on Logic, and on guiding assumptions. It is high time that the guiding assumptions of our Law were based on reality (experimental evidence) rather than the groundless dreams of lawyers and legislatures. In applying this rule to copyright law, one should note that our current law is based on the fact that a piece of work required significant effort to duplicate. This is not the case anymore, correspondingly, the Law needs to be written with the truth as its guiding assumption, or else it is wrong, and any rightness in it is purely coincidental. As any programmer should also know, tagging on bits and pieces of the solution to an already defective structure is not the way to proceed (witness: Microsoft Windows). The United States claims to follow the guidelines of the Constitution in creating legislation, which in essence state the protection of the rights of the individual (speech,arms,trial-by-jury,etc). It is time that the U.S. government wakes up to the reality that exists today and resolves the issues of today following the guidelines of the Constitution which it has sworn to uphold. Democracy is a flawed system, but perfection would be too much to demand. Let us instead see a well thought out common sense approach to resolving the issues of today following the precepts of the Constitution, and relying on the present reality for basis. Matt Danish mrdlinux@yahoo.com -- The Second Amendment is insurance against the day any one of the Bill of Rights is repealed. It keeps the politicians honest; no wonder they wish to restrict it.
One of the biggest areas too many programmers these days lack in is variety of languages. C/C++/Java have become so ubiquitous that everyone forgets all about all the other languages out there, Scheme, Lisp, Eiffel, Smalltalk, Forth, Haskell, Prolog and many many others are often better languages than the usual C/C++/Java contingent. You can learn a lot by using another language for a while, you may even dump your old one completely ;) It would be a terrible shame if your students never learned how much C is flawed, or how poor a hack C++ is. The very thing keeping the C-like languages in use is ignorance of anything else. If you got students accustomed to different ways of looking at problems (ie, functionally) they will have much less trouble later on.
is that there are no links to 'Space Travel'. Dammit they hyped up that game more than quake, so now i've got to see it. ;)
"Simulate an entire solar system", "Fly between and land on the various planets", "Rendered in stunning graphics" (What is stunning graphics on a PDP-7?) Oh wait, its probably in PDP assembly. Bah, maybe they open sourced it
I run Linux on my two personal computers, a hacked up old Redhat dist and a newer Debian (potato) dist. While I like Linux a lot, both distributions caused a great hassle in terms of getting things neat and clean. Too many packages wallowing around with configuration files scattered. I understand Debian is trying to work on this (and there's always slackware...) but I have found that FreeBSD's layout is very clean and simple and when you are setting up a server you do not want lots of junk cluttering up your disk space and possibly posing a security hazard. OTOH, I installed XF86 on the Linux boxes (4.0.1 on the redhat :) and that has a tendency to waste disk space, cause security problems, and clutter up directories; I generally do not install X on FreeBSD boxes. Oh well :) :)
In any case, my main point is that the BSD's tend to be much more cleanly packaged (and NetBSD has cleaner code..), whatever the kernel's performance is like. There is probably a Linux distribution out there that tries to focus on remaining clutter-free, but with all the many distributions out there it is often hard to see the smaller ones. Not to imply having many distributions is a bad thing, choice is always good. But when you have to setup multiple servers, inanities can drive you nuts.
OTOH, I created a two-floppy IP Masq (or NAT, whatever;) firewall off of Linux 2.2.14, to run on a 486-DX50, 8 MB RAM, with no harddrive. With 10BaseT ISA cards, it managed to pass 400k/s while performing as a IP Masq firewall. Not too shabby, running FreeBSD on that (and probably the others) would take a lot more effort, if it were even possible. But it did take an awful amount of time to get going... (tip: hack slackware bootdisks instead of trying to create your own from scratch
It boils down to a matter of personal choice I suppose. I use both, like both, and I get along just fine.
(define (this-is-more-elegant b e)
(cond
((> e 0)
(* b (this-is-more-elegant b (- e 1))))
(else
1)))
(this-is-more-elegant 2 8)
=> 256
float than_this(float, int);
float than_this(float b, int e) {
int i;
float sum=1;
for(i=0;i<e;i++)
sum*=b;
return sum;
}
than_this(2,8);
=> 256
(define (exp b e)
(this-doesnt-use-stack 1 b e))
(define (this-doesnt-use-stack sum b e)
(cond
((> e 0)
(this-doesnt-use-stack (* b sum) b (- e 1)))
(else
sum)))
(exp 2 8)
=> 256
Truthfully, people who think functional languages are somehow inferior to imperative languages are talking out of their ass. Functional languages can be just as powerful and just as fast as imperative languages (if not more powerful and faster!), its just that most implementations suck. Remember BASIC, and unstructured coding? When you upgraded to structured coding you did away with things like 'goto's. When you upgrade to functional programming, you toss away side effects. What are side effects? In a functional language, a function will always return the same result given the same arguments. Anything that does not has a side effect. A good example of a side effect are global variables, or in fact, assignment of any type. This is where recursion comes into play, as you noticed in the example I gave above; in order to decrement the variable, I simply called the function again with the variable decremented. There was no assignment, only initialization. My third example is the C program rewritten in Scheme. It uses tail-recursion to loop. Alas, Scheme does not push anything on the stack when tail-recursion is used, so there is no possibility of a stack overflow. Scheme can be as high level or as low level as you like, just like C, after all whats the difference between inb(0x3f8); and (inb 0x3f8) ? I will even go as far as to venture that Scheme can be optimized to the point where it is competitive with hand-coded ASM, but since most will laugh, I will leave that as speculation (for now).
As for the original complaint of the post I am replying to... Scheme is a heck-of-a-lot more nice looking than C, and a lot easier to understand once you lose the '{' and ',' craziness. Its grouped just like any old mathematics equation: with parentheses! f(x,y) and (f x y). f(g(x),y) and (f (g x) y). I find the Scheme easier to read than the math notation. Sure it uses prefix notation, but its a functional language it only makes sense! (+ 1 1), (plus 1 1), plus(1,1); whats the difference? Instead of f(g(x),h(y)) + i(x,j(x)) you have (+ (f (g x) (h y)) (i x (j x)))
Remember, everything is grouped by parentheses, so you have (g x) and (h y) and (j x), call them a b and c, then you have (f a b) and (i x c) call them d and e, and you're left with (+ d e). Of course if you've never touched algebra... well go learn it now, wouldnt want to hire a programmer who couldnt do algebra, eh?
(and i didnt even discuss lambda-functions! ack!;)
So lets fix up that Haiku:
(define (language good)
(write (bug-free-code (language 'Scheme))
(read (code 'easily)))
The ' means its a symbol, not a variable or function.
:)
In totalitarianism you have a CPU and everything obeys that CPU.
In democracy the various hardware components perform the job of the CPU by voting on "rules" that determine system behaviour.
In communism everything works in cooperation for the good of the whole. A CPU is not needed.
As you can see, communism doesn't work too well when you have non-like minded citizens. Which is why I believe it won't ever work in anything but small communities.
And democracy is far from being perfect. The bread-and-circuses problem of voting irresponsibly is a serious issue. And your proof of communism's relationship to totalitarianism is fundamentally flawed because it assumes that countries that have called themselves "communist" are in fact, while they are not - they are totalitarianistic. As I mentioned earlier and will reiterate - communism is opposite of totalitarianism because communism implies no government while totalitarianism implies a very strong and large government.
50 years of red-bashing takes its toll. But lets not forget that we are not perfect either.
Whaddya mean? I sure didn't have any trouble.
I'd like to interject the fact that Common Lisp has something called the CLOS, Common Lisp Object System, which qualifies Common Lisp as an object-oriented language as well.
Read about CLOS
I've been a C, and then C++ programmer for quite some time, but I've been using Lisp and Scheme more and more recently and have been quite intrigued.
I'm afraid so. This oil slick will greatly affect penguins at C.
Normally you are correct, about prefix, but in the case of a for() loop that is not the case. Go ahead, try it out, I just tested it with GCC myself. I've always thought of a for() loop like this:
for( a ; b ; c) { d; }
a;
while( b ) {
d;
c;
}
As you can see, it really doesn't matter whether you use prefix or not.
Try this code:
#include<stdio.h>
int main (void) {
int i;
for(i=0;i<1;i++)
printf("hi\n");
for(i=0;i<1;++i)
printf("hello\n");
}
Output for me was:
hi
hello
But if things worked as you said, it would merely be:
hi
What you pointed out is important, but it doesn't apply in this case.
On the second link of this article, if you scroll up, you will see convincing evidence that open source software has nothing to fear about security competition from closed source software.
Here is a direct link, read the first article, although I doubt you will be surprised.
This is true, but that was not the problem. The problem was that they were assigning the read count to the array that was supposed to hold the values that were read! Since they only read one byte at a time, the array always contained the value 1.
...
;)
Here is this relevent code:
char RandBuf;
for(i = 0; i <= count; ++i) {
RandBuf = read(fd, &RandBuf, count);
From the read man page:
ssize_t read(int fd, void *buf, size_t count);
On success, the number of bytes read is returned
As you can see, RandBuf was being set to the number of bytes read, instead of the byte read.
In fact, I have my own issue with that code. The for loop should read:
for(i = 0; i < count; ++i)
But I am not very familiar with the context of this code. The original code would loop count + 1 times while my version will loop count times. This may or may not be the desired behaviour. I guess I'll go send in another bug report
Anyone notice that Extrans doesnt seem to be working? or is it just me.
I stopped reading about the time he starts trashing ESR for his pro-gun stance. When you see someone ranting about 'gun nuts' that generally proves they are a nut themselves. It was too sickening to read onward, his blatant disregard for objectivity (children trained from 12 to use weapons running around killing ? I picked up my first rifle when I was 8 and I've yet to kill anyone) and his complete focus on RMS (who is an idealist, and does not represent the majority of people), to the point where I would like to ask him: "Should I format my Hard disk and install Win2k because of all the poor starving programmers at Microsoft?" Not only that, but he accused RMS of citing without reference, but look at all the 'evidence' he cites w/o reference in his anti-gun tirade. Go figure!
Really, give me a break. In his very trashing and often unjustified attacks on the ideals of RMS he contradicts himself. (he accuses RMS of being a hot-head when his own views in a supposedly 'objective' ethics essay are hot-headed)
In concentrating so much on the GNU he gives token credit to actual products produced by open source enthusiasts, and the spirit of cameraderie it promotes. His argument is that software development should be a self-serving process and nothing else. Having people tell me that I'm a communist and I'm doing wrong and all sorts of other things is really sad, when all I'm trying to do is do something that I like to do, and help other people out at the same time. There is no software, no work at all in fact, that is produced without the help and influence of other people, and to deny their efforts is what is truely selfish.
This only goes to show to me, again and again, that anything written about "Ethics" and "Morals" is generally bullshit and more about telling you how to live then what is "right and wrong", as if anyone could ever define that.
Meyer can say what he wants but obviously he's a much better OO programmer than an ethicist. Of course, other people have said he's a bit stuck up about OO... ah well OO is just another tool for software creation and the way I use it would probably get me on this Meyer guy's shitlist. Time people learn that one method is not the be-all end-all of life.
My sloppy 2.718 cents anyway
This will make using Gnutella just that much more exciting now that you never know what the server you are getting your MP3s from is doing with your IP address. I suppose that some encryption authentification scheme could be thought of that assures that the MP3s are real, but that would just lead to live-bait IP-logging servers. So while Gnutella creates an distribution method impossible to stop, it also cannot protect against the inherent risks in obtaining files across the internet. What is even more dangerous is that one person could obtain the IP addresses of everyone on the network, by recursively requesting the IP address list from every IP address they get. A good solution to that would be to have many separate networks (like IRC). But the baiting method of obtaining IP addresses will probably be used by the copyright 'police' and should result in a cat & mouse type game. I can see Gnutella networks (and other similar ones) becoming fragmented into smaller networks of trusted individuals. Time will tell.
Not bad for a satellite... many are destroyed by the time they reach 10 years, or are almost completely useless thanks to all the dust and junk out there. Produced some great pictures, and aided science in a great way. Personally, I'm looking forward to the massive arrays of telescopes they're planning, that can take pictures of Earth-size planets... now hows that for dreaming:)
Interesting how reliable its been, despite having those troubles at first. One patch and it goes? Wish I could say the same for all software..
There was a telescope called Hubble
That had a tendency to see double
Sent over some men,
Who fixed it, and then
The creationists were in deep trouble.
As a general rule, physicists do not apply the Theory of Relativity to speeds lower than 10% of the speed of light, because its results, and the Newtonian results are almost indistinguishable.
/. ;)
Assuming no large gravity sources, in special relativity, there is the gamma-factor which is
1/sqrt(1-(v/c)^2). When v == 0, the gamma-factor is 1. When v == 10% of speed of light, the gamma factor is 1.005037815... as you can see they are still very close. Now 10% speed of light is 30,000,000 meters/sec or 67,033,440 miles/hour (approx). I couldn't find any info on velocities (although I didn't look _that_ hard), so I assume that to keep you from sitting around at your keyboard for ages (30-40 minutes Earth to Mars at 10% speed of light) while travelling, time will be sped up by the simulation... or else some new form of propulsion will be 'invented' that gets you to high speeds w/o the relativistic effects. Also, for those interested, the gamma-factor is the proportional factor for measured times,lengths, and masses (t' = gamma*t, L' = gamma*L, M = gamma*M'). There will be distortions (length contraction mostly) due to these factors and some others, but none will involve the bending of light, that is part of the theory of general relativity, and that is hardly applicable here except perhaps near the surface of the sun... not likely you'll be travelling there and last long enough to notice:) I personally wouldn't mind seeing a relativistic simulation... having to take into account the fact that everyone will measure events to happen at different coordinates in space and time should spice up communications quite a bit... and the visual effects could be quite cool.
As for the name Terminus, when I first saw the promotions I thought 'Foundation!'... while glancing through the review, I noticed it mentions the ability to fashion many permutations from the initial plotlines and simulate what will happen... 'psychohistory' anyone?
(if you don't know what this is (doubtful, here anyway) check out Isaac Asimov's Foundation books.. if you can break away from
This is all rather ironic to me, as just before reading this article, I was driving home and talking with my dad (who is a trademark lawyer) about how themes of stories (shakespeare was the example) are not copyrightable, they are so basic and so representing of humankind that for every story there are tons others with the same theme. (I'm talking about theme such as 'guy meets girl..' or 'family feud, but one member of a family has fallen in love with a member of the enemies family aka Romeo and Juliet or West side story') This seems to me to be about the same thing, themes in games, themes in stories... why are they any different? Often a game is a story (zelda,etc..). Even Doom has a theme... something about aliens..;)
In the world of Physics, you can have a complete theory, explaining everything in crystal-clear logic and irrefutable proofs. But if the central, guiding assumptions are wrong, the whole theory collapses. Law, like Physics, is based on Logic, and on guiding assumptions. It is high time that the guiding assumptions of our Law were based on reality (experimental evidence) rather than the groundless dreams of lawyers and legislatures. In applying this rule to copyright law, one should note that our current law is based on the fact that a piece of work required significant effort to duplicate. This is not the case anymore, correspondingly, the Law needs to be written with the truth as its guiding assumption, or else it is wrong, and any rightness in it is purely coincidental. As any programmer should also know, tagging on bits and pieces of the solution to an already defective structure is not the way to proceed (witness: Microsoft Windows). The United States claims to follow the guidelines of the Constitution in creating legislation, which in essence state the protection of the rights of the individual (speech,arms,trial-by-jury,etc). It is time that the U.S. government wakes up to the reality that exists today and resolves the issues of today following the guidelines of the Constitution which it has sworn to uphold. Democracy is a flawed system, but perfection would be too much to demand. Let us instead see a well thought out common sense approach to resolving the issues of today following the precepts of the Constitution, and relying on the present reality for basis. Matt Danish mrdlinux@yahoo.com -- The Second Amendment is insurance against the day any one of the Bill of Rights is repealed. It keeps the politicians honest; no wonder they wish to restrict it.