You would be surprised how much knowledge of "turing machines" (finite state machines are used in many algorithms), "functional languages" (what's wrong with them?) or "planar graph" (graph and other data structures knowledge might be the difference between a problem solved elegantly and the same problem solved with a clumsy solution) can actually help in the construction of software.
Yep. By a remarkable coincidence, I actually happen to have a summer job working at (guess what!) a trucking company struggling with logistics. I'm using the Filemaker database software --- a pragmatic, business-oriented RAD system if there ever was one. And it so happens that Filemaker's automatic field calculations are written in a functional language, and that Filemaker internally uses graph-theoretic algorithms to trace the dependencies between these calculations.
It should be an obvious point really, but both CS-ish knowledge and SoftEng-ish knowledge is important to be a skilled programmer. (Though I will admit that given a choice between only one or the other type of knowledge, I would choose the SoftEng guy to build my business system...)
Did you try using Keyhole's app before Google bought them out? I did. The interface sucked ass. It was a bloated program you had to install on your computer more concerned with showing flashy zooms than making it easy to find stuff. Google took their technology and made something useful out of it.
So, what if someone handed them a pendrive and asked them to grab some files from it, and it turns out that this pendrive would cause an attack like this? One could be switched by a black-hat, or planted, or mailed... put simply, the attacker wouldn't need physical access, just access to someone who does.
So the attacker would lose a 50$ pendrive for this stunt, not to mention the victim has seen his face and can report him to the police. Unless the stakes are really high (corporate espionage, bank robbery) nobody's going to attempt this.
There are similar but true anecdotes. In 2003, Buick had to change the name of its Buick LaCrosse to "Buick Allure" in French Canada after they found focus groups kept laughing at it. "La crosse" is Quebec slang for "screwing" (in both the sexual and "rip-off" sense).
He was talking about real programming languages to solve real problems, you listed obscure research languages with no practical use whatsoever (with the exception of Ruby). A more important addition to his list would be SQL, for relational, data-oriented programming.
I too was once a Lisp fan but I stopped advocating it for serious programming a long time ago. The reason the languages you listed are bad has more to do with the absence of good standard and third-party libraries and development tools as well as absence of target use (e.g. PHP = web programming, C++ = systems/speed programming, but Haskell = ???) than any issues with language semantics, which is not very important in real life.
Great post, I think you just captured what's wrong with management speak versus other professional jargon better than anyone else I've seen. Doctor-speak or programmer-speak or math-speak all invent new words to speak more precisely than you can with plain language; management buzzwords are less precise. That said, at least some management jargon is okay. For example, my boss (who is not a buzzword fan in general) just used the acroynm "APAR" today to mean "Accounts-payable Accounts-receivable". That's more precise than just "accounting".
You have a point, but another main fuel since the time of Ford is "economies of scale". Just do away entirely with large corporations would be a huge economic setback. Not to mention (to give an example you probably care about more) also an environmental setback, since it's harder to regulate lots of small companies than a few big ones. Observe that most of the damage currently being done to the South American rainforest is by small companies and individuals razing land for small-time farming, not corporate logging.
The influence of corporations on government policy is overrated IMHO. I saw a study last year (sorry no link) examining a set of U.S. bills and the influence of corporate lobbying was determined to be relatively low on decisionmaking, IIRC far lower than voting blocs like unions for example. Money can in the end only get you so many votes. Lobbying is a problem but certainly not a "collapse of civilisation" scale one.
Actually, as someone recovering from a back injury from programming on a laptop all day, I can tell you that muscular repetitive stress injuries are a much bigger health risk than eye strain. With a laptop, either the screen is too low or the keyboard is too high, so there's no way to use it ergonomically. You end up hunched and it messes you up over the long run.
Hm, from some googling it seems you're right. I know instant pack-of-card memorizers heavily use tricks like I described, so I assumed the Pi people did the same. I guess they are less useful when you have unlimited time to practice the sequence.
Sorry, but there is an error in your proof. If you reread the Gelfond-Schneider theorem carefully, one of the conditions is that the base of the exponential must be algebraic. e is of course not algebraic, so the theorem does not imply that e^(i*pi) is transcendental.
Just for the record, by definition i is irrational too (it can't be expressed as a ratio of integers), even though we don't usually think of it as one. So e.g. the Gelfond-Schneider theorem applies to i^i.
Not true. Memorizing the digits of Pi involves learning a specific mnemonic system optimized for long strings of digits. A typical system involves first memorizing "pegs" for each number from 01 to 99. E.g. 12 = chicken, 45 = Darth Vader. So once you've learned the "pegs", instead of memorizing the string "1245" you imagine Darth Vader eating chicken wings. There are lots of variants; this person probably knows a peg for each number from 001 to 999, and also has some kind of "pathing" technique to remember the ordering (e.g. remember a familiar path from home to work and place the pegs alongside it).
That's how they do it; their general memory skills aren't that much better than anyone else's. I know, I've used similar tricks (for learning the thousands of Japanese characters in my case) but I still forget meetings.
My biggest problem with the Windows command-line tools is that the documentation is terrible and they don't necessarily come with standard out-of-the-box Windows installations. So although I've heard you can do every administration task on the command line, I've no idea how. (By the way, this is a pet peeve of mine: people complain about Linux manpages but for some reason it's rarely mentioned how godawful the Captain-Obvious Microsoft documentation is. I've been using Windows since 3.1 and I've never --- not once --- been helped in any way by Microsoft help files.)
If you or anybody else could point me to decent documentation on the Windows command line, I'd appreciate it.
Of course fansubs aren't affecting sales much now that anime has a high profile, but you're completely missing the fact that they virtually created today's commercial market for anime. In the early and mid-nineties anime had a low profile, and no companies thought it would be profitable to import anything except what was "attuned to the tasted of Americans" (ultraviolent stuff like Akira and Ghost in the Shell). But then a base of "early adopters" started to grow. This group had no access to commercial anime, but they thrived by mailing each other fansubbed tapes, then switching to distribution over the Internet. The key point is that this group was so dedicated that they recommended anime to all their friends.
Do you think if they had started selling Kimagure Orange Road at Walmart right off the bat it would've turned a profit? Would anyone have magically known that "it's good" just from the cover and bought it? As any marketer will tell you, word of mouth is a much more powerful form of marketing than advertising, especially when it comes to things that are strange and unfamiliar. The commercial market you're taking for granted is the result of a long process of buildup driven by fansubs.
relatively low-quality fansubs with practically no distribution to speak of have almost no effect on sales of anime.
It's obvious you've hardly had any contact with fansubs. Fansubs back in 1995 were the same or somewhat lower quality than commercial subs. Today, fansub quality of high-profile series is vastly higher than most commercial efforts --- more accurate and complete translation (including of writing), karaoke-style opening song translations, beautiful fonts, the works. It's the difference between companies on a budget and fans with unlimited time, competing against each other, and who really love what they do. Having been "raised" on fansubs myself, I'm always faintly disgusted when I come across a commercial sub.
And Bittorrent is actually a more efficient means of distribution than DVD sales. While statistics are impossible to obtain, judging from the traffic on anime bittorrent sites I wouldn't be surprised to hear that much or most otaku-oriented anime is still watched in fansub form.
(The theorem which got me was the proof that for any set A, the powerset, P(A), has more elements, even for infinite sets A)
Yeah, that's what exactly what I was talking about (that's the "diagonalization argument" I mentioned).
When you have done your major, do you think you will keep with mathematics or do something else? (Like computer science, etc)
Nah, I think I'm not cut out for doing maths in grad school. Even though I may have the raw intelligence (maybe) I don't have the monomanical passion for mathematics to devote several years of my life to it. At the undergraduate level it's still possible to coast by at 50% power if you're bright (though don't get me wrong; it's still orders of magnitude more work than high school, which is more like 5% power) but that isn't enough in grad school. I'm planning to go work for a while (maybe go to China) and then possibly get a masters in something else. Anyway, don't let that dissuade you though, it's a good sign that you've started doing maths so early.
Transfinite set theory seemed awe-inspiring and wonderful to me at first, but more and more I'm wondering whether it expresses any deep truths or is just a game of definitions in formal logic. In some sense, an uncountable set is one that contains an element (and thus necessarily, infinitely many such elements) that cannot be expressed (i.e. distinguished from all other elements of the set) using a finite number of symbols. (You'll notice that diagonalization proofs of uncountability rely on this property.) So since we'll never be able to ever "grasp" this element on its own, we can ask what good it is, if it in any meaningful sense exists, and can't we just get rid of it.
Indeed it's not clear that sets bigger than countably infinite are really needed in most of mathematics (with the important exception of measure theory and probability). Instead of real numbers in analysis you could use a countable set, the computable numbers (numbers that can be computed using a Turing machine --- this includes all specifically known transcendental numbers, such as e, pi, Liouville numbers etc) and it looks like all of the theory could be built. The main difference is that it would be a major pain to always have to associate a Turing machine with each number. So Cantor's theory might be viewed as basically a semantic convenience, a logical hack. I don't know though, I'm actually taking a set theory class next semester so my views on this might yet change.
My favorite topic is topology I think, though I've yet to explore it very deeply.
Well, the useful and somewhat nonobvious part of the sieve of Erastosthenes is the fact that you only need to check divisibility by primes up to the square root. So it's very easy to tell whether a number less than 100 is prime: you only need to see whether 2,3,5,7 divide it.
One interesting and easy-to-prove thing to say about Mersenne and Fermat numbers is the following: let a,b be integers greater than 1, then a^b-1 is composite if it is not a Mersenne number, and a^b+1 is composite if it is not a Fermat number. AFAIK, this is the initial reason why these numbers were studied in the first place (and why Fermat falsely conjectured that all the Fermat numbers were prime).
The statement of the prime number theorem even without proof is rather important because it gives you a lot of feeling about the density of the primes. Since as numbers get big there are more and more possible divisors, it's obvious that the "probability" of a number being prime decreases. So my intuition led me to expect that after, say, a couple of billion, the density of the primes would drop to almost nothing. But this is far from the case: the PNT says that between one and two billion about 1 in 20 numbers are prime! The density of the primes becomes (say) one in a million only around the staggeringly huge number e^1000000.
Anyway, you're good at this stuff for someone still in high school. (Certainly better than I was in those days!) I'm sure you'll do very well if you decide to major in math at university. (BTW, I'm not a mathematician myself, just a senior undergraduate math major.) Note: tricky math is not quite as fun when you're forced to do it, though.
Not a bad start, but you haven't covered all the fundamental topics yet. Don't forget the sieve of Erathosthenes and Mersenne and Fermat numbers. Also, you should mention the prime number theorem, Riemann hypothesis and Goldbach conjecture even if you can't really prove anything.
A few corrections as I read through. Your definition of divisibility lacks rigor and needlessly invokes the division algorithm. Try instead: let a,b be integers, then b divides a if there exists an integer c such that a=bc. That's more elementary and defines divisibility for 0 and negative integers. It's "divisor", not "divider". Euclid did not discover unique factorization, his book is a compilation of the lost work of earlier mathematicians. The positive whole numbers aren't the "countable numbers" (although the set is countable), they are the "natural" numbers.
By the way, if you like recreational mathematics I recommend you read "Proofs from the Book" and Conway's "Book of Numbers". Both are a bit hardcore but they are elementary and there's a lot of fun stuff in them.
You might think that, but in fact Mengele's "research" was worthless scientifically as well. It was just an excuse for sadism. From the Wikipedia article:
Almost all of Mengele's experiments were of dubious scientific value, ignoring the lack of ethics involved, including attempts to change eye color by injecting chemicals into children's eyes, various amputations and other brutal surgeries, and in at least one case attempting to create an artificial "Siamese twin" by sewing the vein in two twins together; this operation was not successful and only caused the hands of the children to become badly infected.
In sciences like chemistry or physics, or other disciplines, knowledgeable people peer-review ideas before they get published, or widely at least. Those ideas are more measurable or provable, and seem to amount to more than a heap of words without any mathematical basis. The same is mostly not true in computing.
Wha? I don't think computer science journals are any less stringent in their peer review than those of any other discipline. I mean, unless you're talking about Wired magazine or something. But scientific advances are peer-reviewed, and formal standards about the likes of network protocols and programming languages are usually written by committees of experts. I don't know where you're seeing these "heaps of words without any mathematical basis".
The flip-side is that students who don't know how to use the different shells are probably screwed anyway once they get into the real world. Go figure.
If I'm thrown into a shell I don't like, I just type "bash"<enter> and that's that. If the students can't figure that one out, they really are screwed.
(I'd say that calling the US academic network "Internet2" is misleading -- it's just another network, albeit a fast one.)
Indeed I'd bet it would never have caught the RIAA's attention if it had been called something like "US National Academic Network" instead of "Internet2". I imagine the name "Internet2" made them think this was the "next Internet" which the P2P people would all run to after they cracked down on the regular Internet.
It's true that DDR is not really dancing, but in practice having DDR experience still makes you a considerably better (real-life) dancer than most people. You can move with more confidence and rhythm. No one has to know where you learned it!
Yep. By a remarkable coincidence, I actually happen to have a summer job working at (guess what!) a trucking company struggling with logistics. I'm using the Filemaker database software --- a pragmatic, business-oriented RAD system if there ever was one. And it so happens that Filemaker's automatic field calculations are written in a functional language, and that Filemaker internally uses graph-theoretic algorithms to trace the dependencies between these calculations.
It should be an obvious point really, but both CS-ish knowledge and SoftEng-ish knowledge is important to be a skilled programmer. (Though I will admit that given a choice between only one or the other type of knowledge, I would choose the SoftEng guy to build my business system...)
Did you try using Keyhole's app before Google bought them out? I did. The interface sucked ass. It was a bloated program you had to install on your computer more concerned with showing flashy zooms than making it easy to find stuff. Google took their technology and made something useful out of it.
So the attacker would lose a 50$ pendrive for this stunt, not to mention the victim has seen his face and can report him to the police. Unless the stakes are really high (corporate espionage, bank robbery) nobody's going to attempt this.
Er, I know you were trying to be sarcastic, but isn't that perfectly true?
There are similar but true anecdotes. In 2003, Buick had to change the name of its Buick LaCrosse to "Buick Allure" in French Canada after they found focus groups kept laughing at it. "La crosse" is Quebec slang for "screwing" (in both the sexual and "rip-off" sense).
I too was once a Lisp fan but I stopped advocating it for serious programming a long time ago. The reason the languages you listed are bad has more to do with the absence of good standard and third-party libraries and development tools as well as absence of target use (e.g. PHP = web programming, C++ = systems/speed programming, but Haskell = ???) than any issues with language semantics, which is not very important in real life.
Great post, I think you just captured what's wrong with management speak versus other professional jargon better than anyone else I've seen. Doctor-speak or programmer-speak or math-speak all invent new words to speak more precisely than you can with plain language; management buzzwords are less precise. That said, at least some management jargon is okay. For example, my boss (who is not a buzzword fan in general) just used the acroynm "APAR" today to mean "Accounts-payable Accounts-receivable". That's more precise than just "accounting".
The influence of corporations on government policy is overrated IMHO. I saw a study last year (sorry no link) examining a set of U.S. bills and the influence of corporate lobbying was determined to be relatively low on decisionmaking, IIRC far lower than voting blocs like unions for example. Money can in the end only get you so many votes. Lobbying is a problem but certainly not a "collapse of civilisation" scale one.
Actually, as someone recovering from a back injury from programming on a laptop all day, I can tell you that muscular repetitive stress injuries are a much bigger health risk than eye strain. With a laptop, either the screen is too low or the keyboard is too high, so there's no way to use it ergonomically. You end up hunched and it messes you up over the long run.
Hm, from some googling it seems you're right. I know instant pack-of-card memorizers heavily use tricks like I described, so I assumed the Pi people did the same. I guess they are less useful when you have unlimited time to practice the sequence.
Sorry, but there is an error in your proof. If you reread the Gelfond-Schneider theorem carefully, one of the conditions is that the base of the exponential must be algebraic. e is of course not algebraic, so the theorem does not imply that e^(i*pi) is transcendental.
Just for the record, by definition i is irrational too (it can't be expressed as a ratio of integers), even though we don't usually think of it as one. So e.g. the Gelfond-Schneider theorem applies to i^i.
That's how they do it; their general memory skills aren't that much better than anyone else's. I know, I've used similar tricks (for learning the thousands of Japanese characters in my case) but I still forget meetings.
If you or anybody else could point me to decent documentation on the Windows command line, I'd appreciate it.
Do you think if they had started selling Kimagure Orange Road at Walmart right off the bat it would've turned a profit? Would anyone have magically known that "it's good" just from the cover and bought it? As any marketer will tell you, word of mouth is a much more powerful form of marketing than advertising, especially when it comes to things that are strange and unfamiliar. The commercial market you're taking for granted is the result of a long process of buildup driven by fansubs.
relatively low-quality fansubs with practically no distribution to speak of have almost no effect on sales of anime.
It's obvious you've hardly had any contact with fansubs. Fansubs back in 1995 were the same or somewhat lower quality than commercial subs. Today, fansub quality of high-profile series is vastly higher than most commercial efforts --- more accurate and complete translation (including of writing), karaoke-style opening song translations, beautiful fonts, the works. It's the difference between companies on a budget and fans with unlimited time, competing against each other, and who really love what they do. Having been "raised" on fansubs myself, I'm always faintly disgusted when I come across a commercial sub.
And Bittorrent is actually a more efficient means of distribution than DVD sales. While statistics are impossible to obtain, judging from the traffic on anime bittorrent sites I wouldn't be surprised to hear that much or most otaku-oriented anime is still watched in fansub form.
Yeah, that's what exactly what I was talking about (that's the "diagonalization argument" I mentioned).
When you have done your major, do you think you will keep with mathematics or do something else? (Like computer science, etc)
Nah, I think I'm not cut out for doing maths in grad school. Even though I may have the raw intelligence (maybe) I don't have the monomanical passion for mathematics to devote several years of my life to it. At the undergraduate level it's still possible to coast by at 50% power if you're bright (though don't get me wrong; it's still orders of magnitude more work than high school, which is more like 5% power) but that isn't enough in grad school. I'm planning to go work for a while (maybe go to China) and then possibly get a masters in something else. Anyway, don't let that dissuade you though, it's a good sign that you've started doing maths so early.
Indeed it's not clear that sets bigger than countably infinite are really needed in most of mathematics (with the important exception of measure theory and probability). Instead of real numbers in analysis you could use a countable set, the computable numbers (numbers that can be computed using a Turing machine --- this includes all specifically known transcendental numbers, such as e, pi, Liouville numbers etc) and it looks like all of the theory could be built. The main difference is that it would be a major pain to always have to associate a Turing machine with each number. So Cantor's theory might be viewed as basically a semantic convenience, a logical hack. I don't know though, I'm actually taking a set theory class next semester so my views on this might yet change.
My favorite topic is topology I think, though I've yet to explore it very deeply.
One interesting and easy-to-prove thing to say about Mersenne and Fermat numbers is the following: let a,b be integers greater than 1, then a^b-1 is composite if it is not a Mersenne number, and a^b+1 is composite if it is not a Fermat number. AFAIK, this is the initial reason why these numbers were studied in the first place (and why Fermat falsely conjectured that all the Fermat numbers were prime).
The statement of the prime number theorem even without proof is rather important because it gives you a lot of feeling about the density of the primes. Since as numbers get big there are more and more possible divisors, it's obvious that the "probability" of a number being prime decreases. So my intuition led me to expect that after, say, a couple of billion, the density of the primes would drop to almost nothing. But this is far from the case: the PNT says that between one and two billion about 1 in 20 numbers are prime! The density of the primes becomes (say) one in a million only around the staggeringly huge number e^1000000.
Anyway, you're good at this stuff for someone still in high school. (Certainly better than I was in those days!) I'm sure you'll do very well if you decide to major in math at university. (BTW, I'm not a mathematician myself, just a senior undergraduate math major.) Note: tricky math is not quite as fun when you're forced to do it, though.
A few corrections as I read through. Your definition of divisibility lacks rigor and needlessly invokes the division algorithm. Try instead: let a,b be integers, then b divides a if there exists an integer c such that a=bc. That's more elementary and defines divisibility for 0 and negative integers. It's "divisor", not "divider". Euclid did not discover unique factorization, his book is a compilation of the lost work of earlier mathematicians. The positive whole numbers aren't the "countable numbers" (although the set is countable), they are the "natural" numbers.
By the way, if you like recreational mathematics I recommend you read "Proofs from the Book" and Conway's "Book of Numbers". Both are a bit hardcore but they are elementary and there's a lot of fun stuff in them.
Almost all of Mengele's experiments were of dubious scientific value, ignoring the lack of ethics involved, including attempts to change eye color by injecting chemicals into children's eyes, various amputations and other brutal surgeries, and in at least one case attempting to create an artificial "Siamese twin" by sewing the vein in two twins together; this operation was not successful and only caused the hands of the children to become badly infected.
Wha? I don't think computer science journals are any less stringent in their peer review than those of any other discipline. I mean, unless you're talking about Wired magazine or something. But scientific advances are peer-reviewed, and formal standards about the likes of network protocols and programming languages are usually written by committees of experts. I don't know where you're seeing these "heaps of words without any mathematical basis".
If I'm thrown into a shell I don't like, I just type "bash"<enter> and that's that. If the students can't figure that one out, they really are screwed.
Indeed I'd bet it would never have caught the RIAA's attention if it had been called something like "US National Academic Network" instead of "Internet2". I imagine the name "Internet2" made them think this was the "next Internet" which the P2P people would all run to after they cracked down on the regular Internet.
It's true that DDR is not really dancing, but in practice having DDR experience still makes you a considerably better (real-life) dancer than most people. You can move with more confidence and rhythm. No one has to know where you learned it!
I congratulate you, sir, for putting the words "up us" in their correct, God-fearing order.