"The ancient "Art of War" text is pretty much about using manipulation and deceit to win wars without even doing battle. This kind of cunning is prized in Chinese culture."
- Hello, Tablizer, meet Niccoló - Hello Tablizer, I am Niccolò di Bernardo dei Machiavelli -.. and my other friend Valentino - Hello, my name is Cesare Borgia, nice to meet you
"The case is isn't that if you have some severly deficient research you should just publish it, more that you 1) Shouldn't see your paper as the last one (either by your lab, or by others) 2) Shouldn't try to cover ever inch of the matter."
You do not think OO enough. The problem is that you think about, "how can I modify an object" instead of "what services that class should provide". You rarely need inc, mult, etc, they are very primitive operations, and indicate a poorly designed interface -- as you noted, too. The class here is a Vector (or Point, which is the same), so instead of inc, mult, you can simply use add(Vector delta), and scale(int lambda) -- which are the natural operations for a Vector. You can also have rotate, mirror, etc.
We should seriously think about collecting modern knowledge, archiving, distributing and hiding it. Preferably on materials that survive centuries, and readable without any equipment.
I had problems with flight connections as well, but your mileage may vary.
Also, the day you travel, is already messed up, so even if you arrive in the early afternoon by plane, you cannot really work and most of the day is lost. On most of the trains I took, I could just plug in my laptop and work during the journey. For me, this was a definitive advantage.
You forgot to take into account the time for checkin, arriving earlier to the airport, travelling from the airport to your final destination (Train stations are usually in the city center). Still, train travel is longer, but it is much more flexible, as you can take any luggage you want.
The problem is, that getting out of and in the zone is mentally costly, and that means that many of us ends up programming in heroic bursts, and unproductive days after these bursts. The hardest part to learn self-control and maintain a strict daily schedule (and weekends are taboo -- for me this is still the hardest).
Money is important. I live in a country where there is so much shortage of engineers that we can just laugh and choose from whatever job we want. We are paid quite well. On the other hand, the country is full of lawyers, economists, and humanities students that just cannot get a job.
Now, suddenly, the whole society started to respect engineers, and now the girls all know that we have good salaries, and presto! -- we can have girlfriends, finally!:)
An unrelated, but also interesting trend is that of technical book sales - have a look, and notice how rapidly Java in particular is falling.
It is not clear from that picture, are they books about the Java _language_? Because that is not surprising -- the language have not changed much for years. A lot of books produced however (at least my library is full of them and still growing) about frameworks, libraries, etc that use Java.
The central limit theorem holds only when some strict conditions are met -- like finite variance of the contributing probability variables.
There are other stable distributions than the normal. Check this: http://en.wikipedia.org/wiki/Stability_(probability) "Important special cases of stable distributions are the normal distribution, the Cauchy distribution and the Levy distribution"
The Cauchy has neither variance neither expected value. Levy distributions also do not have higher moments.
.. or at least not the probability of the hypothesis. This is one of the errors that people make. Having 0.95 significance do NOT imply having 95% chance for the hypothesis being true! The significance is the probability of the test outcome assuming the hypothesis is true (in other words it is a likelihood value). You have to multiply it by a prior to obtain real probabilities.
Significance values will not even add up to 1 over the two hypothesises!
The root of the problem is that frequentists can not use probabilities for statements -- only for events. In frequentist terms you have to have a sigma algebra over some Omega state space which is measurable. Bayesians on the other hand can talk about the probabilities of any statements using probability theory as an extension of formal logic. I really recommend reading the books of E. T Jeynes and David McKay.
Other false assumptions people make with statistics:
- Everything is normally distributed
- Everything has a variance
- Everything has an expected value
- Hypothesis testing is without bias (in fact it is equivalent to give 50% prior probability to both hypothesises)
- Variance means average distance from mean
- Empirical variance does not have a variance
I think that the problem is that even modern IDEs simply mirror the file structure underneath the code. I like the concept of having one file/class in Java, it makes finding classes very easy. However it is clear that sometimes it is very annoying to have the classes distributed everywhere. In practice it would be nice to have an IDE feature that allows to partition the classes without changing the one file/class convention. I could imagine one partitioning that couples classes with their corresponding test cases. Another partitioning could couple classes in one package. You could create partitions that reflect collaboration between classes, etc.
The problem is that using files allows only one partitioning of code, and many times it would be better to have an arbitrary number of partitions. This is what I like in this IDE concept.
If I understand you correctly, your argument is that undecidable problems are rare in practice.
I do not think this is true. The problem that the proof of "simple" programs are usually intractable, even if done by humans, so we do not know how many undecidable problems are out there in practice, as we struggle even with the decidable ones.
The "run it and see" approach is not exactly "can be formally proven if the hardware it is running on is assumed (or preferably also proven) to be error free." which the original poster assumed.
Also, there is a vast number of undecidable problems, e.g. many variants of type inference, compressability etc. not just the Halting Problem.
"The ancient "Art of War" text is pretty much about using manipulation and deceit to win wars without even doing battle. This kind of cunning is prized in Chinese culture."
- Hello, Tablizer, meet Niccoló .. and my other friend Valentino
- Hello Tablizer, I am Niccolò di Bernardo dei Machiavelli
-
- Hello, my name is Cesare Borgia, nice to meet you
"The case is isn't that if you have some severly deficient research you should just publish it, more that you
1) Shouldn't see your paper as the last one (either by your lab, or by others)
2) Shouldn't try to cover ever inch of the matter."
Now that's why I like academia! [/sarcasm]
You do not think OO enough. The problem is that you think about, "how can I modify an object" instead of "what services that class should provide". You rarely need inc, mult, etc, they are very primitive operations, and indicate a poorly designed interface -- as you noted, too. The class here is a Vector (or Point, which is the same), so instead of inc, mult, you can simply use add(Vector delta), and scale(int lambda) -- which are the natural operations for a Vector. You can also have rotate, mirror, etc.
We should mix in some porn pictures, so that gives the motivation to relearn reading -- in hope of learning new sex tricks from the ancients :)
Ben Franklin has Bad Karma now...
... just like our models of markets.
We should seriously think about collecting modern knowledge, archiving, distributing and hiding it. Preferably on materials that survive centuries, and readable without any equipment.
I had problems with flight connections as well, but your mileage may vary.
Also, the day you travel, is already messed up, so even if you arrive in the early afternoon by plane, you cannot really work and most of the day is lost. On most of the trains I took, I could just plug in my laptop and work during the journey. For me, this was a definitive advantage.
"We have more volcanos you know, bigger ones even."
Ow, wait... I DO want a summer!
- Sincerely from Central Europe
You forgot to take into account the time for checkin, arriving earlier to the airport, travelling from the airport to your final destination (Train stations are usually in the city center). Still, train travel is longer, but it is much more flexible, as you can take any luggage you want.
The problem is, that getting out of and in the zone is mentally costly, and that means that many of us ends up programming in heroic bursts, and unproductive days after these bursts. The hardest part to learn self-control and maintain a strict daily schedule (and weekends are taboo -- for me this is still the hardest).
In fact many of these people chose their job _because_ it is dangerous. There are always people who want to push the limits.
Pink Ponies do not have lawyers and economists ;)
Money is important. I live in a country where there is so much shortage of engineers that we can just laugh and choose from whatever job we want. We are paid quite well. On the other hand, the country is full of lawyers, economists, and humanities students that just cannot get a job.
Now, suddenly, the whole society started to respect engineers, and now the girls all know that we have good salaries, and presto! -- we can have girlfriends, finally! :)
An unrelated, but also interesting trend is that of technical book sales - have a look, and notice how rapidly Java in particular is falling.
It is not clear from that picture, are they books about the Java _language_? Because that is not surprising -- the language have not changed much for years. A lot of books produced however (at least my library is full of them and still growing) about frameworks, libraries, etc that use Java.
The central limit theorem holds only when some strict conditions are met -- like finite variance of the contributing probability variables.
There are other stable distributions than the normal. Check this:
http://en.wikipedia.org/wiki/Stability_(probability)
"Important special cases of stable distributions are the normal distribution, the Cauchy distribution and the Levy distribution"
The Cauchy has neither variance neither expected value. Levy distributions also do not have higher moments.
.. or at least not the probability of the hypothesis. This is one of the errors that people make. Having 0.95 significance do NOT imply having 95% chance for the hypothesis being true! The significance is the probability of the test outcome assuming the hypothesis is true (in other words it is a likelihood value). You have to multiply it by a prior to obtain real probabilities.
Significance values will not even add up to 1 over the two hypothesises!
The root of the problem is that frequentists can not use probabilities for statements -- only for events. In frequentist terms you have to have a sigma algebra over some Omega state space which is measurable. Bayesians on the other hand can talk about the probabilities of any statements using probability theory as an extension of formal logic. I really recommend reading the books of E. T Jeynes and David McKay.
Other false assumptions people make with statistics:
- Everything is normally distributed
- Everything has a variance
- Everything has an expected value
- Hypothesis testing is without bias (in fact it is equivalent to give 50% prior probability to both hypothesises)
- Variance means average distance from mean
- Empirical variance does not have a variance
I think that the problem is that even modern IDEs simply mirror the file structure underneath the code. I like the concept of having one file/class in Java, it makes finding classes very easy. However it is clear that sometimes it is very annoying to have the classes distributed everywhere. In practice it would be nice to have an IDE feature that allows to partition the classes without changing the one file/class convention. I could imagine one partitioning that couples classes with their corresponding test cases. Another partitioning could couple classes in one package. You could create partitions that reflect collaboration between classes, etc.
The problem is that using files allows only one partitioning of code, and many times it would be better to have an arbitrary number of partitions. This is what I like in this IDE concept.
My jurney was
QBasic -> Pascal -> Delphi -> C -> C++ -> Java -> Scala (present)
with many small encounters:
Prolog, SML, Python, Ruby, Perl, Verilog, various assemblers, etc.
It does not matter where you start. What matters is to be able to learn, and to have an open mind.
It scans the file with several virus scanners and returns the result. Not 100%, but quite useful.
You should read the end of TFA:
"At the time, I was trying to speak against the tide of futuristic commentary on how The Internet Will Solve Our Problems.
[...]
And, as I’ve laughed at others’ foibles, I think back to some of my own cringeworthy contributions.
Now, whenever I think I know what’s happening, I temper my thoughts: Might be wrong, Cliff
Warm cheers to all,
—Cliff Stoll on a rainy Friday afternoon in Oakland"
If I understand you correctly, your argument is that undecidable problems are rare in practice.
I do not think this is true. The problem that the proof of "simple" programs are usually intractable, even if done by humans, so we do not know how many undecidable problems are out there in practice, as we struggle even with the decidable ones.
The "run it and see" approach is not exactly "can be formally proven if the hardware it is running on is assumed (or preferably also proven) to be error free." which the original poster assumed.
Also, there is a vast number of undecidable problems, e.g. many variants of type inference, compressability etc. not just the Halting Problem.
"It is easy to verify that a single, small, simple, correct program will halt..."
How?