I’ve been reading Slashdot for the last year and a half or so. I stayed away from it until I downloaded an aggregator that had it preinstalled, and, well, it just kind of stayed there. I don’t post comments myself, but I find find those who do interesting. Of course, it’s probably not for the reasons they had intended.
I think Slashdot is a great way to measure my own susceptibility to argumentum ad verecundiam. I do this (retrospectively) by reflecting on to what degree I have agreed with the posts scoring “5, Informative” or “5, Insightful” when attached to topics I know relatively little about. I contrast that with how ignorant posts with the same rating seem when in reply to topics I know inside and out.
What is more likely? That only the high-scoring commentators on “my” topics make serious errors? Or that the overall intelligence and ability of the commentators is fairly uniform, and I attribute too much credit to them when I don’t know the material? Meeting one or two posters in real life might bias your response, but I digress.
In Humans First Arose in Asia, for example, some of the comments currently scored as fives give away obvious misconceptions of the time frame of human evolution. There are good comments too, but the scoring system does a poor job of differentiating them. Competitors like Digg and Reddit suffer from similar problems with varying degrees of severity. (I can’t read Digg at all, and I’m currently giving Reddit a “time-out” after it linked to one too many pseudoscientific/conspiracy-theory articles.)
So what’s the point here? Just that adequate English skills combined with an argument that sounds logical can easily be mistaken for an argument that is correct.
The following is a review of A Mathematician Plays the Stock Market, by John Allen Paulos.
One of my inaugural tasks at my current job was developing a technical analysis package for market data. I have to admit I rather enjoyed this, for a few reasons only tangentially related to the specific technology at hand.
First, I like solving math problems—always have. Writing programs that do this for me are more enjoyable still. Second, there was the shameful thrill of scrawling some equations involving capital sigmas (the kind of thing those of us destined to be computer scientists are doing by eighth grade) on a whiteboard and watching the panicked expressions of the business and finance people present.
I guiltily concede that the latter motivation was the dominant one. I still keep a sheet with sigmas painted all over it within reach. Anytime I’m asked about the output of my analysis package, I produce it from deep within my desk which by the way, overwhelmingly contains only ketchup (Heinz) and straws (plastic, non-bending). I’ll scribble some new symbols on it and say something like, “so as you can see, the limit of this term as phi approaches infinity is…” and before I’ve finished the sentence the person has muttered something in bewilderment and shuffled away.

I’m not necessarily doing this out of malice or contempt, it’s just that I realized a long time ago that the technical analysis of market data is largely a crock. I’ve always carried this nagging little fact with me, and at times I’ve pondered the morality of having this job at all. So I’m not really doing the user a disservice here, unless I’m somehow expected to explain to everyone in the world that you can find meaningful patterns in any set of data—words in the bible, petals on a flower, sand on the beach, or the price of Superconductor (NasdaqSC:SCON). Chances are, the pattern that you discover holds no predictive power.
So it’s really not important to the person asking what the answer is, it’s just reassuring to believe that I possess one. In the end, they will probably make about as much money as chance would dictate. Maybe a little more, maybe a little less. If they do happen upon the holy grail, that ineffable oracle of a model that really can forecast the future, it is as likely to be in spite of my explanation as it is to be caused by it. Populus vult decipi; decipiatur.
How odd it is, I found myself thinking while reading this book, that there exists a Nobel prize for Economics yet none for Mathematics. Is my support for this book just another example of confirmation bias? I’m obviously not qualified to say. I suggest you judge it for yourself.
In my javascript debugging post I showed a stack trace and mentioned only that it seemed to be running javascript code. Here it is:
0:009> ~0k
ChildEBP RetAddr
WARNING: Stack unwind information not available. Following frames may be wrong.
0012f97c 6009db8b js3250!JSLL_MinInt+0x45e2
0012f9c8 6009cdd9 js3250!js_GetSrcNoteOffset+0x5358
0012f9f0 600c7c01 js3250!js_GetSrcNoteOffset+0x45a6
0012fa08 600856b5 js3250!js_GetScriptLineExtent+0x39e6
0012fa28 600b036f js3250!JS_NewStringCopyZ+0x44
0012fa40 600b3e93 js3250!js_FindProperty+0x26c5
This is a good stack to use to point out a few things about debugging without symbols.
If you’re used to stepping through debug code in Visual Studio, your first instict may be to trust the stack printed out here. This would be wrong, for a few reasons.
First, there’s the line telling us: “Stack unwind information not available. Following frames may be wrong.” Stop me if I’ve covered this before, but it probably means that we’re looking at optimized code. Optimized stack frames often have the pointers to each previous stack frame left out (you’ll see this called “frame pointer omission,” or FPO) which makes walking the stack much more difficult for the debugger.
Second, notice the offsets following the function names - most are very high. For example,
js3250!js_GetSrcNoteOffset+0x5358
The +0×5358
indicates that the return address is to a point more than 20KB after the export function given. 20KB is a lot of machine code, so this almost definitely an internal function call and not a return address into the body of js_GetSrcNoteOffset
.
I say “almost definitely” instead of “definitely” with good reason. I have personally seen some VB6 functions several thousands of lines long that would certainly generate more than 20KB of machine code. But I guess if you’re dealing with that then you have enough of your own problems without worrying about symbol subtleties in the Windows debuggers.
So the debugger here is showing us the closest symbol to the return address available, which turns out to not be very close at all.
What can we say about this thread’s stack, given just this information? Only that it is very likely to be running javascript code. Not much else.