Professorships are hard to get, but I think most people who have what it takes to eventually get tenure are going to make it after just one postdoc.
What is it about a second post-doc that distinguishes you? More publications? Well, so what. You've had more time, you should have more publications.
When you get a second post-doc, you are competing against people looking for their first post-doc, so being able to "win" against them isn't any great achievement. Of course you are more experienced and accomplished than the guy who just got his Ph.D. But if you are actually better, why are you signing away two more years of your life that is just postponing the start of your tenure track?
You do raise an interesting point. For someone with a Ph.D. from a lesser institution, a post-doc might just bring you up to the level of someone with a Ph.D. from a better institution, so then you need a further post-doc to make the next step. This seems a bit silly to me, but I don't know many Ph.D.'s from lesser institutions, so I don't know what they are facing.
Two more years in a post-doc is just two more years of hard, low-paid, grunt work, two more years of grey hair, two more years out of your hopefully mature life, two more years closer to final burn-out. You're *much* better off spending those two years of your life on the track toward tenure, instead of taking another lap around the post-doc practice oval.
Getting a Ph.D. from a lesser institution is a pretty big handicap to overcome. Similar to not getting funded for your Ph.D. I really don't see the point of a Ph.D. from Podunk U.: how can you ever prove you would have been able to get a Ph.D. from a first-rate university? Because, after all, if you would have been able to, why did you settle for Podunk?
Your points are well-taken. I didn't mean to say that getting passed over for tenure wasn't a black mark, but I am aware of at least one very talented theorist getting passed over for tenure at a major research university, but immediately secure a tenured appointment at what I would call a second or third-tier university.
This guy had a good record of publication, and was highly regarded as a teacher; I'm not sure how much funding he was bringing in (how much money do theorists really need, anyway), so he definitely could separate himself from the crowd of folks coming off their first postdoc.
But everyone's circumstances and luck are different. My view is that someone promising enough to get a tenure-track position at a major research university and capable enough to make almost-sufficient effort to get tenure is probably going to land on their feet. Then again, these people can probably skip the effort to get tenure and get a good job in industry or at a national lab, with a lot less suffering and deprivation.
As for multiple postdocs, I would certainly expect a coherent reason for accepting a second postdoc: changing fields, or an opportunity to work at a truly prestigious lab. Taking a second postdoc because you couldn't get an acceptable tenure-track appointment this time around is to me a sign that you need to re-examine your expectations.
Your comments on national labs are right on. One caveat: my colleagues have reported a real broad range of quality among the people there: some gems, but a lot of mediocrity that can be frustrating. Present company excepted, of course!
Note: for most academic positions in the sciences, you will be expected to go through at least one postdoctoral appointment (i.e. like grad school, but more pressure to create your own results in a very short time, somewhat better pay) before you are considered for tenure-track positions in academia.
Especially in the biological sciences, postdocs have become cheap labor, and multiple postdoc appointments are not rare. In physics (my field), multiple postdocs are a kiss of death: they mean you weren't good enough in your first postdoc to get some permanent or tenure track appointment, but in biology, what I hear is that there is a need for skilled laboratory ability (read: glorified technicians) and supervisors for large groups.
Even after a postdoc appointment, you'll aim for a tenure-track position, meaning you will have to work even harder for five to seven years, creating a research group from scratch, having to generate funding, while teaching the classes the senior profs don't feel like teaching. Then, if you've demonstrated an ability to bring research funding into the department, you might get tenure. Or, if you are turned down for tenure at a major research university, you might get offered tenure at a lower-ranked or four-year institution.
The tenure track is extremely stressful. Marriages are often destroyed in the process.
If you really want to be an academic in the sciences, it requires a great deal of sacrifice. Sure, there are theoretically other rewards. But it isn't easy to really find scientific problems that are simultaneously tractable, truly useful, haven't been done already, and can get funding. In theory, you can research whatever you want. In practice, if you can't get someone (government) to fund you, you aren't going to get very far.
Perhaps I'm biased because my Ph.D. thesis advisor went into the private sector (and is much happier there).
I recommend you read the book "A Ph.D. is not Enough!" for some insight into what is really required for success in academia.
The real way to do this is to change your Emacs (you are using Emacs to program in Lisp, right) so that your [ and ] keys produce ( and ) without shifting.
But I am a Lisp programmer, and hardly notice shifting as very tiring. One rarely types more than one ( in a row, and when completing, you can just hold down the shift key and )))) until the parenthesis matching gets to the right place.
The real advantage to typing lisp is that you don't need all of the & ; -> . { } nonsense that you get in C or $ _ stuff you get in Perl.
Evolution is a long, round-about way to get nothing in particular. If some freak accident hadn't wiped out the dinosaurs, there is practically zero probability that humans would have evolved. After all, mammals had been around for many millions of years alongside the dinosaurs, and showed no signs of being anything particularly promising, much less evolving into anything "intelligent" enough to post on Slashdot.
Now, of course, one can claim that a massive asteroid impact was part of God's "plan," but then we are back to a God who has to push rocks around to keep evolution from going "astray" from his plan. But, in the end, you are simply claiming whatever you need in order to support your belief that there is a God with a plan. That isn't very persuasive.
I think the far greater problem is that God could have done just as well at making humans with a nice small solar system, without making the universe so fucking HUGE. Sure, you can turn that around to say that humans must be supremely special to warrant God's attention while we are living on some insignificant speck on the edge of just one out of billions of galaxies. That only works if you assume that God exists and is indeed paying attention, so it is in the end a circular argument.
Virtually every culture has a flood tale. That is what there is to disprove.
There is no reason to doubt that many cultures have flood tales. That is hard to disprove, because it is probably true!!
On the other hand, what you seem to be claiming is that, because many cultures, based in relatively small regions, have legends describing large, destructive floods, that all of these cultures must be referring to a single (or, I suppose, you would also accept multiple) worldwide catastrophe(s). That's a huge leap. Such a world-wide catastrophe would almost certainly leave some detectable physical impact. Yet we see nothing of the sort.
I have a good reason for setting aside these pseudo-historical accounts.
1) You seem to be conflating "history" with "heroic fiction," "myth," and "legend."
2) Ancient civilizations had much less rigorous standards for accuracy than modern day archaeologists or historians. Because these writers lacked high-speed travel, and access to modern archaeological findings, they relied much more on oral traditions and vague reports from travellers, who were probably willing to tell tall tales.
3) We have only a very fragmentary knowledge of ancient writings---much of what we know is only second- or third-hand accounts of works no longer extant. Even the flood accounts that you refer to hardly claim to be contemporary journalistic accounts.
You seem to want to give these ancient stories more weight than present-day scientific observation. Why you would, I have no idea. I can only guess that you enjoy your fantasies about pre-historic space flight so much that you'd rather not question their basis. But you should recognize them for what they are.
How do I KNOW anything? Good question. I know I left my cell phone in my car because when I went to my car to look for it, I found it there. If I hadn't found it, I would have decided my theory on cell phone misplacement had been mistaken, and try to think of what other theories are plausible, then go look for the cell phone there.
How do I KNOW every electron has spin-1/2? Because every atom of a given metal looks the same, and electrons in those atoms are what gives them their electrical and optical properties. If some electrons didn't have spin-1/2, you'd expect to see atoms with wildly different properties, but you don't. We're up to over 100 atoms in the periodic table, and in all that chemistry work, nobody has found anything that doesn't fit. Sure, tomorrow, there might be an article on slashdot about electrons being observed with integer spin, but I won't stay up late checking the headlines for it.
Sure, all knowledge is tentative. But some knowledge is less tentative than other knowledge.
Maybe I'm being followed by a little green troll who disappears every time I turn my head. Of course, he would also have to disappear when I walk by a large glass building, because I never see his reflection there. And nobody else sees him, or else I'm the subject of a worldwide conspiracy: everyone else sees the troll, but knows that I'm the guy with the troll, so they'd better not mention it, because it would be rude. All in all, I think my little green troll theory isn't too compelling, so I don't go around claiming I am followed by such a troll.
Now, faith is the opposite. If my religious beliefs include a little green troll, I believe it despite all the evidence. God must just be testing my faith, or has reasons beyond human comprehension, or some other rationalization. Even if some one appears in a cloud of smoke and says "I am that I am, father of Molok and Shamu, your ancestors, and Boz is my prophet. The little green troll you were taught about in Wednesday school doesn't exist. That is all." before vanishing with a flash of lightning, it must have been the devil, trying to deceive me, leading me away from the true green troll path.
Perhaps God exists, and people have eternal souls. That is a matter of faith. But don't ask me to accept that this God created Man out of dust a few hundred generations ago, and Woman out of his rib. My faith doesn't extend that far in the face of scientific knowledge.
What kind of approach is this? "I'll believe anything I read in the Bible, unless you explicitly disprove it." I can see why you don't understand the scientific method.
When you talk about disproving "worldwide flood" what kind of worldwide flood are you talking about? One occuring after humans were civilized enough to have agriculture and build arks? What evidence do you have that indicates anything of the kind ever happened? What is there to disprove?
The idea is to come up with expectations of what you should see in the world if your ideas are right, and then go looking for those things in the manner of *critical* inquiry. You have an idea, you ask "what would that look like?" and then you go out and *look*, not knowing if you are going to see it or not.
Science is not just about evidence, it is about critical testing of that evidence.
The "big bang" theory, for instance, attributes the microwave background radiation as the remnant of radiation in the universe when matter first decoupled from radiation. You can use thermodynamic arguments, along with telescope observations of the current Hubble expansion, and sensitive measurements of the background to verify that the temperature of the radiation you observe today can be mathematically extrapolated back to the time when the universe should have been young, compact, and hot according to the theory of gravity, the current observed size of the universe, and the density of matter in the universe.
Many scientists make many observations of many of these phenomena, and they all seem to indicate that the universe is about 15 billion years old. Do scientists just pull this out of their ass and feel satisfied? NO. People look at very old stars and try to estimate their ages, using totally different methods, to see if they agree. There was some recent controversy when some stars in globular clusters appeared to possibly be older than the age of the universe indicated by the Hubble constant. Last I heard, that controversy had been resolved by further investigation.
What does your investigation of scriptures say about the spectral distribution of microwave radiation from deep space, or the Hubble expansion? Last time I read Genesis, it didn't say *squat*.
All knowledge is subject to the possibility that our senses (including their extension using scientific instruments) are being deceived by a simulation or fakery by a omnipotent force. On the other hand, the simulation appears to be damn consistent and *predictive* compared to the vague accounts given in creation myths.
Consider that quantum mechanics derived from observing black body radiation (such as a wire in an electric heater, and specific heats of solids), eventually allows us to produce laser diodes that *work.* Every time you press play on a CD player, you are testing quantum mechanics. And guess what: the laser emits light, just like quantum mechanics says, EVERY TIME YOU TRY IT. Science WORKS. When I press the button and the CD player doesn't work, I know it is because the battery is dead, and not because I didn't pray properly to the gods.
The fact that I typed my last message and you responded provides more evidence about the TRUTH of electromagnetic and quantum theories than you can ever hope to muster in support of a young Earth.
Your three hypotheses have *nothing* to recommend them except to deny that apparently factual statements in Hebrew scriptures are contradicted by historical or scientific fact.
How about an alternative explanation: the scriptures were not made accurate and infallible by divine power, but rather were the product of multiple Hebrew scribes recording and shaping oral traditions for various purposes. Therefore, any apparent disagreements with modern historical or scientific discoveries has to do with the lack of such knowledge at the time they were written?
If I hear one more moron talking about how the time scales in the Bible might simply be the truth multiplied by some scalar factor, I'm going to have to choke him or her.
I'm not arguing that religious belief is false, just that it doesn't admit to the same sort of tests for truth that historic or scientific hypotheses do. Feel free to BELIEVE something that you can't KNOW, but don't claim to know it, and don't try to come up with scientific- or historical-sounding arguments to try to persuade me.
Sure, the authors NR took on a big task (I wouldn't call it mammoth, because they only skim over things like PDEs), but they weren't up to it.
The authors are scientists, not specialists in numerical computing. The appearance of "complete" does not equal accurate or correct. Writing robust and accurate numerical codes is difficult work, and there are journals dedicated to the topic.
Even their code for special functions is pretty lousy, often just taken from Abramowitz & Stegun, which is a source from the 1950s!!!
I'll freely admit that Netlib is not uniformly good; often, you have to find the most up-to-date solution to your particular problem from among the 3 or 4 solutions you find there. Also "old" does not mean "incorrect," or "untested," although it often does mean "probably inferior to some later work."
Real production-quality matrix codes, for instance, are not easy-to-read like NR. They are total mazes of special cases and tests and branches, but all of those things were put in for very good reasons, and the stuff that survives in high-quality libraries has been throughly tested and peer-reviewed. Don't expect to read a few pages of chatty prose and a couple pages of Fortran and feel totally informed. Expect it to be a black box that you can use with confidence, but inside is basically incomprehensible without careful study.
NR is a danger because it is not as good as readers think, and because it causes readers to not look any further for better solutions to their problems.
If F2C converters could understand Fortran and the compiler-specific pragma rules well enough to do this reliably, then they'd have to be as good as a good Fortran compiler, targeted at a C implementation instead of a real machine. I.e., it would be as hard as just writing a Fortran compiler!
Also, you'd have to depend on the C compiler not only respecting the pragmas but making FULL use of them. Again, just as hard as writing a Fortran optimizer.
Any conversion step is going to make it difficult to pass on all the available semantic information present in the original source code to the next stage of compilation, and harder for the later stages to recognize the semantic information that would guide the optimization process.
You are right about naturally recursive applications in Fortran. But I would hesitate to use Numerical Recipes as evidence. The code generally blows for both Fortran and C, and the numerical methods are mostly out-of-date.
Good numerical code is found in places like Netlib, or by having your institution license good numerical packages from reputable vendors.
it has a lot of good things that are similar to Fortran in the numerical world.
* Integers are not a fixed width, but transparently go to multiple precision instead of wrapping around.
* All of the intrinsics deal with complex numbers transparently.
* True rational numbers: i.e. ratios of integers.
* (Better than Fortran): STANDARDIZED parameters to describe the floating point parameters of the machine (e.g. machine epsilon). Also, built-in, portable access to the floating-point encoding in bit form. Very nice bit-bashing intrinsics (I like them better than C).
* Very flexible arrays. Some nice intrinsics (row-major-aref...) that allow you to write code to traverse arrays in very convenient ways.
* Notation is pretty flexible: can add multiple numbers together using (+ a b c d e f g).
* Lisp macros are amazing. The whole power of the Lisp language is available as a "preprocessor." You can relatively easily write programs that write programs that write programs. As an example, although Lisp has built-in, kick-ass OO (CLOS), you could write your own transparent object-oriented extension to Lisp (i.e., roughly equivalent to what cfront did for C) in about 200 lines of Lisp macros, and it works as well as if it were built-in.
Some slight "disadvantages"
* Prefix notation is the default. Add-on macro packages let you also write code that is infix
(e.g. #I instead (+ (expt a 2) (expt b 2) (expt c 2)))
but it is not a built-in standard.
* The standard does not *mandate* the ability to specify extremely large arrays. Not necessarily a real problem unless you want > 1 GB arrays on a typical 32-bit implementation.
* The notation is sort of verbose. Array references go like (aref array-variable i j k l). This is just notation, so the compiler should optimize this if you ask for it.
* Variables are not typed. The way around this is declarations. Again, the notation is somewhat verbose. (the double-float (+ (the double-float x) (the double-float y)) or (declare (double-float x y) (+ x y)). Again, this is just notation, so you can "easily" write lisp macros to write either of these as something like (d+ x y)
* Most high-performance computers have high-quality Fortran compilers. Fewer have high-quality architecture-specific Lisp compilers. Likewise for highly-multiprocessor machines.
* Most importantly, the bias in the Lisp world has been to optimize things like OO method calls, function calls, recursive function calls, automatic garbage collection. Not much pressure to optimize number-cruching on large arrays. Fortran compiler writers for the last 40 years have been asked to do one thing: optimize number-crunching on large arrays.
That said, for certain numerical codes, Lisp is a nicer tool than Fortran. For some other numerical codes, a good Lisp compiler (which might not be available for your architecture) given code with sufficient declarations could match a Fortran compiler for code speed, no more than 10% performance loss, sometimes performance gain. For some codes, Fortran is going to win big in execution time.
There are some fundamental weaknesses in the C language that make it less-than-optimal for writing numerical codes.
1) C arrays are nothing more than pointers in drag. "Aliasing" of multiple pointers pointing into the same region of memory can cause optimizations to introduce bugs. Because all array accesses are done as if by pointer arithmetic, it is hard to deal with multi-dimensional arrays where more than one dimension can vary (think rectangular MxN matrices). There is a bias in the language toward manual pointer movement (*p++, etc.) to efficiently stride through arrays.
2) C always "wants" to compute with doubles. (E.g. the usual trig libraries all return doubles, and the default function call rules cast float arguments to doubles.) Serious number crunching code may want to use single precision floats to conserve memory and, more importantly these days, cache and memory bandwidth.
3) No built-in exponentiation operator. (Important so that the compiler can optimize small integer powers as combinations of multiplications.) No built-in, transparent complex number support. E.g. trig functions with complex arguments.
At least in Quicken 2001 for the Mac, you can get the cleared balance by starting a reconciliation. As you check cleared items, the cleared balance is shown. Then, cancel out if you are not actually trying to reconcile to a statement.
I must admit that I enter all my transactions by hand--I don't know how screwed up things are when you try online. I avoid online because when I tried it, it seemed like the online features worked best if you depended on the online service to tell you all your transactions. Well, I am too paranoid that some fraudulent transactions will get entered as real ones, so I enter everything by hand, then check against the online statements manually.
Except for trying to reconcile to online banking, I can't really see a use for seeing a cleared balance. I tend to be conservative, and like seeing what would happen if everything cleared today. I.e. do I have even a slight chance of being overdrawn.
Your distinction between AROUND and INSIDE wires is totally wacky. You are conflating the concept of field and current. AC resistances at high (say, MHz) frequencies are somewhat larger because of the skin effect, because the CURRENT is localized at the surface of the conductor. At 50 or 60 Hz, however, the skin depth is huge, so for any practical conductor, the current flow is basically even, and the resistive losses are basically the same.
What matters when you touch a wire, either AC or DC is your conductivity. Your reactance at 50 or 60 Hz is pretty much negligible, so what matters again is the voltage, not AC vs. DC.
That's a very different case. That kind of serious scholarly work was done with the best, most expensive, and painstaking processes of the time. The paper was probably rag-based.
That's a hell of a lot different from some 1950-era paperback printed on the cheapest acidic paper available, using the lousiest binding method that didn't immediately fall apart on the bookseller's shelf.
Now that you bring up garbage collection, I believe you are on the right track.
However, my original point is that it is highly misleading to claim that using a static language construct can prevent memory leaks. What you seem to have meant is that language constructs can allow you to *detect* leaks at runtime, or that runtime support can allow garbage collection.
Your original post made it sound like "if the compiler doesn't complain, the code doesn't leak." Which is simply not possible, except under exceedingly restrictive conditions on the data structures the language supports.
More comprehensive object-oriented systems like CLOS allow for various kinds of mix-in and method combination techniques that make multiple inheritance useful without a restriction to virtual classes.
Just because implementations are possibly redundant does not mean that they are actually redundant. And just because C++ has warts (or what you call abominations) doesn't mean object-oriented systems all have the same warts.
Memory leaks are *not* generally statically detectable. That is, you cannot detect them at compile time.
The only way you can statically detect memory leaks is by severely restricting the kinds of data structures that you are allowed to create; i.e., by throwing away a huge amount of solution space.
The real problem was that too many companies all made the same calculation at the same time, when only a few could possibly survive. An interesting variation was everyone assuming they could rent out excess capacity to cover the costs, when so many companies were building their own extra capacity to rent out, rather than renting it themselves.
When ten companies all accumulate huge debts with the aim of repaying it when they get 50% market share (especially when they drastically overestimate the market size), it's pretty clear that several are going to be very disappointed.
For the world, this fiber is valuable. It just isn't valuable enough to justify the huge investment that it required. Now that these companies go bankrupt, the huge debts will get swapped for equity, and they will hopefully be able to turn a profit, once they have basically gotten the fiber for free.
Of course, this equity swap only happens once the common stock becomes worthless. Keep in mind that once WorldCom has gotten through bankruptcy, their lower debt burden will be a huge advantage, and they will probably end up driving other telecoms bankrupt as they try to compete.
ISS is in low earth orbit. There certainly aren't a lot of "big space rocks" nearby that can be easily gotten to. If there were, you'd be hearing about it on CNN. Even getting a probe (NEAR) to one was a pretty big achievement in itself, and nothing compared to mining and refining the materials you would find there. Last time I checked, even a 1970's era probe like Pioneer wasn't made out of brick and gravel.
You'd be a lot more credible if you talked about grabbing already-launched satellites out of their orbits and recycling them. Which is not very credible.
Professorships are hard to get, but I think most people who have what it takes to eventually get tenure are going to make it after just one postdoc.
What is it about a second post-doc that distinguishes you? More publications? Well, so what. You've had more time, you should have more publications.
When you get a second post-doc, you are competing against people looking for their first post-doc, so being able to "win" against them isn't any great achievement. Of course you are more experienced and accomplished than the guy who just got his Ph.D. But if you are actually better, why are you signing away two more years of your life that is just postponing the start of your tenure track?
You do raise an interesting point. For someone with a Ph.D. from a lesser institution, a post-doc might just bring you up to the level of someone with a Ph.D. from a better institution, so then you need a further post-doc to make the next step. This seems a bit silly to me, but I don't know many Ph.D.'s from lesser institutions, so I don't know what they are facing.
Two more years in a post-doc is just two more years of hard, low-paid, grunt work, two more years of grey hair, two more years out of your hopefully mature life, two more years closer to final burn-out. You're *much* better off spending those two years of your life on the track toward tenure, instead of taking another lap around the post-doc practice oval.
Getting a Ph.D. from a lesser institution is a pretty big handicap to overcome. Similar to not getting funded for your Ph.D. I really don't see the point of a Ph.D. from Podunk U.: how can you ever prove you would have been able to get a Ph.D. from a first-rate university? Because, after all, if you would have been able to, why did you settle for Podunk?
Your points are well-taken. I didn't mean to say that getting passed over for tenure wasn't a black mark, but I am aware of at least one very talented theorist getting passed over for tenure at a major research university, but immediately secure a tenured appointment at what I would call a second or third-tier university.
This guy had a good record of publication, and was highly regarded as a teacher; I'm not sure how much funding he was bringing in (how much money do theorists really need, anyway), so he definitely could separate himself from the crowd of folks coming off their first postdoc.
But everyone's circumstances and luck are different. My view is that someone promising enough to get a tenure-track position at a major research university and capable enough to make almost-sufficient effort to get tenure is probably going to land on their feet. Then again, these people can probably skip the effort to get tenure and get a good job in industry or at a national lab, with a lot less suffering and deprivation.
As for multiple postdocs, I would certainly expect a coherent reason for accepting a second postdoc: changing fields, or an opportunity to work at a truly prestigious lab. Taking a second postdoc because you couldn't get an acceptable tenure-track appointment this time around is to me a sign that you need to re-examine your expectations.
Your comments on national labs are right on. One caveat: my colleagues have reported a real broad range of quality among the people there: some gems, but a lot of mediocrity that can be frustrating. Present company excepted, of course!
Note: for most academic positions in the sciences, you will be expected to go through at least one postdoctoral appointment (i.e. like grad school, but more pressure to create your own results in a very short time, somewhat better pay) before you are considered for tenure-track positions in academia.
Especially in the biological sciences, postdocs have become cheap labor, and multiple postdoc appointments are not rare. In physics (my field), multiple postdocs are a kiss of death: they mean you weren't good enough in your first postdoc to get some permanent or tenure track appointment, but in biology, what I hear is that there is a need for skilled laboratory ability (read: glorified technicians) and supervisors for large groups.
Even after a postdoc appointment, you'll aim for a tenure-track position, meaning you will have to work even harder for five to seven years, creating a research group from scratch, having to generate funding, while teaching the classes the senior profs don't feel like teaching. Then, if you've demonstrated an ability to bring research funding into the department, you might get tenure. Or, if you are turned down for tenure at a major research university, you might get offered tenure at a lower-ranked or four-year institution.
The tenure track is extremely stressful. Marriages are often destroyed in the process.
If you really want to be an academic in the sciences, it requires a great deal of sacrifice. Sure, there are theoretically other rewards. But it isn't easy to really find scientific problems that are simultaneously tractable, truly useful, haven't been done already, and can get funding. In theory, you can research whatever you want. In practice, if you can't get someone (government) to fund you, you aren't going to get very far.
Perhaps I'm biased because my Ph.D. thesis advisor went into the private sector (and is much happier there).
I recommend you read the book "A Ph.D. is not Enough!" for some insight into what is really required for success in academia.
The real way to do this is to change your Emacs (you are using Emacs to program in Lisp, right) so that your [ and ] keys produce ( and ) without shifting.
But I am a Lisp programmer, and hardly notice shifting as very tiring. One rarely types more than one ( in a row, and when completing, you can just hold down the shift key and )))) until the parenthesis matching gets to the right place.
The real advantage to typing lisp is that you don't need all of the & ; -> . { } nonsense that you get in C or $ _ stuff you get in Perl.
Evolution is a long, round-about way to get nothing in particular. If some freak accident hadn't wiped out the dinosaurs, there is practically zero probability that humans would have evolved. After all, mammals had been around for many millions of years alongside the dinosaurs, and showed no signs of being anything particularly promising, much less evolving into anything "intelligent" enough to post on Slashdot.
Now, of course, one can claim that a massive asteroid impact was part of God's "plan," but then we are back to a God who has to push rocks around to keep evolution from going "astray" from his plan. But, in the end, you are simply claiming whatever you need in order to support your belief that there is a God with a plan. That isn't very persuasive.
I think the far greater problem is that God could have done just as well at making humans with a nice small solar system, without making the universe so fucking HUGE. Sure, you can turn that around to say that humans must be supremely special to warrant God's attention while we are living on some insignificant speck on the edge of just one out of billions of galaxies. That only works if you assume that God exists and is indeed paying attention, so it is in the end a circular argument.
Virtually every culture has a flood tale. That is what there is to disprove.
There is no reason to doubt that many cultures have flood tales. That is hard to disprove, because it is probably true!!
On the other hand, what you seem to be claiming is that, because many cultures, based in relatively small regions, have legends describing large, destructive floods, that all of these cultures must be referring to a single (or, I suppose, you would also accept multiple) worldwide catastrophe(s). That's a huge leap. Such a world-wide catastrophe would almost certainly leave some detectable physical impact. Yet we see nothing of the sort.
I have a good reason for setting aside these pseudo-historical accounts.
1) You seem to be conflating "history" with "heroic fiction," "myth," and "legend."
2) Ancient civilizations had much less rigorous standards for accuracy than modern day archaeologists or historians. Because these writers lacked high-speed travel, and access to modern archaeological findings, they relied much more on oral traditions and vague reports from travellers, who were probably willing to tell tall tales.
3) We have only a very fragmentary knowledge of ancient writings---much of what we know is only second- or third-hand accounts of works no longer extant. Even the flood accounts that you refer to hardly claim to be contemporary journalistic accounts.
You seem to want to give these ancient stories more weight than present-day scientific observation. Why you would, I have no idea. I can only guess that you enjoy your fantasies about pre-historic space flight so much that you'd rather not question their basis. But you should recognize them for what they are.
How do I KNOW anything? Good question. I know I left my cell phone in my car because when I went to my car to look for it, I found it there. If I hadn't found it, I would have decided my theory on cell phone misplacement had been mistaken, and try to think of what other theories are plausible, then go look for the cell phone there.
How do I KNOW every electron has spin-1/2? Because every atom of a given metal looks the same, and electrons in those atoms are what gives them their electrical and optical properties. If some electrons didn't have spin-1/2, you'd expect to see atoms with wildly different properties, but you don't. We're up to over 100 atoms in the periodic table, and in all that chemistry work, nobody has found anything that doesn't fit. Sure, tomorrow, there might be an article on slashdot about electrons being observed with integer spin, but I won't stay up late checking the headlines for it.
Sure, all knowledge is tentative. But some knowledge is less tentative than other knowledge.
Maybe I'm being followed by a little green troll who disappears every time I turn my head. Of course, he would also have to disappear when I walk by a large glass building, because I never see his reflection there. And nobody else sees him, or else I'm the subject of a worldwide conspiracy: everyone else sees the troll, but knows that I'm the guy with the troll, so they'd better not mention it, because it would be rude. All in all, I think my little green troll theory isn't too compelling, so I don't go around claiming I am followed by such a troll.
Now, faith is the opposite. If my religious beliefs include a little green troll, I believe it despite all the evidence. God must just be testing my faith, or has reasons beyond human comprehension, or some other rationalization. Even if some one appears in a cloud of smoke and says "I am that I am, father of Molok and Shamu, your ancestors, and Boz is my prophet. The little green troll you were taught about in Wednesday school doesn't exist. That is all." before vanishing with a flash of lightning, it must have been the devil, trying to deceive me, leading me away from the true green troll path.
Perhaps God exists, and people have eternal souls. That is a matter of faith. But don't ask me to accept that this God created Man out of dust a few hundred generations ago, and Woman out of his rib. My faith doesn't extend that far in the face of scientific knowledge.
What kind of approach is this? "I'll believe anything I read in the Bible, unless you explicitly disprove it." I can see why you don't understand the scientific method.
When you talk about disproving "worldwide flood" what kind of worldwide flood are you talking about? One occuring after humans were civilized enough to have agriculture and build arks? What evidence do you have that indicates anything of the kind ever happened? What is there to disprove?
Science is not just "musings" of scientists.
The idea is to come up with expectations of what you should see in the world if your ideas are right, and then go looking for those things in the manner of *critical* inquiry. You have an idea, you ask "what would that look like?" and then you go out and *look*, not knowing if you are going to see it or not.
Science is not just about evidence, it is about critical testing of that evidence.
The "big bang" theory, for instance, attributes the microwave background radiation as the remnant of radiation in the universe when matter first decoupled from radiation. You can use thermodynamic arguments, along with telescope observations of the current Hubble expansion, and sensitive measurements of the background to verify that the temperature of the radiation you observe today can be mathematically extrapolated back to the time when the universe should have been young, compact, and hot according to the theory of gravity, the current observed size of the universe, and the density of matter in the universe.
Many scientists make many observations of many of these phenomena, and they all seem to indicate that the universe is about 15 billion years old. Do scientists just pull this out of their ass and feel satisfied? NO. People look at very old stars and try to estimate their ages, using totally different methods, to see if they agree. There was some recent controversy when some stars in globular clusters appeared to possibly be older than the age of the universe indicated by the Hubble constant. Last I heard, that controversy had been resolved by further investigation.
What does your investigation of scriptures say about the spectral distribution of microwave radiation from deep space, or the Hubble expansion? Last time I read Genesis, it didn't say *squat*.
All knowledge is subject to the possibility that our senses (including their extension using scientific instruments) are being deceived by a simulation or fakery by a omnipotent force. On the other hand, the simulation appears to be damn consistent and *predictive* compared to the vague accounts given in creation myths.
Consider that quantum mechanics derived from observing black body radiation (such as a wire in an electric heater, and specific heats of solids), eventually allows us to produce laser diodes that *work.* Every time you press play on a CD player, you are testing quantum mechanics. And guess what: the laser emits light, just like quantum mechanics says, EVERY TIME YOU TRY IT. Science WORKS. When I press the button and the CD player doesn't work, I know it is because the battery is dead, and not because I didn't pray properly to the gods.
The fact that I typed my last message and you responded provides more evidence about the TRUTH of electromagnetic and quantum theories than you can ever hope to muster in support of a young Earth.
OK, I'll call you crazy.
Your three hypotheses have *nothing* to recommend them except to deny that apparently factual statements in Hebrew scriptures are contradicted by historical or scientific fact.
How about an alternative explanation: the scriptures were not made accurate and infallible by divine power, but rather were the product of multiple Hebrew scribes recording and shaping oral traditions for various purposes. Therefore, any apparent disagreements with modern historical or scientific discoveries has to do with the lack of such knowledge at the time they were written?
If I hear one more moron talking about how the time scales in the Bible might simply be the truth multiplied by some scalar factor, I'm going to have to choke him or her.
I'm not arguing that religious belief is false, just that it doesn't admit to the same sort of tests for truth that historic or scientific hypotheses do. Feel free to BELIEVE something that you can't KNOW, but don't claim to know it, and don't try to come up with scientific- or historical-sounding arguments to try to persuade me.
A nice guide to some other sources of mathematical software is NIST's GAMS for Guide to Available Mathematical Software.
Sure, the authors NR took on a big task (I wouldn't call it mammoth, because they only skim over things like PDEs), but they weren't up to it.
The authors are scientists, not specialists in numerical computing. The appearance of "complete" does not equal accurate or correct. Writing robust and accurate numerical codes is difficult work, and there are journals dedicated to the topic.
Even their code for special functions is pretty lousy, often just taken from Abramowitz & Stegun, which is a source from the 1950s!!!
I'll freely admit that Netlib is not uniformly good; often, you have to find the most up-to-date solution to your particular problem from among the 3 or 4 solutions you find there. Also "old" does not mean "incorrect," or "untested," although it often does mean "probably inferior to some later work."
Real production-quality matrix codes, for instance, are not easy-to-read like NR. They are total mazes of special cases and tests and branches, but all of those things were put in for very good reasons, and the stuff that survives in high-quality libraries has been throughly tested and peer-reviewed. Don't expect to read a few pages of chatty prose and a couple pages of Fortran and feel totally informed. Expect it to be a black box that you can use with confidence, but inside is basically incomprehensible without careful study.
NR is a danger because it is not as good as readers think, and because it causes readers to not look any further for better solutions to their problems.
If F2C converters could understand Fortran and the compiler-specific pragma rules well enough to do this reliably, then they'd have to be as good as a good Fortran compiler, targeted at a C implementation instead of a real machine. I.e., it would be as hard as just writing a Fortran compiler!
Also, you'd have to depend on the C compiler not only respecting the pragmas but making FULL use of them. Again, just as hard as writing a Fortran optimizer.
Any conversion step is going to make it difficult to pass on all the available semantic information present in the original source code to the next stage of compilation, and harder for the later stages to recognize the semantic information that would guide the optimization process.
Oops, the infix example got eaten by Slashdot.
Just imagine the #I followed by an equivalent infix expression; i.e., that looks like Fortran!
You are right about naturally recursive applications in Fortran. But I would hesitate to use Numerical Recipes as evidence. The code generally blows for both Fortran and C, and the numerical methods are mostly out-of-date.
Good numerical code is found in places like Netlib, or by having your institution license good numerical packages from reputable vendors.
A caveat about Common Lisp:
...) that allow you to write code to traverse arrays in very convenient ways.
it has a lot of good things that are similar to Fortran in the numerical world.
* Integers are not a fixed width, but transparently go to multiple precision instead of wrapping around.
* All of the intrinsics deal with complex numbers transparently.
* True rational numbers: i.e. ratios of integers.
* (Better than Fortran): STANDARDIZED parameters to describe the floating point parameters of the machine (e.g. machine epsilon). Also, built-in, portable access to the floating-point encoding in bit form. Very nice bit-bashing intrinsics (I like them better than C).
* Very flexible arrays. Some nice intrinsics (row-major-aref
* Notation is pretty flexible: can add multiple numbers together using (+ a b c d e f g).
* Lisp macros are amazing. The whole power of the Lisp language is available as a "preprocessor." You can relatively easily write programs that write programs that write programs. As an example, although Lisp has built-in, kick-ass OO (CLOS), you could write your own transparent object-oriented extension to Lisp (i.e., roughly equivalent to what cfront did for C) in about 200 lines of Lisp macros, and it works as well as if it were built-in.
Some slight "disadvantages"
* Prefix notation is the default. Add-on macro packages let you also write code that is infix
(e.g. #I instead (+ (expt a 2) (expt b 2) (expt c 2)))
but it is not a built-in standard.
* The standard does not *mandate* the ability to specify extremely large arrays. Not necessarily a real problem unless you want > 1 GB arrays on a typical 32-bit implementation.
* The notation is sort of verbose. Array references go like (aref array-variable i j k l). This is just notation, so the compiler should optimize this if you ask for it.
* Variables are not typed. The way around this is declarations. Again, the notation is somewhat verbose. (the double-float (+ (the double-float x) (the double-float y)) or (declare (double-float x y) (+ x y)). Again, this is just notation, so you can "easily" write lisp macros to write either of these as something like (d+ x y)
* Most high-performance computers have high-quality Fortran compilers. Fewer have high-quality architecture-specific Lisp compilers. Likewise for highly-multiprocessor machines.
* Most importantly, the bias in the Lisp world has been to optimize things like OO method calls, function calls, recursive function calls, automatic garbage collection. Not much pressure to optimize number-cruching on large arrays. Fortran compiler writers for the last 40 years have been asked to do one thing: optimize number-crunching on large arrays.
That said, for certain numerical codes, Lisp is a nicer tool than Fortran. For some other numerical codes, a good Lisp compiler (which might not be available for your architecture) given code with sufficient declarations could match a Fortran compiler for code speed, no more than 10% performance loss, sometimes performance gain. For some codes, Fortran is going to win big in execution time.
There are some fundamental weaknesses in the C language that make it less-than-optimal for writing numerical codes.
1) C arrays are nothing more than pointers in drag. "Aliasing" of multiple pointers pointing into the same region of memory can cause optimizations to introduce bugs. Because all array accesses are done as if by pointer arithmetic, it is hard to deal with multi-dimensional arrays where more than one dimension can vary (think rectangular MxN matrices). There is a bias in the language toward manual pointer movement (*p++, etc.) to efficiently stride through arrays.
2) C always "wants" to compute with doubles. (E.g. the usual trig libraries all return doubles, and the default function call rules cast float arguments to doubles.) Serious number crunching code may want to use single precision floats to conserve memory and, more importantly these days, cache and memory bandwidth.
3) No built-in exponentiation operator. (Important so that the compiler can optimize small integer powers as combinations of multiplications.) No built-in, transparent complex number support. E.g. trig functions with complex arguments.
At least in Quicken 2001 for the Mac, you can get the cleared balance by starting a reconciliation. As you check cleared items, the cleared balance is shown. Then, cancel out if you are not actually trying to reconcile to a statement.
I must admit that I enter all my transactions by hand--I don't know how screwed up things are when you try online. I avoid online because when I tried it, it seemed like the online features worked best if you depended on the online service to tell you all your transactions. Well, I am too paranoid that some fraudulent transactions will get entered as real ones, so I enter everything by hand, then check against the online statements manually.
Except for trying to reconcile to online banking, I can't really see a use for seeing a cleared balance. I tend to be conservative, and like seeing what would happen if everything cleared today. I.e. do I have even a slight chance of being overdrawn.
Your distinction between AROUND and INSIDE wires is totally wacky. You are conflating the concept of field and current. AC resistances at high (say, MHz) frequencies are somewhat larger because of the skin effect, because the CURRENT is localized at the surface of the conductor. At 50 or 60 Hz, however, the skin depth is huge, so for any practical conductor, the current flow is basically even, and the resistive losses are basically the same.
What matters when you touch a wire, either AC or DC is your conductivity. Your reactance at 50 or 60 Hz is pretty much negligible, so what matters again is the voltage, not AC vs. DC.
That's a very different case. That kind of serious scholarly work was done with the best, most expensive, and painstaking processes of the time. The paper was probably rag-based.
That's a hell of a lot different from some 1950-era paperback printed on the cheapest acidic paper available, using the lousiest binding method that didn't immediately fall apart on the bookseller's shelf.
Now that you bring up garbage collection, I believe you are on the right track.
However, my original point is that it is highly misleading to claim that using a static language construct can prevent memory leaks. What you seem to have meant is that language constructs can allow you to *detect* leaks at runtime, or that runtime support can allow garbage collection.
Your original post made it sound like "if the compiler doesn't complain, the code doesn't leak." Which is simply not possible, except under exceedingly restrictive conditions on the data structures the language supports.
More comprehensive object-oriented systems like CLOS allow for various kinds of mix-in and method combination techniques that make multiple inheritance useful without a restriction to virtual classes.
Just because implementations are possibly redundant does not mean that they are actually redundant. And just because C++ has warts (or what you call abominations) doesn't mean object-oriented systems all have the same warts.
Memory leaks are *not* generally statically detectable. That is, you cannot detect them at compile time.
The only way you can statically detect memory leaks is by severely restricting the kinds of data structures that you are allowed to create; i.e., by throwing away a huge amount of solution space.
What kind of tradeoff is that?
The real problem was that too many companies all made the same calculation at the same time, when only a few could possibly survive. An interesting variation was everyone assuming they could rent out excess capacity to cover the costs, when so many companies were building their own extra capacity to rent out, rather than renting it themselves.
When ten companies all accumulate huge debts with the aim of repaying it when they get 50% market share (especially when they drastically overestimate the market size), it's pretty clear that several are going to be very disappointed.
For the world, this fiber is valuable. It just isn't valuable enough to justify the huge investment that it required. Now that these companies go bankrupt, the huge debts will get swapped for equity, and they will hopefully be able to turn a profit, once they have basically gotten the fiber for free.
Of course, this equity swap only happens once the common stock becomes worthless. Keep in mind that once WorldCom has gotten through bankruptcy, their lower debt burden will be a huge advantage, and they will probably end up driving other telecoms bankrupt as they try to compete.
Are you out of your mind?
ISS is in low earth orbit. There certainly aren't a lot of "big space rocks" nearby that can be easily gotten to. If there were, you'd be hearing about it on CNN. Even getting a probe (NEAR) to one was a pretty big achievement in itself, and nothing compared to mining and refining the materials you would find there. Last time I checked, even a 1970's era probe like Pioneer wasn't made out of brick and gravel.
You'd be a lot more credible if you talked about grabbing already-launched satellites out of their orbits and recycling them. Which is not very credible.