Of course those sorts of resources can be abused. However, students that are looking to learn the course work would use old practice tests, homework assignments, etc. as extra study and practice material, improving the chance that they learn what the course is teaching.
Certainly, in Reality, you would have to have several layers of bureaucracy sign off on the code release before you would be permitted to make it public.
Only if the code was owned by the company. Most employment contracts are work-for-hire, which means that the company gets to keep the fruits of your labor (intellectual and physical) in exchange for providing you with a salary or hourly wage.
This was not a work-for-hire situation. Therefore, legally, the student would have had ownership of the code, and so wouldn't have had to get permission from anyone to publish it. A closer analogy would have been your boss complaining about code that you developed and published on your own time, with your own resources, while away from work.
If I really wanted to study the interrelationships between different branches of mathematics, I'd have been a math major. I don't need to know how number theory relates to calculus via contour integration in order to understand the Diffie-Hellman problem.
Computer science, as you alluded to, has to do with the theory of computable and tractable functions. However, calculus has little enough to do with that.
Personally, I'd prefer more math in computer science programs, not less. But, it has to the right kind of math. Forcing multivariable calculus down a computer scientist's throat isn't going to help them with propositional logic. It isn't going to help them understand the Church-Turing thesis, nor will it help them understand the significance of the P=NP question. It won't even help them understand the basic rules of probability that underlie Monte Carlo simulations. And I haven't even started with the field of number theory, upon which all modern cryptography lies.
I think its high time we stopped fetishizing calculus, and recognize that its not always the be-all and end-all in terms of having practical application.
Their A's in class will not help them in an actual research position.
So, for the vast majority of students that aren't going into research, it matters not a whit, then. As for the few that are pursuing research positions, well, they're likely self motivated enough to have learned the material properly anyway.
The way I see it, Paul is using Lisp as a sort of admissions test. If you're motivated and bright enough to learn a "useless" language like Lisp on your own, you're motivated and bright enough to do excellent work in whatever language you're given. I maintain that Paul Graham's results came not from his choice of Lisp, but his choice of self-taught Lisp programmers (are there any other kind?). He could have had them programming in Java or even COBOL and his company would still have run circles around the competition.
The problem is that, if everyone starts using Lisp, as Mr. Graham advocates, the value of knowing Lisp goes to zero. If everyone knows Lisp, then one can't use that as a measure to distinguish bright programmers from average ones. In that case one might have to use another, even more esoteric language (Brainfuck, perhaps?) to demonstrate aptitude and motivation.
Cowards and pacifists are the true perpetuators of everything that is heinous in my opinion because there is nothing more disgraceful than a group of good people who sit idle while something truly evil is happening.
Its true that having good people stand by while heinous things happen is a tragedy. However, one must never forget that the fault lies with the one ones that perpetrated the tragedy, not the ones that "allowed" it to happen, for some definition of allowed. Violence doesn't solve all problems and neither does pacifism. However, one must see that there are longer term consequences to letting vigilante mobs ruin people's lives on amateur sleuthing, hearsay, and rumor.
I'm no fan of the Chinese government, but I'd rather be ruled by them than by these Internet mobs; its the same as saying I'd rather live in China than Somalia or Afghanistan.
That's true, but, it should give at least a taste of the experience a typical Chinese person encounters when he or she tries to browse the web. For that reason alone, it might be useful to try out (in a virtual machine, of course).
Why are other programming languages so hard? And is the difficulty justified by the additional power?
Well, that all depends on what you mean by "power". In one sense, all Turing-complete languages are equally powerful, since the set of solvable problems for all is the same.
In the sense of being "easy to use" or "easy to learn", however, I would say that it is necessary for some languages to be "hard", in the sense of having fewer layers of abstraction between the programmer and the hardware-level instruction set. These languages allow those that need finer grained control to have it. In more concrete terms, I'm glad Assembler exists (for the sake of those making device drivers), even if I'll never personally use it.
Is it *necessary* that a language (cough, cough, C++) be an ergonomic disaster to be powerful?
Again, it all depends on how you define "ergonomic disaster". There are those who feel that C++ is a useful addition to C that makes object orientation easier while still not obscuring the central structure of C. C++ is no more powerful (in absolute terms) than any other Turing complete language - it just makes some problems easy while making others hard.
Trying to say that one programming language is more "powerful" than another is like trying to say that a hammer is "more powerful" than a screwdriver.
The case cited in the article is much more analogous to the latter scenario than the former. The viewers were neither physically nor temporally near the perpetrator, and therefore had no realistic chance of stopping the crime. Rather than strike out on their own the proper course of action would have been to turn over their findings to the police, so that the accused could have at least some chance of answering the charges levied against her. I know China's courts aren't exactly models of fairness and justice, but I think I would prefer even a Chinese court to an Internet vigilante mob.
There are behaviors that I would regard as inherently evil. Some vigilantes do things that are inherently evil. Some do things that are what I would consider good. The problem with the class of people "vigilante" in general is that they're acting outside of an exterior controlling force, so you have no guarantee that they're working for the betterment of society. But an animal or human abuser that causes harm without benefiting society (as opposed to a medical researchers or equivalent) is scum. There's no chance that they're doing something good, or for the right reasons. I can't bring myself to condemn someone who would fight against that kind of behavior.
I have two objections to that point of view. First, how do we know that the amateur sleuths' fact finding was correct? How do we know that they didn't finger the wrong person, and now some innocent victim is living in fear for no apparent reason? All we have is the word of these 'human flesh search engines'.
Civilized countries have laws and courts for this very reason. Individuals, especially when they are outraged, can and often will make mistakes, and outside authority is needed to ensure that the accused has a chance to speak up and make sure that their side of the story is heard too.
Second, I don't think these villains are really any better than the person they are condemning. Just like she allegedly derived pleasure from the destruction of animal lives, these internet vigilantes deserve pleasure from vengeance resulting in the destruction of human life. If they were truly interested in justice, as they claim, they would petition the Communist Party to step up enforcement of animal cruelty laws, or enact animal cruelty laws if none are on the books. The fact that they choose to directly attack the person, rather than trying to change institutions shows that they're not interested in justice, but rather are simply deriving vicarious pleasure from another's suffering, just like the person in the video.
I agree that peer pressure keeps us from doing many things that are unethical but not illegal. However, I do think that scrawling death threats against someone is a little bit more extreme than saying, "Hey! That's a pretty rotten thing to do."
The grandparent poster was not saying that internet vigilantism isn't always unjustified. In the three cases cited in the article, it clearly was. The problem is, once these vigilante groups are mobilized, they are not very easily demobilized. Also, they don't give the accused a chance to answer and defend themselves. In such an environment its very easy for the mob to go after the wrong person, either through mistaken identity or intentional frame-up.
To put it another way, the only assurance we have of the accuracy of this mob's sleuthing is the claims of the mob themselves. There are no even notionally unbiased authorities looking at the evidence from both parties and trying to decide if someone is guilty.
You'll notice that in cities like New York it is now a CRIME to ignore a crime in progress (Good Samaratin law)
You're obligated to call police, not take action yourself. In fact, if you imprisoned someone who you thought was stealing from you (even if you had evidence) the cops would haul you off to jail before they went after the would-be offender.
I think if a crime is commited, and I can respond to it in a way that will prevent further loss of life, realty, property, et al. before anyone else can, then I will.
That's a very dangerous attitude to take. After all, you are not omniscient. All you have is the evidence before you, which may or may not be telling the whole story. Unless you let the accused have a chance to stand and answer the charges levied against them, all you're holding is a kangaroo court.
In short, I consider you no more civilized than the woman who put her high heel through that cat's eye.
Making a threaded application in C isn't difficult. Testing and debugging said application is. Given that threads share memory, rigorously testing buffer overflow conditions becomes doubly important. In addition, adding threading introduces a whole new set of potential errors (such as race conditions, deadlocks, etc.) that need to be tested for.
Its easy enough to create a multi-threaded version of a program when its for personal use. However, there are a number of issues that arise whenever a threaded program interacts with the (potentially malicious) outside world, and these issues are not trivial to test for or fix. That's why I think that parallel programs are going to be increasingly written in functional programming languages (Common Lisp, Haskell, Scala, etc.). The limitations on side effects that functional languages impose reduces the amount of interaction between threads, and reduces the probability that a failure in a single thread will propagate through the entire application.
To wit, had you bought $1000 worth of stock during the Great Depression, held onto it, and passed it down through generations, it would be worth many times what you paid for it, even adjusted for inflation.
Not necessarily. Yes, looking back from today, if I had bought stock in companies that survived and prospered after the Great Depression I would be a rich man. However, I would not have the advantage of that foreknowledge if I were alive then. I would be equally likely to pick a company that would go bust in the coming years as to pick a company that would survive and prosper.
Indeed, even if had a perfect record in picking companies that survived the Great Depression, I would still be risking a great deal. After all, three of the most prominent automobile manufacturers of that era (General Motors, Ford, and Chrysler) are largely worthless now. Many other prominent companies (US Steel, RCA, Bear Stearns) of that era are completely defunct or much devalued as well.
In short, if I had bought a bunch of shares during the Great Depression, it would be equally likely for me to end up with a stack of worthless paper.
I agree that private highways can and do exist. However, private highways are limited in the sense that they are only constructed between cities that already have a large amount of traffic flowing between them.
The nice thing about the Interstate Highway System is that it set up a set of nationwide transportation trunk routes, allowing new cities to grow, and allowing new services (like FedEx) to develop. Its difficult to see externalities like that arising from any sort of private highway system.
Yes, but the railroads also had substantial help from the federal government. It was the government's land grants (and the railroad's sale of those lands) that funded their construction.
If the railroads had to purchase their right of way, the cost (even in the 1800s) would have been far too high for a transcontinental railroad to have been commercially viable.
Ah yes, the "Irish Miracle". Somehow, all those stories fail to account for the fact that Ireland has been hit far harder by the banking crisis than the US has been, largely thanks to financial deregulation and tax "reform" that made all sorts of risky practices legal.
I rather like living in a country where the government still has the ability to bail out its banks if it needs to, thank-you-very-much.
The problem with "pay only for what you use" is that there are many things that have substantial fixed costs (like roads, sewers, etc.). These goods give only a limited amount of direct benefit to each consumer, but, the positive externalities they justify the cost.
As a more concrete example, if we paid only for what we used, there would be no interstate highway systems.
Erm, no. Your comment is pretty much a complete misreading of historical events.
First of all, it wasn't Hitler that told the governments of the world to, in essence, "Fuck off." That job was done by the Weimar Republic, who massively devalued the German Mark by printing massive amounts of it to pay their debts under the Treaty of Versailles. Unfortunately, this, in turn, created massive hyperinflation that destroyed the credibility of the mainstream political figures with the German people. It was that which enabled Hitler, who had been a fringe player until then, to break into national politics on a major scale.
The "Fuck you," you're thinking of is Hitler's blatant disregard for the arms limitations that were imposed on Germany (also in the Treaty of Versailles). While this further flouting marked the end of that treaty as a viable piece of international legislation, it had already been largely eviscerated by previous German governments.
it's probably worth it to them to have the US by the balls, because they have the ability to effectively destroy the dollar, and by extension, the US economy.
I disagree. I think that China has traded a whole lot of valuable goods for a whole lot of paper that could be made worthless by the government with very few consequences. You see, while default would create a massive spike in the interest rate charged for government bonds (and associated securities), I don't think that would affect the corporate stock or bond markets that much. The interest rate for corporate bonds is set against the interest rate for the safest government. Though that government is currently the USA, it does not necessarily have to be so.
So, while a default on the part of the government of the USA would wreak havoc on the short term, it would not upset matters too much in the long-run. The major players in the financial markets would select another economy to use as their benchmark (the EU, perhaps), and contracts would be redenominated in the new reserve currency. Yes, the American consumer would lose their ability to borrow at artificially low rates (thanks to the dollar being the world's reserve currency), but arguably, that is a privilege that wasn't worth having in the first place (look at the housing bubble, for instance).
Finally, we have to remember that China isn't the only foreign government that holds our debt. Japan, the UK, various EU nations, etc. all have major stakes as well. And, if we can't persuade the Chinese to go easy on our debt, then perhaps they could. After all, if the Chinese government pressed the US government into default, everybody would be hurt.
So, far from "having us by the balls", it seems that the only thing the Chinese have purchased with their massive trade surplus is a false sense of security.
Of course those sorts of resources can be abused. However, students that are looking to learn the course work would use old practice tests, homework assignments, etc. as extra study and practice material, improving the chance that they learn what the course is teaching.
Certainly, in Reality, you would have to have several layers of bureaucracy sign off on the code release before you would be permitted to make it public.
Only if the code was owned by the company. Most employment contracts are work-for-hire, which means that the company gets to keep the fruits of your labor (intellectual and physical) in exchange for providing you with a salary or hourly wage.
This was not a work-for-hire situation. Therefore, legally, the student would have had ownership of the code, and so wouldn't have had to get permission from anyone to publish it. A closer analogy would have been your boss complaining about code that you developed and published on your own time, with your own resources, while away from work.
If I really wanted to study the interrelationships between different branches of mathematics, I'd have been a math major. I don't need to know how number theory relates to calculus via contour integration in order to understand the Diffie-Hellman problem.
Perhaps they were referring to the irony of Amazon's EC2 being affected by one of the very natural disasters it advertises protection against.
Its rather like an "unsinkable" vessel going down on her maiden voyage.
Computer science, as you alluded to, has to do with the theory of computable and tractable functions. However, calculus has little enough to do with that.
Personally, I'd prefer more math in computer science programs, not less. But, it has to the right kind of math. Forcing multivariable calculus down a computer scientist's throat isn't going to help them with propositional logic. It isn't going to help them understand the Church-Turing thesis, nor will it help them understand the significance of the P=NP question. It won't even help them understand the basic rules of probability that underlie Monte Carlo simulations. And I haven't even started with the field of number theory, upon which all modern cryptography lies.
I think its high time we stopped fetishizing calculus, and recognize that its not always the be-all and end-all in terms of having practical application.
Their A's in class will not help them in an actual research position.
So, for the vast majority of students that aren't going into research, it matters not a whit, then. As for the few that are pursuing research positions, well, they're likely self motivated enough to have learned the material properly anyway.
Either that, or he thinks that computer science is discrete math and logic. Not everything has to do with numerical computing, you know.
The way I see it, Paul is using Lisp as a sort of admissions test. If you're motivated and bright enough to learn a "useless" language like Lisp on your own, you're motivated and bright enough to do excellent work in whatever language you're given. I maintain that Paul Graham's results came not from his choice of Lisp, but his choice of self-taught Lisp programmers (are there any other kind?). He could have had them programming in Java or even COBOL and his company would still have run circles around the competition.
The problem is that, if everyone starts using Lisp, as Mr. Graham advocates, the value of knowing Lisp goes to zero. If everyone knows Lisp, then one can't use that as a measure to distinguish bright programmers from average ones. In that case one might have to use another, even more esoteric language (Brainfuck, perhaps?) to demonstrate aptitude and motivation.
Cowards and pacifists are the true perpetuators of everything that is heinous in my opinion because there is nothing more disgraceful than a group of good people who sit idle while something truly evil is happening.
Its true that having good people stand by while heinous things happen is a tragedy. However, one must never forget that the fault lies with the one ones that perpetrated the tragedy, not the ones that "allowed" it to happen, for some definition of allowed. Violence doesn't solve all problems and neither does pacifism. However, one must see that there are longer term consequences to letting vigilante mobs ruin people's lives on amateur sleuthing, hearsay, and rumor.
I'm no fan of the Chinese government, but I'd rather be ruled by them than by these Internet mobs; its the same as saying I'd rather live in China than Somalia or Afghanistan.
That's true, but, it should give at least a taste of the experience a typical Chinese person encounters when he or she tries to browse the web. For that reason alone, it might be useful to try out (in a virtual machine, of course).
Why are other programming languages so hard? And is the difficulty justified by the additional power?
Well, that all depends on what you mean by "power". In one sense, all Turing-complete languages are equally powerful, since the set of solvable problems for all is the same.
In the sense of being "easy to use" or "easy to learn", however, I would say that it is necessary for some languages to be "hard", in the sense of having fewer layers of abstraction between the programmer and the hardware-level instruction set. These languages allow those that need finer grained control to have it. In more concrete terms, I'm glad Assembler exists (for the sake of those making device drivers), even if I'll never personally use it.
Is it *necessary* that a language (cough, cough, C++) be an ergonomic disaster to be powerful?
Again, it all depends on how you define "ergonomic disaster". There are those who feel that C++ is a useful addition to C that makes object orientation easier while still not obscuring the central structure of C. C++ is no more powerful (in absolute terms) than any other Turing complete language - it just makes some problems easy while making others hard.
Trying to say that one programming language is more "powerful" than another is like trying to say that a hammer is "more powerful" than a screwdriver.
The case cited in the article is much more analogous to the latter scenario than the former. The viewers were neither physically nor temporally near the perpetrator, and therefore had no realistic chance of stopping the crime. Rather than strike out on their own the proper course of action would have been to turn over their findings to the police, so that the accused could have at least some chance of answering the charges levied against her. I know China's courts aren't exactly models of fairness and justice, but I think I would prefer even a Chinese court to an Internet vigilante mob.
There are behaviors that I would regard as inherently evil. Some vigilantes do things that are inherently evil. Some do things that are what I would consider good. The problem with the class of people "vigilante" in general is that they're acting outside of an exterior controlling force, so you have no guarantee that they're working for the betterment of society. But an animal or human abuser that causes harm without benefiting society (as opposed to a medical researchers or equivalent) is scum. There's no chance that they're doing something good, or for the right reasons. I can't bring myself to condemn someone who would fight against that kind of behavior.
I have two objections to that point of view. First, how do we know that the amateur sleuths' fact finding was correct? How do we know that they didn't finger the wrong person, and now some innocent victim is living in fear for no apparent reason? All we have is the word of these 'human flesh search engines'.
Civilized countries have laws and courts for this very reason. Individuals, especially when they are outraged, can and often will make mistakes, and outside authority is needed to ensure that the accused has a chance to speak up and make sure that their side of the story is heard too.
Second, I don't think these villains are really any better than the person they are condemning. Just like she allegedly derived pleasure from the destruction of animal lives, these internet vigilantes deserve pleasure from vengeance resulting in the destruction of human life. If they were truly interested in justice, as they claim, they would petition the Communist Party to step up enforcement of animal cruelty laws, or enact animal cruelty laws if none are on the books. The fact that they choose to directly attack the person, rather than trying to change institutions shows that they're not interested in justice, but rather are simply deriving vicarious pleasure from another's suffering, just like the person in the video.
I agree that peer pressure keeps us from doing many things that are unethical but not illegal. However, I do think that scrawling death threats against someone is a little bit more extreme than saying, "Hey! That's a pretty rotten thing to do."
The grandparent poster was not saying that internet vigilantism isn't always unjustified. In the three cases cited in the article, it clearly was. The problem is, once these vigilante groups are mobilized, they are not very easily demobilized. Also, they don't give the accused a chance to answer and defend themselves. In such an environment its very easy for the mob to go after the wrong person, either through mistaken identity or intentional frame-up.
To put it another way, the only assurance we have of the accuracy of this mob's sleuthing is the claims of the mob themselves. There are no even notionally unbiased authorities looking at the evidence from both parties and trying to decide if someone is guilty.
You'll notice that in cities like New York it is now a CRIME to ignore a crime in progress (Good Samaratin law)
You're obligated to call police, not take action yourself. In fact, if you imprisoned someone who you thought was stealing from you (even if you had evidence) the cops would haul you off to jail before they went after the would-be offender.
I think if a crime is commited, and I can respond to it in a way that will prevent further loss of life, realty, property, et al. before anyone else can, then I will.
That's a very dangerous attitude to take. After all, you are not omniscient. All you have is the evidence before you, which may or may not be telling the whole story. Unless you let the accused have a chance to stand and answer the charges levied against them, all you're holding is a kangaroo court.
In short, I consider you no more civilized than the woman who put her high heel through that cat's eye.
Making a threaded application in C isn't difficult. Testing and debugging said application is. Given that threads share memory, rigorously testing buffer overflow conditions becomes doubly important. In addition, adding threading introduces a whole new set of potential errors (such as race conditions, deadlocks, etc.) that need to be tested for.
Its easy enough to create a multi-threaded version of a program when its for personal use. However, there are a number of issues that arise whenever a threaded program interacts with the (potentially malicious) outside world, and these issues are not trivial to test for or fix. That's why I think that parallel programs are going to be increasingly written in functional programming languages (Common Lisp, Haskell, Scala, etc.). The limitations on side effects that functional languages impose reduces the amount of interaction between threads, and reduces the probability that a failure in a single thread will propagate through the entire application.
If threading isn't parallelism, then what is? At what level of separation between separate streams of execution does an application become "parallel"?
To wit, had you bought $1000 worth of stock during the Great Depression, held onto it, and passed it down through generations, it would be worth many times what you paid for it, even adjusted for inflation.
Not necessarily. Yes, looking back from today, if I had bought stock in companies that survived and prospered after the Great Depression I would be a rich man. However, I would not have the advantage of that foreknowledge if I were alive then. I would be equally likely to pick a company that would go bust in the coming years as to pick a company that would survive and prosper.
Indeed, even if had a perfect record in picking companies that survived the Great Depression, I would still be risking a great deal. After all, three of the most prominent automobile manufacturers of that era (General Motors, Ford, and Chrysler) are largely worthless now. Many other prominent companies (US Steel, RCA, Bear Stearns) of that era are completely defunct or much devalued as well.
In short, if I had bought a bunch of shares during the Great Depression, it would be equally likely for me to end up with a stack of worthless paper.
I agree that private highways can and do exist. However, private highways are limited in the sense that they are only constructed between cities that already have a large amount of traffic flowing between them.
The nice thing about the Interstate Highway System is that it set up a set of nationwide transportation trunk routes, allowing new cities to grow, and allowing new services (like FedEx) to develop. Its difficult to see externalities like that arising from any sort of private highway system.
Yes, but the railroads also had substantial help from the federal government. It was the government's land grants (and the railroad's sale of those lands) that funded their construction.
If the railroads had to purchase their right of way, the cost (even in the 1800s) would have been far too high for a transcontinental railroad to have been commercially viable.
You can bomb railroads too...
Ah yes, the "Irish Miracle". Somehow, all those stories fail to account for the fact that Ireland has been hit far harder by the banking crisis than the US has been, largely thanks to financial deregulation and tax "reform" that made all sorts of risky practices legal.
I rather like living in a country where the government still has the ability to bail out its banks if it needs to, thank-you-very-much.
The problem with "pay only for what you use" is that there are many things that have substantial fixed costs (like roads, sewers, etc.). These goods give only a limited amount of direct benefit to each consumer, but, the positive externalities they justify the cost.
As a more concrete example, if we paid only for what we used, there would be no interstate highway systems.
Erm, no. Your comment is pretty much a complete misreading of historical events.
First of all, it wasn't Hitler that told the governments of the world to, in essence, "Fuck off." That job was done by the Weimar Republic, who massively devalued the German Mark by printing massive amounts of it to pay their debts under the Treaty of Versailles. Unfortunately, this, in turn, created massive hyperinflation that destroyed the credibility of the mainstream political figures with the German people. It was that which enabled Hitler, who had been a fringe player until then, to break into national politics on a major scale.
The "Fuck you," you're thinking of is Hitler's blatant disregard for the arms limitations that were imposed on Germany (also in the Treaty of Versailles). While this further flouting marked the end of that treaty as a viable piece of international legislation, it had already been largely eviscerated by previous German governments.
it's probably worth it to them to have the US by the balls, because they have the ability to effectively destroy the dollar, and by extension, the US economy.
I disagree. I think that China has traded a whole lot of valuable goods for a whole lot of paper that could be made worthless by the government with very few consequences. You see, while default would create a massive spike in the interest rate charged for government bonds (and associated securities), I don't think that would affect the corporate stock or bond markets that much. The interest rate for corporate bonds is set against the interest rate for the safest government. Though that government is currently the USA, it does not necessarily have to be so.
So, while a default on the part of the government of the USA would wreak havoc on the short term, it would not upset matters too much in the long-run. The major players in the financial markets would select another economy to use as their benchmark (the EU, perhaps), and contracts would be redenominated in the new reserve currency. Yes, the American consumer would lose their ability to borrow at artificially low rates (thanks to the dollar being the world's reserve currency), but arguably, that is a privilege that wasn't worth having in the first place (look at the housing bubble, for instance).
Finally, we have to remember that China isn't the only foreign government that holds our debt. Japan, the UK, various EU nations, etc. all have major stakes as well. And, if we can't persuade the Chinese to go easy on our debt, then perhaps they could. After all, if the Chinese government pressed the US government into default, everybody would be hurt.
So, far from "having us by the balls", it seems that the only thing the Chinese have purchased with their massive trade surplus is a false sense of security.