Print Story The Fool who Follows
Diary
By TheophileEscargot (Sat Sep 22, 2007 at 04:43:46 AM EST) Reading.Watching, MLP (all tags)
Reading: "These Foolish Things", "Fooled by Randomness", Spanish. Listening. Me. Web.


What I'm Reading
Finished These Foolish Things by Deborah Moggach. Some elderly retirees are outsourced to a retirement home in Bangalore. This gives rise to moderate hi-jinks and much learning about the other cultures points of view. Seemed an OK read but basically not that interesting.

What I'm Reading 2
Finished Fooled by Randomness: The Hidden Role of Chance in Life and in the Markets by Nassim Nicholas Taleb. Interesting book by a successful options market analyst, concentrating on how people misunderstand probability, and how their cognitive biases affect their decisions.

He points out that at any given time, the most successful traders in a market will actually be the worst, since they're taking too many risks. Due to survivor bias, where the worst performers are eliminated, many of the most successful are operating purely on the basis of good luck.

He also talks a lot about rare but highly-significant "black swan" events, which he regards people as being biased against considering. He seems to have been quite successful in his own career, based on the assumption that black swan events tend to be mispriced.

He makes a pretty strong case for most people, even traders, significantly misunderstanding probability, and underestimating the role of luck in success.

The minor weakness of the book is that he seems to have a bit of a case of everything-looks-like-a-nail syndrome. For instance, he repeats the old and much-debunked myth about the QWERTY keyboard being less efficient than other keyboard layouts, using this as an example of how initial luck can be fossilized by standardization.

Also, I think that there is some chance that people might read the book and start erring the other way, overestimating the effect of chance. For instance, if most traders in a stock market literally invested completely at random, any trader who paid even the slightest attention to which companies were better run or better positioned would be able to clean up. Since in reality it's very difficult to systematically beat the market, that suggest that they're not trading completely at random, but with equivalent levels of skill. This still means that the differences between them will be random, and that which of them is most successful is random: it just doesn't mean that markets are necessarily worse than central planning.

Those are pretty small caveats though, and I'd say this book is well worth reading.

Author site. Review, review.

Listening
Still vaguely thinking about visiting Spain, so I grabbed an 8-CD course Spanish with Michel Thomas to listen to on the way to work.

It's an odd kind of course: it concentrates almost entirely on learning basic grammar and pronunciation. Usefully for an audiobook it assumes no reading of any kind. Don't think it was that useful for my purposes though, because there's very little vocabulary and very few useful phrases: he concentrates on teaching the grammar using a selection of words that are as close to English as possible.

So, it would probably work well as a fast introduction to someone who's going to be using the language. Not that useful for me though, as all I really want are a few touristy phrases. I think you'd really need to follow up with some actual use of the language too, or you'd just forget it all..

Watching
The Bourne Identity. Pretty good: fast paced, action-packed. Good fight scenes, with a decent balance between entertainment and realism.

I think I might be getting towards being too old for action movies though, because I found it hard to follow what was going on in the car chases: lots of fast cutting, very high proportion of close-ups, wobbly steadicam footage. Found myself confused as to who was in what car sometimes. Had similar problems with Transformers so it's not a one-off. On the other hand, I had had a few beers, so maybe if I enlist sobriety I can keep watching them for a few more years.

Me: random
Other signs of old age and corruption: I found this Dilbert cartoon rang very true. It's probably a bad thing when you start reading Dilbert and siding with the PHB.

Web
Functional programming is crap.

LOLcats|thulhu|secrets|tardis|rus|god.

Todd Klein on Batman logo (Metafilter).

< OP: Back To Skool | BBC White season: 'Rivers of Blood' >
The Fool who Follows | 22 comments (22 topical, 0 hidden) | Trackback
"Functional programming is crap" by TurboThy (4.00 / 2) #1 Sat Sep 22, 2007 at 08:53:42 AM EST
Did you actually understand what he says, or did you just post it? If you understood it, can you paraphrase why he thinks it is crap?
__
You can't fix anything, you can't change anything, so just tell them that everything is A. The Fuck OK. —Rogerborg


My take by wumpus (4.00 / 2) #2 Sat Sep 22, 2007 at 09:25:43 AM EST
Functional programming is crap := Everything should be written in assembler on chips running much less than 100MHz (no OoO, no cache, no MMU, nothing non-deterministic). Yet annother troll swearing that everything has to work perfectly in his little corner of the universe.

Wumpus

[ Parent ]

There might be a terminology problem here by TheophileEscargot (4.00 / 2) #7 Sat Sep 22, 2007 at 10:37:51 AM EST
Back in the day, we used to talk about "functional programming languages" to mean things like FORTRAN, COBOL and C: post-assembler, pre-object-orientation languages.

These days, "functional programming languages" seems to mean newer languages like Erlang, Haskell and Scheme, that treat absolutely everything as mathematical functions operating on data or other functions.

This confused me for a quite a while.
--
Butch and Petey are harsh and unforgiving in their estimation of female beauty.
[ Parent ]

Terminology by TurboThy (4.00 / 2) #11 Sat Sep 22, 2007 at 01:17:43 PM EST
"Back in the day" (for me being 1998, when I was first introduced to programming* through the wonder that is Moscow ML) we were taught that COBOL, C and its ilk are "imperative languages".

*) Not counting PEEKing and POKEing on my C64 in the eighties.
__
You can't fix anything, you can't change anything, so just tell them that everything is A. The Fuck OK. —Rogerborg
[ Parent ]

I started reading comp sci texts in the early 90s by lm (4.00 / 2) #12 Sat Sep 22, 2007 at 01:52:00 PM EST
I've never seen FORTRAN or COBOL describes as functional languages. The usual terms were either procedural or imperative. Lisp goes back to, when, the sixties?

There is no more degenerate kind of state than that in which the richest are supposed to be the best.
Cicero, The Republic
[ Parent ]

Different axes, different paradigms by yicky yacky (4.00 / 2) #13 Sat Sep 22, 2007 at 02:36:47 PM EST

'imperative' is used as an opposition to 'declarative' (e.g PHP vs. XSL -- one could differentiate less formally / rigidly by calling it 'instructional' vs. 'implicative', although that, too has semantic issues).

Theo's explanation is of an axis describing the evolutionary and developmental hierarchy of computer languages over time - in essence as a measure of increasing abstraction from the hardware machine.

The first tier is machine code; the second tier contains languages such as assembly (essentially a textual abstraction of machine code); at the third tier (which contains C and COBOL), you start to see an abstraction from explicit machine instructions to the intended function of those instructions, so instead of saying {'put value 3 in register a'; 'put value 5 in register b'; 'send registers a and b to the ALU with an ADD instruction and put the returned result in register c'; 'copy register c to memory address #blah'} you tell it 'x = 3 + 5;'. 'Function' in this case refers to functionality not 'mathematical mapping operation' (although it essentially is that also). The third tier is generally referred to as the functional layer.

It does not mean functional in the lisp and Haskell sense, and it's only equivalent to 'procedural' in a much looser context (several higher-tier languages and indeed lower ones [e.g. assembly] are also procedural -- again, 'procedural' strictly belongs to another axis).

I assure you, though, that it is a valid nomenclature and is referred to in several CS textbooks; it just happens to be talking about something else. Hence, Theo is essentially correct: there is a large semantic confusion as to what is meant by a 'functional' language.


----
Done.
[ Parent ]

Not to pile on, but by ucblockhead (4.00 / 2) #15 Sat Sep 22, 2007 at 07:09:48 PM EST
When I took my "programming languages" class in 1986, we were introduced to "functional languages" with something called "FP", which is a toy language but very much what you'd call a functional language today. Pascal (and C, etc.) was called a procedural language.
----
ウセーバラケダ
[ Parent ]

Well, they are. by yicky yacky (4.00 / 2) #17 Sat Sep 22, 2007 at 07:42:39 PM EST

C is a procedural language; it's also an imperative language. According to the abstraction hierarchy thing mentioned above, it's also a 'functional' language. Note: I'm not claiming that 'functional language' doesn't now mean the mathematical-function-based languages as it's understood today. I'm just saying that there was once a time when it was also used in the context mentioned above, though this usage has lessened with the advent of 'functional programming'.

I'm wondering whether this is a UKie (possibly BCS-specific) thing. I'd also note that it's entirely possible not to come across it in the literature aimed at computer scientists and software developers generally -- it wasn't covered in our 'languages' course, for example, where functional programming was used as understood now. I only came across the usage Theo references during a more specialised final-year course on compiler development and language construction; i.e. it seems to have been used in discussions with developers of languages, and not developers using languages.

Anyway: I knew what Theo meant, even if its use that way is fairly archaic and rare now, and was just verifying that he wasn't completely off-his-bonce as the replies implied.


----
Done.
[ Parent ]

Thanks by TheophileEscargot (4.00 / 2) #18 Sun Sep 23, 2007 at 02:46:39 AM EST
It might well have been a UK thing, and it's definitely an obsolete usage now. It's good to know I'm not going crazy for clearly remembering that usage... ;-)
--
Butch and Petey are harsh and unforgiving in their estimation of female beauty.
[ Parent ]

"Functional programming is crap... by TheophileEscargot (4.00 / 1) #3 Sat Sep 22, 2007 at 09:30:49 AM EST
...because it hides away too much of the implementation, which makes it harder to parallelize and can give rise to security problems."

I may be misunderstanding though.
--
Butch and Petey are harsh and unforgiving in their estimation of female beauty.
[ Parent ]

Okay, so == by TurboThy (4.00 / 2) #4 Sat Sep 22, 2007 at 09:34:01 AM EST
"high level programming languages are crap", cf. wumpus' comment above.
__
You can't fix anything, you can't change anything, so just tell them that everything is A. The Fuck OK. —Rogerborg
[ Parent ]

Not quite by TheophileEscargot (4.00 / 1) #6 Sat Sep 22, 2007 at 09:55:21 AM EST
I would say his argument is that programming languages at too high a level are crap; and that Digg- and Reddit-friendly languages like Haskell and Erlang are at that level.

(I would say that like the 4GLs, these languages are at a higher level than C or C++ or Java.)

I think Wumpus is exaggerating a bit: just because you don't like super-high-level languages doesn't mean you want to drop right back down to assembler.
--
Butch and Petey are harsh and unforgiving in their estimation of female beauty.
[ Parent ]

I'm not exaggerating at all. by wumpus (4.00 / 2) #19 Sun Sep 23, 2007 at 04:07:23 PM EST
Look at his requirements. He wants deterministic timing. He wants complete control over all internal structures. To get that, you need either to program in a careful subset of C* or (and check your compiler output) or assembler AND run it on a seriously obsolete/designed for embedded processor. There is a reason that Linus won't accept C++ in the kernel (which really has more to do with memory, but this happens for identical reasons).

The author also whines about multi-threaded/multiprocessor CPUs (and presumably SMP boxen). The exact same issues with regard to timing happen once you add caches and MPUs, much less everything else needed to make a fast CPU. It's certainly harder to produce correct code on a multi-threaded program, but that doesn't mean that timing is ever going to be deterministic on a single threaded program. On a nec V20 I could tell you exactly how many processor cycles (baring metastability) it would take a certain program to execute, or to respond to an interrupt (and how many cycles the handler would take). Just try that with an athlonXP (or any other modern single core).

Finally, I'm not saying that the author wants to drop down to assembler. I'm saying he hasn't a clue what he's talking about and can't meet his own requirements. He's ranting the tradition troll about how everything in the world has to be custom designed for his wishes, wildly ignoring that he won't be bothered to use it if given to him.

Wumpus<CR> * note that this is C as a higher level assembler, not C as its own programming language. You have to be careful that you know the 1-to-1 relationship with the assembler to the C code. Those who want to use C as a programming language divorced from actual implementation (a mistake considering how C is defined) will find even C too high a level.

[ Parent ]

two second summary by lm (4.00 / 3) #5 Sat Sep 22, 2007 at 09:36:52 AM EST
His two main points:
  • I don't understand the different between abstraction and physical implementation, therefore every abstraction that doesn't direct access to every aspect of the physical implementation is crap and is lying to you
  • I can't understand functional programming well enough to model even a trivial real life problem as in a purely functional fashion, therefore it is entirely impossible to do so.


There is no more degenerate kind of state than that in which the richest are supposed to be the best.
Cicero, The Republic
[ Parent ]

"Functional programming is crap ... by Scrymarch (4.00 / 2) #8 Sat Sep 22, 2007 at 11:21:21 AM EST
... because functional programming languages currently in existence do not provide timing guarantees for the execution of a code fragment."

"(Implicit) I consider hard timing guarantees the most important problem in language design today"

"(Implicit) Java, C++, Perl, current hardware, current hardware abstractions, etc are also crap because their standard implementations also lack timing guarantees and use a thread abstraction for concurrency rather than my hobby horse, universal behaving machines"

The Political Science Department of the University of Woolloomooloo

[ Parent ]

Obviously by ucblockhead (4.00 / 2) #9 Sat Sep 22, 2007 at 11:41:05 AM EST
He should use Forth. That would give timing guarantees.
----
ウセーバラケダ
[ Parent ]

I was thinking by Scrymarch (4.00 / 2) #10 Sat Sep 22, 2007 at 12:34:52 PM EST
... there was nothing inherent about a functional language that precluded timing guarantees (though I didn't know that about Forth) ... his main objection to them is his love for another abstraction, as far as I can tell.

The Political Science Department of the University of Woolloomooloo

[ Parent ]

Forth by ucblockhead (4.00 / 3) #16 Sat Sep 22, 2007 at 07:13:06 PM EST
Is a very low language, practically assembly. No threading, etc., and yes, you can say for sure exactly how long things will take. It is also somewhat of a functional language, though not rigorously so as it was designed by pragmatic astronomers, not math theorists.
----
ウセーバラケダ
[ Parent ]

on a forth chip <natch tee> by wumpus (4.00 / 2) #14 Sat Sep 22, 2007 at 05:09:42 PM EST
wumpus

[ Parent ]

I've been meaning to read Taleb by leviramsey (4.00 / 1) #20 Sun Sep 23, 2007 at 09:09:11 PM EST

For a number of years (I remember seeing it cited in, I think Fortune a couple years back and thinking, "Oooh, interesting"). I obviously haven't, so maybe I'm just saying something that he says.

It would appear that his strategy of betting on the Black Swan events works very well in a trading environment like that seen over the past 25-30 years or so. It's success may be more due to that environment than anything else.

The past few decades has seen a major rise in both technical trading approaches (which pretty much operate on the assumption that price movements follow certain patterns and that it's a trivial problem to divine the future from the past movements...) and [regression-tested] quant approaches (which tend to be major groupthink, since everyone is basically regression-testing on the same datasets). Neither approach is particularly good at handling a Black Swan event, which creates a major arbitrage opportunity.

It would seem that fundamentals-based trading would price in Black Swan events more readily. The Black Swans can [largely] be identified ahead of time and a wise investor may be able to hypothesize about the signs thereof, thus providing an opportunity to cover that base ahead of time. In times where fundamentals-based approaches were more in vogue, I wonder hoe Taleb would do.

It should also be noted that many of the quant and technical approaches scored their biggest gains (ignoring momentum gains) from when fundamentals were in and ignoring salient pieces of information that were considered by the quants and techs.

The moral of the story: the best type of knowledge is holistic, gained from a variety of sources and methods.


--
Could I be the next Lee Abrams?


Fast cutting etc by nebbish (4.00 / 1) #21 Mon Sep 24, 2007 at 06:01:39 AM EST
I don't think it's you, it's a new development in films. Transformers was awful for it, very confusing with obtrusive sound design too. Watch an old action film - you'll notice lots of long shots and even slow motion sequences.

I suspect it has something to do with covering up the cracks in CGI, moving too fast for you to notice them.

--------
It's political correctness gone mad!


The thing is by R Mutt (4.00 / 1) #22 Mon Sep 24, 2007 at 06:18:15 AM EST
If you look back, older film critics said the same thing about films like Star Wars: that with all the lightning-fast cutting they couldn't work out what was going on.

These days, that's pretty much standard. The pace of things keeps speeding up...

[ Parent ]

The Fool who Follows | 22 comments (22 topical, 0 hidden) | Trackback