There's nothing like a day at sea to stimulate some philosophizing... The last time I wrote a dialog I picked on the theists, so I thought I'd give the atheists some equal time. :-)
---
RG: Hello, QualiaSoup. Thanks for taking the time to "chat" with me.
QS: You didn't exactly give me a choice, did you now.
RG: No, I didn't, and that will actually become quite relevant later on.
QS: Hm, that's intriguing. I can't offhand think of any valid points you could make from co-opting my identity in this way, but since I don't have a choice I'll go ahead and suspend my disbelief for the moment. What did you want to talk about?
RG: First I wanted to tell you that I thought that your videos (at least the two that I watched [1] [2]) are very good. They're well paced, accurate, and you take very complex issues and present them in a way that I think nearly anyone can readily understand. And you taught me something about bananas that I didn't know before, so I thank you for that.
QS: Don't mention it.
RG: I also wanted to let you know that your videos inspired me to write this blog entry.
QS: Fine, but why drag me into it? Why not just write a normal sort of essay, or put together a video response like everyone else does?
RG: Because "dragging you into it" is actually essential to the point I want to make.
QS: And that would be...
RG: Before I reveal my thesis I beg your indulgence for one more moment so that I can preface my argument with this: I actually agree with nearly everything you say in your videos. In particular, I agree with you that the existence of God (or gods) is untenable on both logical and evidentiary grounds. Nonetheless, I think I can put forward a credible argument that God (some God, the exact nature of which I will get to in good time) does in fact exist.
QS: Normally I would dismiss you as just another kook. People have been trying unsuccessfully to prove the existence of God for millennia. But since you don't seem to be a religious nut (tip o' the hat for the rhetorical priming there...)
RG: Why, thank you kindly.
QS: ... and since you haven't really left me a lot of choice in the matter, I'll stay and listen to what you have to say.
RG: I appreciate that. But please note that I did not say that I was going to *prove* the existence of God. I freely acknowledge that cannot be done. What I said I wold do was present *a credible argument for His existence* (for some value of "His". And, I might add at this point, "existence.")
QS: I'm all ears.
RG: Thank you. First we have to establish what it means to exist. You didn't go into it much in your videos, but you strongly implied an operationalist definition of existence: things exist if they can be *measured* somehow. The example you gave in your video was the wind, which exists by virtue of our being able to measure, for example, its velocity.
QS: So far so good.
RG: So I have a question for you: do you consider measurability to be a necessary and sufficient condition for existence?
QS: No. I go further than that. I take the scientific view of existence: to exist, something has to be measurable *repeatably* and *reliably*, at least in principle. Whether or not we *actually* perform those measurements is irrelevant. There are rocks on the far side of the moon which have never been measured, but they exist nonetheless. They exist because *if* you were to go to the far side of the moon you *could* measure them. The reason God does not exist is that if we could measure Him, he would simply be part of nature and would no longer be God. God is *by definition* impossible to measure.
RG: Not by the definition I intend to use.
QS: Then your definition does not correspond with the popular notion of God.
RG: That issue will indeed lie at the heart of the matter. But we're getting waaaayyyyy ahead of ourselves here. First we have to pin down the meaning of "exist" which will turn out to be much more problematic than the meaning of "God." For example, do unicorns exist?
QS: They do not exist as physical creatures. They do exist as concepts in people's minds. These two different modes of existence are referred to as existence in the wide and narrow senses. So unicorns and God and all other fictional creatures exist in the wide sense but not the narrow sense. But most religious people insist that (their) God exists in the narrow sense.
RG: OK, I'm with you so far. So let's take the wind. Does the wind exist in the narrow sense?
QS: Of course. Why would you doubt it?
RG: Because the wind is not really a "thing" in its own right. What we think of as "the wind" is really just a particular configuration of air molecules.
QS: But that's true of nearly everything that exists (in the narrow sense). Most "things" that we speak of existing don't really exist in their own right, but only as particular arrangements and states of ensembles of other things. At root, everything is just a transient configuration of subatomic particles (or the quantum wave function if you really want to be a purist about it).
RG: OK, we're still on the same page. From now on let us stipulate that when we speak of "existing" we mean in the narrow sense. So let me ask you this: does Borat Sagdiyev exist?
QS: No, he's a fictional character.
RG: How do you know?
QS: Are you kidding? That's common knowledge.
RG: You shouldn't believe everything you read on Wikipedia. Borat is different from other fictional characters. Unlike, say, Harry Potter, you can find people who have actually *met* Borat, who have seen him with their own eyes, who have touched him and hence in some sense "measured" him. Indeed, many of those encounters are documented on film. So by your own criterion, Borat exists.
QS: No. The criterion was that the measurements be reliably repeatable. If you do enough experiments you will find that Borat is actually Sacha Baron Cohen *pretending* to be Borat.
RG: But why should that imply Borat to be non-existent? You admitted earlier that the wind exists, but it is nothing more than a particular configuration of air molecules. So Borat is just a particular configuration of Sacha Baron Cohen, but that doesn't mean Borat doesn't exist.
QS: You're playing with semantics. In some sense, yes, Borat exists. But Borat does not have many of the qualities that are normally attributed to him. For example, he was not born in Kazakhstan. In fact, he was never born at all because Borat is not a *person*, he is a *persona*.
RG: But quibbling over whether Borat is a person or a persona is not a disagreement about Borat's *existence*, it is a disagreement about his *nature*.
QS: OK, I concede point. Borat exists, but he is a persona, not a person.
RG: Good enough. Now, does the fact that Borat is a persona *matter*?
QS: Of course it matters.
RG: Why?
QS: Good heavens, where to begin? Persons are bound by physical constraints that personas are not. Personas are ephemeral (like the wind), persons are not (like air molecules).
RG: But just because something is ephemeral doesn't mean it can't have an effect on the world. The wind, for example, can knock things over despite the fact that it is ephemeral. Borat can offend people despite the fact that he is ephemeral.
QS: But it isn't *really* Borat, it's *really* Sacha Baron Cohen.
RG: I could as well say it isn't *really* the wind, it's *really* the air molecules. It's just semantics. When the air molecules have the configuration we call "wind" they have the effects of the wind. When Sacha Baron Cohen has the configuration we call "Borat" he has the effects of Borat. The two situations are completely analogous. You cannot deny the existence of Borat without denying the existence of wind.
QS: OK, fine, but what does any of this have to do with God?
RG: I'm going to argue that disputes that are usually framed as disagreement about God's *existence* are really disagreements about His *nature*. Furthermore, if you reframe the argument in this way, you will find a surprising amount of agreement between atheists and theists about God's nature.
QS: I doubt that very much.
RG: I know. But I think that's because you tend to conflate *theism* with *fundamentalism*. There is no reconciliation with fundamentalists. The fundamentalists are simply wrong, as I'm sure you would agree. But not all theists are fundamentalists. Karen Armstrong, for example, is a theist but not a fundamentalist. And though I don't have the data to prove it, I suspect most people who consider themselves theists are likewise not fundamentalists. I believe that reconciliation between non-believers and such people (in the sense of coming to a mutual understanding of both God's existence and His nature) is possible.
QS: How?
RG: Let's start with existence. Has anything I've said so far changed your view about whether or not God exists?
QS: Absolutely not.
RG: I didn't think so. So let's try a different question: does the *idea* of God exist?
QS: Obviously.
RG: Then suppose we *define* God as this *idea*.
QS: Such a definition is circular and hence vacuous, so say nothing of the fact that it bears no resemblance to what people normally consider to be "God".
RG: You're wrong on all counts, but let me start with the last one. Wold you not agree that one of the things that people say of God is that He can heal the sick?
QS: Yes.
RG: Are you familiar with the placebo effect?
QS: Are you saying that God is a placebo?
RG: Sort of, though without the disparaging implications. Non-believers have a tendency to pooh-pooh placebos. The placebo effect has been something of an embarrassment to mainstream science. And yet it is undeniably real. It is also, at least so far, somewhat mysterious.
QS: It's just a matter of time before neuroscience figures it out.
RG: That may well be. One of the points of honest disagreements about God's nature is whether or not He is supernatural. Until science *actually* figures out how the placebo effect works we cannot *definitively* rule out the possibility that it is a supernatural effect (or, to put it in scientific terms, that it involves new physics). But regardless, everyone can agree that this healing effect, whether you call it the placebo effect or the Power of Faith or God, is undeniably *mysterious*, at least at the moment. Furthermore, until science *actually* resolves the question of how placebos work, the belief that science *will* resolve it is an article of faith.
QS: Science has a pretty impressive track record of resolving these kinds of mysteries. You seem to be arguing for the God of the gaps.
RG: Again, sort of. At the end I will argue that there is one gap for which there is good reason to believe that science will not fill it. But what I really want to argue for is God-as-an-idea. But (and this is very important) I want to argue *against* the concept of God as *merely* an idea. To reduce God-as-an-idea to God as *merely* an idea is as great a mistake as reducing Darwinian evolution to life-as-an-accident.
QS: I'm not quite certain whether the concept of God-as-an-idea strikes me as absurd or merely useless. But I'm pretty sure it's one or the other.
RG: It will turn out that God-as-an-idea has many of the same properties as God-as-deity (as conceived by non-fundamentalists). He/she/it can heal the sick (courtesy of the placebo effect). He/she/it can be influenced by prayer (ditto). He/she/it can perform (certain kinds of) miracles. He/she/it can serve as a basis for morality. He/she/it is mysterious. Some limited insight into his/her/its nature can even be gained through so-called holy texts, or through meditation and ritual.
QS: I buy all that. But none of that changes the fact that this kind of God is *fictional*.
RG: Absolutely. The mistake that atheists make is not in saying that God is fictional, but in saying that God is *merely* fictional. It's a mistake of the same sort that fundamentalists make when they say that Darwinian evolution is merely random. Randomness is in fact an essential component of Darwinian evolution. But it is not *merely* random. God-as-an-idea is fictional, but it is not *merely* fictional, just as Darwinian evolution is random, but it is not *merely* random.
QS: Darwinian evolution is rendered non-merely-random by the addition of a second essential element, namely, natural selection. Does God-as-an-idea have analogous essential element that separates it from "ordinary" fiction?
RG: Yes, but it's a little harder to characterize. It doesn't yet have a neat label like "natural selection" or "placebo effect". As far as I know no one has really explored this in depth. I've called it the elephant in the atheist living room but that's not a very good label. But the basic idea is this: there are manifest phenomena that emerge from human minds that are undeniably real but beyond the current reach of science. The placebo effect is one such phenomenon. Self-awareness is another. Qualia, like the flavor of chocolate or what it feels like to be in love or to be angry are another. Science can explain the external manifestations of these things, and may even be able to explain the physical mechanisms that underlie them. But science cannot possibly ever explain what it feels like to be hungry, or to be lonely, or to be loved or to be you. God is what you get when you stop sweeping these things under the rug as "mere" anything and start admitting them as a vital part of your reality.
QS: I don't sweep these things under the rug, I just understand them as manifestations of physical processes in my brain.
RG: But that cannot possibly give you a complete understanding of these things.
QS: How do you know that? Our knowledge of how the brain works is incomplete. How do you know that science can't *possibly* give us a complete understanding?
RG: Because of your own criterion for scientific reality: to be amenable to scientific inquiry a thing has to be *measurable*. And subjective experience is, by definition, not measurable. If it were measurable it would not be subjective.
QS: But subjective experience *is* measurable. If I'm in pain, for example, you can measure my physiological responses. You can do brain scans that show distinctive patterns depending on what my subjective experience is at any moment. And the technology for doing these things is still in its infancy. There is no reason to supposed that some day we won't be able to tell exactly what someone is thinking and feeling by scanning their brain.
RG: We can actually do better than that. We can even today tell things about someone's mental state by scanning their brain that they themselves are not consciously aware of. And that is exactly my point. There's this huge disconnect between the objective and the subjective, and it goes both ways. There are things in our subjective experience that are not in the physical manifestations of that experience, and vice versa.
QS: But science could still some day get a handle on all of that.
RG: No, it couldn't.
QS: Why not?
RG: Because at its core, subjective experience is fundamentally incompatible with the laws of physics.
QS: Remember that bit in the beginning where I said you weren't a kook? I should like to retract that now.
RG: Hear me out. All the known laws of physics are symmetric in time and space. That is, the laws of physics are the same everwhere and everywhen. Getting to that point is considered one of the crowning achievements of physics. But qualitative experience is not symmetric with respect to time and space. It has a privileged frame of reference: here and now. The laws of physics by their very nature cannot account for that.
QS: Of course they can. My here-and-now is not the same as your here-and-now. Everyone's here-and-now is anchored to the physical manifestation of their brain, which the laws of physics have no trouble describing as being present at a particular place and time.
RG: Ah, but you are making an assumption here, namely, that subjective experience is necessarily bound to a particular physical embodiment. There is a famous thought experiment in philosophy: suppose we put you under a general anesthetic and create an exact atom-for-atom duplicate of your brain and body. We then destroy the original "you" and wake up the duplicate "you". What would be the subjective experience? Philosophers argue about this a lot, but there are only three possible answers: 1) the subjective experience is indistinguishable from simply going to sleep and waking up again, 2) the subjective experience is somehow distinguishable or 3) it is not possible to do this experiment even in principle because the processes going on in the brain are inherently quantum in nature, and it is not possible to duplicate a quantum state. Let's assume for the sake of argument that 3 is not the case. (All indications are that the processing in the brain is fundamentally chemical, not quantum, so in principle it should be possible to do the duplication.) So now we have only two possibilities. If (1) is correct then we have proven that subjective experience is not bound to a particular physical artifact, and so subjective experience transcends physicality in exactly the same way that, say, information transcends physicality. If (2) is correct then we have proven that subjective experience cannot possibly be the result of purely physical processes, since we have two physically identical systems with two different subjective experiences. Either way science fails fundamentally to explain at least one aspect of subjective experience.
QS: There's another possibility that you have not taken into account. It may be that subjective experience is bound, not to a particular physical artifact, but to a particular physical configuration. In other words, possibility (1) is in fact correct.
RG: We can rule out that possibility as well by simply not destroying the original you. If subjective experience were bound to a particular physical configuration we would necessarily have the same subjective experience in two different locations. But that's not possible because by definition a single subjective experience is bound to a particular place and time. Both copies of you might have subjective experiences that are qualitatively identical, but they would not be the same experience.
QS: OK, let's not quibble over this. What has all this to do with God?
RG: Spiritual experiences are subjective. Some people experience them more than others. It's rather like experiencing color. Some people are color-blind and can't distinguish between, say, red and green. It is impossible to explain to such a person what the subjective difference between red and green is. They can understand in the intellectual abstract that they are different wavelengths of light, and even that they are different colors (because they can distinguish between red and blue), but they cannot ever know the subjective experience of being able to distinguish red from green. There is a "spiritual blindness" that that prevents some people from experiencing God in exactly the same way that color-blindness prevents some people from experiencing red and green. Such people tend naturally to become atheists. I myself am one such person. I have never had a spiritual experience in my life. The closest I've come is a sort of euphoria that I feel when I finally get a piece of code to work after fixing a particularly hard bug. Nonetheless, I can understand in the intellectual abstract that some people have these experiences, that they are as real to them as red and green are to me.
QS: I would call those delusions.
RG: Spiritual experience spans a very broad range. Some kinds of spiritual experience are fairly labelled as delusional, like schizophrenics who hear voices. They really do hear voices. It actually sounds to them like someone is talking even though no one is really there. (It's actually not so much the voices per se that make schizophrenics crazy as the fact that there's often no way to get them to shut up.) But to dismiss *all* spiritual experience as delusion is to throw the baby out with the bathwater.
QS: OK, I'll buy the general notion of spirituality as something that transcends science and is, at least in some cases, not actively harmful, and possibly even useful in grappling with (here's a label for your elephant) existential angst and certain other maladies. That's still a long way from saving your soul by nailing a guy to a cross.
RG: Granted. I already conceded that fundamentalism cannot be reconciled with science. But surely at this point you can see how the idea that, say, Jesus died for your sins can be a legitimate belief in the subjective realm of spirituality?
QS: I would have conceded that straightaway. It is not at all unusual for people to have imaginary friends.
RG: Ah, but Jesus is a very special kind of imaginary friend. He is an imaginary friend whom a great many people share in common. And when imagination becomes communal it becomes a fundamentally new kind of phenomenon: it becomes a shared subjective experience. It becomes an effective weapon against despair and solipsism. It becomes a more powerful healing agent through the placebo effect. In short, it becomes God.
QS: But it's still just an idea. It never rose from the dead or tuned water into wine.
RG: But that doesn't matter, and if you think it does you are missing the point. Whether Jesus actually, literally, physically turned water into wine only matters to the fundamentalist, with whom we have long since parted company. But to the non-fundamenatalist theist this is simply irrelevant because that is not what God is about. For the non-fundamantalist theist, God lives in the spiritual realm, in the realm of mythos rather than logos.
QS: But the realm of mythos isn't *real*. It doesn't *exist*.
RG: And here we come full circle, and I have one final question for you: do *you* exist?
QS: What a ridiculous question. Of course I exist. Oh, wait...
Friday, September 18, 2009
Is it still a joke if no one gets it?
I don't think I've ever seen so many smart people miss a point so ironically. YVain wrote up an analysis of fashion from a geeky sociological point of view, using the idea that "Real Men Wear Pink" as a hook on which to hang a theory of fashion as a tool for signaling social status. The essay got a lot of attention on hacker news, all of which proves that the article's point is actually correct, but in a particularly ironic way.
You see, the phrase "Real Men Wear Pink" is a pun. In this context, "Pink" is not a color, it's a brand name. So this really is a test of social standing of sorts, but it's not about fashion per se, it's about knowing the difference between wearing pink and wearing Pink.
Lest you come away from this thinking that I'm some kind of fashionista, I'm not. It's pure coincidence that I happen to know this little fashion factoid. I once had occasion to stay in a hotel on Jermyn street in London, where Thomas Pink has its flagship store. I happened to see it as I was walking down the street, and the irony of the name struck me immediately, and has apparently stuck in my head ever since.
I actually have done a little bit of studying about men's fashion, and there really is a sort of secret code that separates high-end men's fashion from the middle and lower-end stuff. Take men's jackets, for example. There are only a few parameters that vary: there's the cloth, of course, and whether it's single or double-breasted. But beyond those obvious things there are half a dozen or so less obvious ones, like the number of buttons. Middle-end jackets invariably have two or three buttons. Higher end jackets will often have one or four. Then there are the lapels. Middle-end jackets that are single-breasted will invariably have regular lapels. Double-breasted jackets will usually have peaked lapels. If you see peaked lapels on a single-breasted jacket you are almost certainly looking at a very expensive piece of clothing.
I learned all this because I once got a gift certificate for a high-end clothing store. It wasn't redeemable for cash, so I used it to get a jacket custom-made with a combination of features that are never found on off-the-rack jackets, but out of a fairly unassuming grey wool that makes it look at first glance like a regular sport coat. I wear it with jeans as a sort of personal fashion joke. I have yet to meet anyone who actually seems to have noticed.
I'm obviously hanging out with the wrong crowd.
You see, the phrase "Real Men Wear Pink" is a pun. In this context, "Pink" is not a color, it's a brand name. So this really is a test of social standing of sorts, but it's not about fashion per se, it's about knowing the difference between wearing pink and wearing Pink.
Lest you come away from this thinking that I'm some kind of fashionista, I'm not. It's pure coincidence that I happen to know this little fashion factoid. I once had occasion to stay in a hotel on Jermyn street in London, where Thomas Pink has its flagship store. I happened to see it as I was walking down the street, and the irony of the name struck me immediately, and has apparently stuck in my head ever since.
I actually have done a little bit of studying about men's fashion, and there really is a sort of secret code that separates high-end men's fashion from the middle and lower-end stuff. Take men's jackets, for example. There are only a few parameters that vary: there's the cloth, of course, and whether it's single or double-breasted. But beyond those obvious things there are half a dozen or so less obvious ones, like the number of buttons. Middle-end jackets invariably have two or three buttons. Higher end jackets will often have one or four. Then there are the lapels. Middle-end jackets that are single-breasted will invariably have regular lapels. Double-breasted jackets will usually have peaked lapels. If you see peaked lapels on a single-breasted jacket you are almost certainly looking at a very expensive piece of clothing.
I learned all this because I once got a gift certificate for a high-end clothing store. It wasn't redeemable for cash, so I used it to get a jacket custom-made with a combination of features that are never found on off-the-rack jackets, but out of a fairly unassuming grey wool that makes it look at first glance like a regular sport coat. I wear it with jeans as a sort of personal fashion joke. I have yet to meet anyone who actually seems to have noticed.
I'm obviously hanging out with the wrong crowd.
Thursday, September 17, 2009
[Travelogue] Drumming up some enthusiasm
We were on Kodiak Island today. We were told that we were the last cruise ship of the season, and that the previous three had all cancelled because of heavy rain and high wind. But when we got there is was only partly cloudy, no wind, and no rain. And it's kind of creepy, but that sort of thing just happens to us again and again when we travel. The opposite extreme, where we get weather bad enough to affect our plans, has happened only once in ten years that I can remember.
Kodiak turned out to be vastly more interesting than I was expecting it to be. We took a tour called the "Kodiak city overview" (with "city" being rather a relative term here) thinking it would be sort of a pity tour where we politely ooh and aah over the native crafts. And it kind of started out that way, with our guide proudly pointing out the fact that they have a McDonalds and a Subway, and (OMIGOD!) a Wal Mart! But then it started to get more interesting, with a small but well stocked aquarium where we got up close and personal with some Alaskan king crabs, and a beautiful rain forest full of moss-covered trees (but for the fact that it was fifty degrees it would have been paradise). But the highlight of the trip was a concert given by the Kodiak Island Drummers. The venue was the high school (there is only one on the entire island) and just the auditorium was an interesting feature in and of itself. The room was perfectly cylindrical. It had to be because it was mounted on gimbals and it could rotate to convert from an auditorium into a classroom.
The start of the show was delayed by some technical difficulties with the lights. Someone apparently turned out the backstage lights before the house lights, and now they couldn't find the switch to turn out the house lights. I was thinking to myself that they should just leave them on -- how much of a difference would it make? They finally sorted out the problem. It turned out to be worth the wait.
The curtain rose on a black, silent stage. Then a dozen ghostly white-gloved hands and masked faces appeared out of nowhere, glowing blue, illuminated by an unseen black light, followed a split second later by a sudden frenzy of sound and disembodied motion as they began to beat on unseen drums. And they were good. Tight. Lively. Well rehearsed. Not quite as good as the Kodo drummers of Japan, who tour world-wide, but the potential is clearly there.
After about twenty minutes they finished and brought up the lights. They took their masks off and we were shocked at how young they were. I was expecting high school students, but their ages turned out to range from eight to fourteen. It is no coincidence that the acronym for Kodiak Island Drummers is KID. If you have a passion for seeking out talented musical acts that no one knows about you should come up to Kodiak (and stop off for barbecue at the Smoke Shack in Seward while you're at it).
Kodiak turned out to be vastly more interesting than I was expecting it to be. We took a tour called the "Kodiak city overview" (with "city" being rather a relative term here) thinking it would be sort of a pity tour where we politely ooh and aah over the native crafts. And it kind of started out that way, with our guide proudly pointing out the fact that they have a McDonalds and a Subway, and (OMIGOD!) a Wal Mart! But then it started to get more interesting, with a small but well stocked aquarium where we got up close and personal with some Alaskan king crabs, and a beautiful rain forest full of moss-covered trees (but for the fact that it was fifty degrees it would have been paradise). But the highlight of the trip was a concert given by the Kodiak Island Drummers. The venue was the high school (there is only one on the entire island) and just the auditorium was an interesting feature in and of itself. The room was perfectly cylindrical. It had to be because it was mounted on gimbals and it could rotate to convert from an auditorium into a classroom.
The start of the show was delayed by some technical difficulties with the lights. Someone apparently turned out the backstage lights before the house lights, and now they couldn't find the switch to turn out the house lights. I was thinking to myself that they should just leave them on -- how much of a difference would it make? They finally sorted out the problem. It turned out to be worth the wait.
The curtain rose on a black, silent stage. Then a dozen ghostly white-gloved hands and masked faces appeared out of nowhere, glowing blue, illuminated by an unseen black light, followed a split second later by a sudden frenzy of sound and disembodied motion as they began to beat on unseen drums. And they were good. Tight. Lively. Well rehearsed. Not quite as good as the Kodo drummers of Japan, who tour world-wide, but the potential is clearly there.
After about twenty minutes they finished and brought up the lights. They took their masks off and we were shocked at how young they were. I was expecting high school students, but their ages turned out to range from eight to fourteen. It is no coincidence that the acronym for Kodiak Island Drummers is KID. If you have a passion for seeking out talented musical acts that no one knows about you should come up to Kodiak (and stop off for barbecue at the Smoke Shack in Seward while you're at it).
Wednesday, September 16, 2009
[Travelogue] Best barbecue west of the Klondike
The weather here in Alaska seems to turn on a dime. Yesterday was gorgeous, today is once again gray and rainy. Fortunately, we didn't have any plans to disrupt. We're in Seward, Alaska, on a transition between the first and second of the five legs of our cruise. Only a few dozen people from the first leg are going on to the second, and the ship is nearly empty except for the crew. It feels kind of eerie.
We walked around Seward for a bit but there's not a whole lot of there there. Like every place else we've been it's bracketed by beautiful mountains, but the town itself is not much to look at. You can walk the entire business district from end to end in about ten minutes.
We decided to have lunch in town and ended up in a restaurant called the Smoke Shack, which occupies one of four old rail cars in a complex aptly named the Train Wreck. It has six tables, and apparently we've become thoroughly citified because Nancy and I were both astounded at how slow the service was. It took us about half an hour to get a pulled pork sandwich and a bowl of soup. But it was worth the wait. My sandwich was served with an assortment of three home made barbecue sauces, any one of which would almost have been worth a trip to Seward to try. If you ever find yourself here and you like barbecue (and you're not in a hurry), I can definitely recommend this place.
We walked around Seward for a bit but there's not a whole lot of there there. Like every place else we've been it's bracketed by beautiful mountains, but the town itself is not much to look at. You can walk the entire business district from end to end in about ten minutes.
We decided to have lunch in town and ended up in a restaurant called the Smoke Shack, which occupies one of four old rail cars in a complex aptly named the Train Wreck. It has six tables, and apparently we've become thoroughly citified because Nancy and I were both astounded at how slow the service was. It took us about half an hour to get a pulled pork sandwich and a bowl of soup. But it was worth the wait. My sandwich was served with an assortment of three home made barbecue sauces, any one of which would almost have been worth a trip to Seward to try. If you ever find yourself here and you like barbecue (and you're not in a hurry), I can definitely recommend this place.
Tuesday, September 15, 2009
[Travelogue] Rain? What rain?
After taking a one-day break our ten-year-long winning streak with the weather while traveling seems to be back. With a vengeance. A disastrously rainy day in Juneau has been followed by two days of gorgeous weather in Sitka and the Hubbard Glacier. Sitka, with the city-limits-busting population of 8,000 or so, is the fifth largest "city" in Alaska. I took a mountain biking excursion and it took all of ten minutes to ride from the center of town to its outskirts. From there it was nothing but trees, streams, and mountain lakes. They get so much rain up here that they don't have water meters, just a flat rate for all you con drink, shower, and flush. Quite a contrast from Southern California where we're on second-stage rationing because of a four-year-long drought. Somewhat ominously, though, the summer has been the driest that anyone in Sitka can remember.
Tomorrow we're off to Seward, which marks the end of the first of the five legs of our trip. From there we go to Kodiak Island and Dutch Harbor, and that's the last we'll see of the U.S. for two months. From there we cross the Bering Sea to Petropavlovsk, which is at the southern end of the Kamchatka peninsula. I am given to understand that it's considered a resort by Russian standards. We'll see.
In the meantime, here's a photo of Hubbard glacier. Click for a full-scale version. I'm not going to be able to post many photos because the internet bandwidth from the ship is so low, but this was just to beautiful to wait. The face of the glacier is 500 feet high and seven miles wide (though what you see in the photo is just half of that width -- the other half is hidden behind the point on the right edge of the photo). If you look very, very closely you will just be able to make out a small black dot about a quarter of the way from the left edge of the photo and just under the bottom of the glacier. That's a boat.

Tomorrow we're off to Seward, which marks the end of the first of the five legs of our trip. From there we go to Kodiak Island and Dutch Harbor, and that's the last we'll see of the U.S. for two months. From there we cross the Bering Sea to Petropavlovsk, which is at the southern end of the Kamchatka peninsula. I am given to understand that it's considered a resort by Russian standards. We'll see.
In the meantime, here's a photo of Hubbard glacier. Click for a full-scale version. I'm not going to be able to post many photos because the internet bandwidth from the ship is so low, but this was just to beautiful to wait. The face of the glacier is 500 feet high and seven miles wide (though what you see in the photo is just half of that width -- the other half is hidden behind the point on the right edge of the photo). If you look very, very closely you will just be able to make out a small black dot about a quarter of the way from the left edge of the photo and just under the bottom of the glacier. That's a boat.
Saturday, September 12, 2009
The rain in Spain...
... may fall mainly in the plain, but in Alaska it rains along the coast.
About ten years ago, Nancy and I visited Europe. We landed in Munich on a gray, soggy day. It had been raining continuously, we were later told, for several weeks. But then an amazing thing happened. As we got off the plane, the rain stopped and the cloud cover started to thin. By the time we cleared customs the sun was shining, and since then we have had an almost uninterrupted streak of good luck with the weather whenever we have travelled. It has really been quite amazing.
Today our luck finally ran out. When we arrived in Juneau, Alaska this morning it had started to rain, and it hasn't stopped all day. Our excursion to the Mendenhall Glacier was cancelled, but not before we had driven to the airport and donned ice-hiking gear, including crampons and a harness. The day was somewhat redeemed by an absolutely fabulous dinner at a place called the Twisted Fish. If you're ever in Juneau I highly recommend it. The cocoanut salmon is almost worth the trip.
Juneau is actually a pretty amazing place. It's on the North American continent, but you can't reach it by road. The only way to get here is by air or sea. Nonetheless, it is the capital of Alaska, one of only two state capitals that is not accessible by road (the other, of course, being Honolulu). There seem to be only two kinds of businesses in town: art galleries and bars.
We're told this weather is not at all unusual. What is unusual, in fact almost unheard of this time of year, is sunshine. So it will give you some idea of how powerful our travel weather juju has been up until now when I tell you that we actually saw the sun yesterday in Ketchikan (of bridge-to-nowhere fame) for about five minutes. All of the locals were in the street gazing open-mouthed at the sky as if it were the Second Coming. (Yes, I am kidding about that. Now, I am not (at least as far as I know) kidding about how rare sunshine is up here.)
Which brings me back to Fjords. There are only four places in the world that have fjords: Norway, Alaska, Chile and New Zealand. Why is this? It because fjords are valleys carved out by glaciers. To make a glacier you need a lot of ice. To make a lot of ice you need a lot of precipitation and cold temperatures. To get cold temperatures you have to be far from the equator. And to get a lot of precipitation you need a mountain with a large body of water to the west. Why? Because the prevailing winds on planet earth blow from west to east. You can get sporadic precipitation from a lot of different sources. But to get the kind of sustain precipitation that you need to make a glacier the only way to do it is to tap into the water that has just evaporated from an ocean. The way you do that is you take the moist air from the ocean and force it upwards. As air rises, it cools, and any moisture it contains condenses out. And the easiest way to force air upwards is to take a mountain and put it in the path of the prevailing wind. Norway, Alaska, Chile and New Zealand are the only four places on earth that have the necessary ingredients to make glaciers: mountains far from the equator facing west adjoining an ocean.
So fjords, along with earthquakes and the Hawaiian islands chain, are another puzzle for young-earth creationists. If you want to argue that fjords were created by, say, Noah's flood, then you have to come up with some other explanation for why fjords are found in exactly these four places and no others, since glaciers require a very long time to form (and a long time to disappear again). 6000 years is nowhere near enough.
About ten years ago, Nancy and I visited Europe. We landed in Munich on a gray, soggy day. It had been raining continuously, we were later told, for several weeks. But then an amazing thing happened. As we got off the plane, the rain stopped and the cloud cover started to thin. By the time we cleared customs the sun was shining, and since then we have had an almost uninterrupted streak of good luck with the weather whenever we have travelled. It has really been quite amazing.
Today our luck finally ran out. When we arrived in Juneau, Alaska this morning it had started to rain, and it hasn't stopped all day. Our excursion to the Mendenhall Glacier was cancelled, but not before we had driven to the airport and donned ice-hiking gear, including crampons and a harness. The day was somewhat redeemed by an absolutely fabulous dinner at a place called the Twisted Fish. If you're ever in Juneau I highly recommend it. The cocoanut salmon is almost worth the trip.
Juneau is actually a pretty amazing place. It's on the North American continent, but you can't reach it by road. The only way to get here is by air or sea. Nonetheless, it is the capital of Alaska, one of only two state capitals that is not accessible by road (the other, of course, being Honolulu). There seem to be only two kinds of businesses in town: art galleries and bars.
We're told this weather is not at all unusual. What is unusual, in fact almost unheard of this time of year, is sunshine. So it will give you some idea of how powerful our travel weather juju has been up until now when I tell you that we actually saw the sun yesterday in Ketchikan (of bridge-to-nowhere fame) for about five minutes. All of the locals were in the street gazing open-mouthed at the sky as if it were the Second Coming. (Yes, I am kidding about that. Now, I am not (at least as far as I know) kidding about how rare sunshine is up here.)
Which brings me back to Fjords. There are only four places in the world that have fjords: Norway, Alaska, Chile and New Zealand. Why is this? It because fjords are valleys carved out by glaciers. To make a glacier you need a lot of ice. To make a lot of ice you need a lot of precipitation and cold temperatures. To get cold temperatures you have to be far from the equator. And to get a lot of precipitation you need a mountain with a large body of water to the west. Why? Because the prevailing winds on planet earth blow from west to east. You can get sporadic precipitation from a lot of different sources. But to get the kind of sustain precipitation that you need to make a glacier the only way to do it is to tap into the water that has just evaporated from an ocean. The way you do that is you take the moist air from the ocean and force it upwards. As air rises, it cools, and any moisture it contains condenses out. And the easiest way to force air upwards is to take a mountain and put it in the path of the prevailing wind. Norway, Alaska, Chile and New Zealand are the only four places on earth that have the necessary ingredients to make glaciers: mountains far from the equator facing west adjoining an ocean.
So fjords, along with earthquakes and the Hawaiian islands chain, are another puzzle for young-earth creationists. If you want to argue that fjords were created by, say, Noah's flood, then you have to come up with some other explanation for why fjords are found in exactly these four places and no others, since glaciers require a very long time to form (and a long time to disappear again). 6000 years is nowhere near enough.
Thursday, September 10, 2009
And now a word from our thponthor
We're at sea today, cruising the Alaskan Inside Passage so there's not much to report trip-wise. So I thought I'd take a vacation from the vacation to write about some geek stuff.
For the last few months I've been getting back into Lisp programming thanks to the advent of Clozure Common Lisp. CCL has actually been around for a long time, but only this year has it gotten stable enough to get real work done. But having reached that point, CCL now in my view kicks some serious tushie because of its excellent integration with both Linux and OS X, including Cocoa. (I'm told it also runs on Windows but I wouldn't know about that.)
A couple of years ago I sketched out a plan for attracting more people to Lisp. The plan was for a new Lisp-like language that I dubbed Ciel (pun intended). The "hook" for this new language was going to be a fundamental focus on abstract associative maps. I produced a rudimentary implementation in C++ using the Boehm GC and CLN for the numerical tower. It was only a few hundred LOC, but it was nonetheless fairly featureful. It was also hopelessly unreliable. It would run for a while and then dump core. And because most of the code was C++ code that was written by someone else, debugging it was pretty hopeless. Sometimes it seems that C++ was specifically designed to be hard to debug. So I ultimately abandoned the effort.
But now that CCL is available as a platform I'm taking up this effort again. The goal is to produce an integrated collection of a programming environment, libraries, and introductory text so that newcomers can download it all as a package and have it all Just Work. In this respect Ciel would be similar to other integration efforts, like Lisp in a Box and Peter Seibel's Practical Common Lisp but with one important difference: what the package will aim to teach is *not* Common Lisp, but Ciel, a new dialect of Lisp specifically designed to be user-friendly to non-Lisp programmers. Think of Ciel as a mental bridge between Python and "real" Lisp.
Specifically, the features that are going into Ciel in furtherance of this goal are:
1. Abstract associative maps as a fundamental data type. This was the basis of the original Ciel proposal, but will only be one component of the "new" Ciel effort. Associative maps are fundamental to a wide variety of programming tasks, but traditional presentations of Lisp encourage both confusion and premature optimization by teaching association lists to beginners. Association lists are very powerful, but they are too low-level for a modern introduction. Instead, associative maps should be taught (and should be made available) as an abstract type. Students should be taught to *use* associative maps *before* they are taught how to implement them.
2. Iteration using iterators rather than recursion. Again, recursion is very powerful, and to really understand programming you have to understand recursion. But newcomers should not be forced to wrap their brains around recursion before they can do anything interesting.
3. Lexicons instead of packages. I believe that lexicons (which are similar to Python modules) have a better "impedance match" to the non-Lisp mindset.
4. Various tweaks to cover-up aspects of Common Lisp's design that perennially confuse newcomers, including a new design for global variables, and seamlessly integrated infix syntax. I haven't written about that last one yet, but here's a sneak preview: the idea is to co-op an unused portion of the Lisp syntax space, the juxtaposition of a symbol name and a left paren with no intervening whitespace, e.g. f(x). There is a simple reader hack that allows f(x) to be *read* as (f x). Add an off-the-shelf infix parser and you can write, e.g. f(x+y) with no leading hash-sign character macro, which tends to be off-putting to newcomers. I've been experimenting with this idea for a few weeks now and it seems to work pretty well.
5. A single binding construct that subsumes LET, MULTIPLE-VALUE-BIND, and DESTRUCTURING-BIND for lexical bindings, and a separate binding construct for dynamic bindings. The conflation of lexical and dynamic bindings in Common Lisp is, again, a source of perennial confusion for newcomers, and the payoff in terms of being able to run legacy code from dynamically scoped dialects of Lisp is not worth that cost.
6. Support for ((...) ...) syntax so that you can write the Y combinator without FUNCALL being the most prominent visual feature of the code.
7. A comprehensive library including a complete web framework: a client, a server, interfaces to various databases, an HTML and form generation library, etc.
And last but not least...
8. A step-by-step text targeted towards new programmers. This text will be unique in that it will not take a top-down or bottom-up approach, but will instead be "middle-out". Because it starts with a comprehensive library, it can extend the knowledge of that library both upward (how to *use* the library) and downward (how the library is implemented) more or less simultaneously. The hope is that this approach will both attract newcomers (because it will let them do useful things quickly and easily) and convert them into "real" Lispers (because they can easily see how the features they are using are built in the underlying Common Lisp implementation).
A year ago I would have thought all this to be hopelessly overambitious. But I've been working on it for about six months now, and at my current rate of progress I think I have a good shot at getting it all done inside of a year.
For the last few months I've been getting back into Lisp programming thanks to the advent of Clozure Common Lisp. CCL has actually been around for a long time, but only this year has it gotten stable enough to get real work done. But having reached that point, CCL now in my view kicks some serious tushie because of its excellent integration with both Linux and OS X, including Cocoa. (I'm told it also runs on Windows but I wouldn't know about that.)
A couple of years ago I sketched out a plan for attracting more people to Lisp. The plan was for a new Lisp-like language that I dubbed Ciel (pun intended). The "hook" for this new language was going to be a fundamental focus on abstract associative maps. I produced a rudimentary implementation in C++ using the Boehm GC and CLN for the numerical tower. It was only a few hundred LOC, but it was nonetheless fairly featureful. It was also hopelessly unreliable. It would run for a while and then dump core. And because most of the code was C++ code that was written by someone else, debugging it was pretty hopeless. Sometimes it seems that C++ was specifically designed to be hard to debug. So I ultimately abandoned the effort.
But now that CCL is available as a platform I'm taking up this effort again. The goal is to produce an integrated collection of a programming environment, libraries, and introductory text so that newcomers can download it all as a package and have it all Just Work. In this respect Ciel would be similar to other integration efforts, like Lisp in a Box and Peter Seibel's Practical Common Lisp but with one important difference: what the package will aim to teach is *not* Common Lisp, but Ciel, a new dialect of Lisp specifically designed to be user-friendly to non-Lisp programmers. Think of Ciel as a mental bridge between Python and "real" Lisp.
Specifically, the features that are going into Ciel in furtherance of this goal are:
1. Abstract associative maps as a fundamental data type. This was the basis of the original Ciel proposal, but will only be one component of the "new" Ciel effort. Associative maps are fundamental to a wide variety of programming tasks, but traditional presentations of Lisp encourage both confusion and premature optimization by teaching association lists to beginners. Association lists are very powerful, but they are too low-level for a modern introduction. Instead, associative maps should be taught (and should be made available) as an abstract type. Students should be taught to *use* associative maps *before* they are taught how to implement them.
2. Iteration using iterators rather than recursion. Again, recursion is very powerful, and to really understand programming you have to understand recursion. But newcomers should not be forced to wrap their brains around recursion before they can do anything interesting.
3. Lexicons instead of packages. I believe that lexicons (which are similar to Python modules) have a better "impedance match" to the non-Lisp mindset.
4. Various tweaks to cover-up aspects of Common Lisp's design that perennially confuse newcomers, including a new design for global variables, and seamlessly integrated infix syntax. I haven't written about that last one yet, but here's a sneak preview: the idea is to co-op an unused portion of the Lisp syntax space, the juxtaposition of a symbol name and a left paren with no intervening whitespace, e.g. f(x). There is a simple reader hack that allows f(x) to be *read* as (f x). Add an off-the-shelf infix parser and you can write, e.g. f(x+y) with no leading hash-sign character macro, which tends to be off-putting to newcomers. I've been experimenting with this idea for a few weeks now and it seems to work pretty well.
5. A single binding construct that subsumes LET, MULTIPLE-VALUE-BIND, and DESTRUCTURING-BIND for lexical bindings, and a separate binding construct for dynamic bindings. The conflation of lexical and dynamic bindings in Common Lisp is, again, a source of perennial confusion for newcomers, and the payoff in terms of being able to run legacy code from dynamically scoped dialects of Lisp is not worth that cost.
6. Support for ((...) ...) syntax so that you can write the Y combinator without FUNCALL being the most prominent visual feature of the code.
7. A comprehensive library including a complete web framework: a client, a server, interfaces to various databases, an HTML and form generation library, etc.
And last but not least...
8. A step-by-step text targeted towards new programmers. This text will be unique in that it will not take a top-down or bottom-up approach, but will instead be "middle-out". Because it starts with a comprehensive library, it can extend the knowledge of that library both upward (how to *use* the library) and downward (how the library is implemented) more or less simultaneously. The hope is that this approach will both attract newcomers (because it will let them do useful things quickly and easily) and convert them into "real" Lispers (because they can easily see how the features they are using are built in the underlying Common Lisp implementation).
A year ago I would have thought all this to be hopelessly overambitious. But I've been working on it for about six months now, and at my current rate of progress I think I have a good shot at getting it all done inside of a year.
Wednesday, September 09, 2009
[Travelogue] Off to a good start
They say that the worst experiences make the best stories. If that's true, this is going to be the worst story ever, which is fine by me. As many of you already know, Nancy and I are off on a long trip. A ten weeks, this is by a huge margin the longest trip I've ever been on. It's pretty mind-boggling that none of the myriad things that could have gone wrong actually have. Our flight was not delayed. Our bags were not lost (though there were a few hours when it wasn't entirely clear whether they had actually made it on board the ship). We were not detained at the cruise terminal security checkpoint despite the fact that I very cleverly put our cruise tickets in our luggage (so our tickets got on board even if we couldn't). And they did manage to start the engines and disembark despite the fact that there was a two-hour delay while they loaded extra provisions on the ship.
Watching the ship being provisioned was actually pretty interesting, at least to a geek like me. There was this little army of fork lifts that shuttled palette after palette of soft drinks, flour, cheese, produce, and assort god-only-knows-what onto a little platform that was then hoisted onto the ship via a crane. The instant the platform reached the ship, a little hand-operated forklift would jut out from the hull, pick up the palette, and slurp it into the ship. And that process was repeated again and again and again for about three hours. Enough food and drink and booze to keep 700 human beings alive and happy for three months, all loaded in a few hours by less than a dozen men thanks to modern technology. Captain Bly would totally freak.
This ship, the Radisson Seven Seas Mariner is quite amazing. She was renovated not long ago, and I don't know if it was just a cosmetic makeover or if the re-did her physical plant, but she is unbelievably smooth. Even now as we're cruising up to the Alaskan fjords at twenty knots I can't tell that the engines are running. It's the quietest ship I've ever been on.
Speaking of Fjords, here's an interesting bit of trivia for you: there are four -- and only four -- places on the planet that have fjords. What are they, and why are there fjords there and nowhere else? Tune in tomorrow for the answer (assuming someone doesn't post it in the comments first).
Watching the ship being provisioned was actually pretty interesting, at least to a geek like me. There was this little army of fork lifts that shuttled palette after palette of soft drinks, flour, cheese, produce, and assort god-only-knows-what onto a little platform that was then hoisted onto the ship via a crane. The instant the platform reached the ship, a little hand-operated forklift would jut out from the hull, pick up the palette, and slurp it into the ship. And that process was repeated again and again and again for about three hours. Enough food and drink and booze to keep 700 human beings alive and happy for three months, all loaded in a few hours by less than a dozen men thanks to modern technology. Captain Bly would totally freak.
This ship, the Radisson Seven Seas Mariner is quite amazing. She was renovated not long ago, and I don't know if it was just a cosmetic makeover or if the re-did her physical plant, but she is unbelievably smooth. Even now as we're cruising up to the Alaskan fjords at twenty knots I can't tell that the engines are running. It's the quietest ship I've ever been on.
Speaking of Fjords, here's an interesting bit of trivia for you: there are four -- and only four -- places on the planet that have fjords. What are they, and why are there fjords there and nowhere else? Tune in tomorrow for the answer (assuming someone doesn't post it in the comments first).
Sunday, September 06, 2009
A Time Machine time bomb
I finally convinced myself that my new eSATA drivers were working, so I switched my two main external drives back from USB to eSATA. Everything seemed hunky dory, until I noticed that Time Machine was suddenly spinning for an awfully long time. I checked the logs and saw that Time Machine was busily deleting all my old backups. By the time I noticed, I had already lost about a year's worth.
What happened, as it turned out, was that when I unmounted the external drives to switch them back over to the eSATA cables, Time Machine removed those volumes from the exclusion list. It was trying to backup those external drives. To do that it needed about a terabyte of free space, so it was busily deleting all my old backups to make room. If I hadn't stopped it, it would have nuked them all. My backup volume is only 750GB.
IMHO this is a SERIOUS bug in Time Machine, almost bordering on legally actionable negligence on Apple's part. There are apparently people out there who have lost all of their backups because the exact same thing happened to them but they didn't notice in time. Newly mounted external drives should be excluded from backup by default. At the very least, Time Machine should prompt you, or warn you, or something. What any backup program should NOT do under any circumstances (and I would have hoped this would go without saying, but apparently not) is silently delete all of your backups.
UPDATE: There seems to be some confusion on two points. First, there was an option in TM on Leopard to "warn before old backups are deleted." In SL that option has been changed to "notify after old backups are deleted", which seems to me to rather defeat the purpose. Second, in most jurisdictions, if you accept money for a product there are implied warranties of merchantability and fitness for a particular purpose which you cannot disclaim. In this case, TM is advertised as an integral feature of OS X whose purpose is to make backups of your data. If instead it deletes all your data, that *could* be negligence that Apple could not legally disclaim, rather like selling a fire extinguisher that actually set your house on fire. But IANAL, and I didn't suffer any actual damages because I caught it in time, so I will not be putting this theory to the test. But someone who lost all their backups might.
What happened, as it turned out, was that when I unmounted the external drives to switch them back over to the eSATA cables, Time Machine removed those volumes from the exclusion list. It was trying to backup those external drives. To do that it needed about a terabyte of free space, so it was busily deleting all my old backups to make room. If I hadn't stopped it, it would have nuked them all. My backup volume is only 750GB.
IMHO this is a SERIOUS bug in Time Machine, almost bordering on legally actionable negligence on Apple's part. There are apparently people out there who have lost all of their backups because the exact same thing happened to them but they didn't notice in time. Newly mounted external drives should be excluded from backup by default. At the very least, Time Machine should prompt you, or warn you, or something. What any backup program should NOT do under any circumstances (and I would have hoped this would go without saying, but apparently not) is silently delete all of your backups.
UPDATE: There seems to be some confusion on two points. First, there was an option in TM on Leopard to "warn before old backups are deleted." In SL that option has been changed to "notify after old backups are deleted", which seems to me to rather defeat the purpose. Second, in most jurisdictions, if you accept money for a product there are implied warranties of merchantability and fitness for a particular purpose which you cannot disclaim. In this case, TM is advertised as an integral feature of OS X whose purpose is to make backups of your data. If instead it deletes all your data, that *could* be negligence that Apple could not legally disclaim, rather like selling a fire extinguisher that actually set your house on fire. But IANAL, and I didn't suffer any actual damages because I caught it in time, so I will not be putting this theory to the test. But someone who lost all their backups might.
Friday, September 04, 2009
CSS sucks redux
This is what my Google Groups admin page looks like since I upgraded to Snow Leopard:

If Google can't get CSS layout right what hope is there for us mere mortals?
If Google can't get CSS layout right what hope is there for us mere mortals?
Thursday, September 03, 2009
ESata on Snow Leopard
Imagine a car company with a successful line of sports cars. One day it decides to introduce a new model with new, clean lines and all the latest bells and whistles. Only one catch: the new model is available only with a 120 horsepower four-cylinder engine.
This is essentially the situation with Mac OS X Snow Leopard, which comes without support for the SiI3132 chipset, the most common chipset used in external SATA disk controllers. ESata is the 8-cylinder turbocharged engine of disk interfaces, the de facto standard for anyone for whom performance matters. And that includes anyone doing serious video editing, which is one of Apple's specific target markets.
Of course, it's not completely surprising that Apple would punt on ESata, since it already released its latest MacBook "Pro" models without an ExpressCard slot (except for the 17-inch model), which was the only way to get an ESata interface. All this leaves me at a loss. Does Apple intend for people to use MacBook Pros to edit video or not? And if not, what exactly is their target market? I don't get it.
Happily, through the grapevine I heard that the Silicon Image 3132r5 driver might work with Snow Leopard. I tried it, and it does indeed seem to work. I have not tested it extensively yet (I don't trust it with my live data so I need to swap an older drive into one of my Sata enclosures) but it looks very promising.
If anyone else decides to try this please let me know if it works for you.
This is essentially the situation with Mac OS X Snow Leopard, which comes without support for the SiI3132 chipset, the most common chipset used in external SATA disk controllers. ESata is the 8-cylinder turbocharged engine of disk interfaces, the de facto standard for anyone for whom performance matters. And that includes anyone doing serious video editing, which is one of Apple's specific target markets.
Of course, it's not completely surprising that Apple would punt on ESata, since it already released its latest MacBook "Pro" models without an ExpressCard slot (except for the 17-inch model), which was the only way to get an ESata interface. All this leaves me at a loss. Does Apple intend for people to use MacBook Pros to edit video or not? And if not, what exactly is their target market? I don't get it.
Happily, through the grapevine I heard that the Silicon Image 3132r5 driver might work with Snow Leopard. I tried it, and it does indeed seem to work. I have not tested it extensively yet (I don't trust it with my live data so I need to swap an older drive into one of my Sata enclosures) but it looks very promising.
If anyone else decides to try this please let me know if it works for you.
Wednesday, September 02, 2009
Blessed are the pacemakers
No, that's not a typo. David Wong takes a crack (in Cracked, which seems like an odd venue for this sort of thing) at brokering peace between Christians and Atheists. One of his defenses of Atheism is that it grew out of Rationalism, which even Christians embrace on suitable occasions:
Makes a worthwhile read. But it's interesting that he directed it at Christians specifically, and not theists in general. Shouldn't there be things that Atheists and Muslims can and must agree on as well? Athesists and Buddhists? Jews? Zoroastrians?
[Christians], there are people you love who would not be alive without [rationalism]. You can pray that grandpa's heart holds out for another year, but rational thinking invented the pacemaker.
Makes a worthwhile read. But it's interesting that he directed it at Christians specifically, and not theists in general. Shouldn't there be things that Atheists and Muslims can and must agree on as well? Athesists and Buddhists? Jews? Zoroastrians?
Tuesday, September 01, 2009
God, I love free enterprise
Just as I was starting to really fret about how to get rid of the horrible gloppy mess left behind by the fireproof gel we put on our house, someone drops off a flyer on our front porch. "Fire cleanup -- like it never happened!" and a list of a whole range of services, including some that would only be needed by people who got it a whole lot worse than we did (like replacing all the insulation in the attic).
Monday, August 31, 2009
Snow Leopard is a disaster
PDF display is broken in both Safari and Firefox. Most of my files have lost their proper application bindings. And my external SATA drives aren't working (apparently a known problem. So I can't connect to my Time Machine drive. So I can't even revert my Snow Leopard install.
What the fuck, Apple?
[UPDATE] The PDF display problem turned out to be an incompatible plugin (the Schubert PDF plugin). But the ESata problem seems to be real, and the only solution is to either buy a new ESata adapter or wait for Silicon Image to update their drivers. I'm not optimistic. It's not as if they didn't know Snow Leopard was coming. :-(
What the fuck, Apple?
[UPDATE] The PDF display problem turned out to be an incompatible plugin (the Schubert PDF plugin). But the ESata problem seems to be real, and the only solution is to either buy a new ESata adapter or wait for Silicon Image to update their drivers. I'm not optimistic. It's not as if they didn't know Snow Leopard was coming. :-(
Reflections on a fire
Now that I've had a chance to put a little mental distance between myself and the immediate prospect of losing my house, I thought I'd take a moment for some sober reflection about the Station Fire.
First, OH MY GOD THAT THING HAS GOTTEN MOTHERFUCKING HUGE!!! Just a couple of days ago, the Station Fire was the little fire, the smallest of four active fires in Southern California. The nasty one was down in Rancho Palos Verdes, and when they managed to put that one out in just a couple of days I assumed that the Station Fire would be short-lived as well. They were predicting relatively favorable weather. Hot and dry yes, but no wind. Wind is the killer. If you're in the path of a wind-driven fire, run. Do not pass go. Do not collect $200. Just take whatever is irreplaceable and go.
But the Station Fire was not -- and is not -- a wind-driven fire. It's just a plain old ordinary run-of-the-mill brush fire. The current conditions are not a worst-case scenario. In fact, they are -- to paraphrase Quentin Tarrantino -- pretty fucking far from worst-case. Which is why I am just shocked at how out-of-hand it has gotten. I shudder to think what we'd be looking at if the Santa Anas had been blowing for the last week.
Second, I am at once pleased and dismayed at how we dealt with an actual emergency. We had a plan, we executed on that plan, and almost everything went according to plan. But, man oh man, did we have the wrong plan.
I had a relatively sophisticated fire-fighting setup. I bought a gas-fired fire pump that could draw water out of the pool on the theory that even if it didn't actually do any good, it would suck less to watch the house burn while I was spraying water at it than watching it burn while standing by impotently. I also re-plumbed the main water feed to the house so that I could hook a real fire hose up to it as well. And I had fire-retardent gel and foam. I was as prepared as I could possibly be. It all worked more-or-less flawlessly. And it did make me feel a lot better, like I was doing something instead of just being a spectator. But in retrospect, I would have been much better off with a roof sprinkler and a truck.
The problem with brush fires is that they don't come with a program. You never know until after it's over whether this one is going to pass you by or bear down on you with wind-driven rage. In the middle of the broad scope of possible outcomes is a fairly narrow range where your intervention can actually help without putting yourself in danger. I think there's really only one scenario where homeowner intervention makes sense, and that is the case of the flying ember that lands on some tinder near the house, smolders for a while, and then burns the house down while the main body of the fire is still some distance away. And if you catch that early enough you can handle that situation with a garden hose.
I think if you're going to live anywhere near the mountains in SoCal you have to make your peace with the fact that your house might burn down some day and there will be nothing you can do about it. Accordingly, the best thing you can do is to figure out well in advance what stuff in the house really matters to you, and have a plan for getting that stuff out of the house, storing it somewhere safe for a while, and then putting it back, either in the same house or a new one that you build after the old one has burned down. Making that inventory was not part of our advance preparation, and that was a huge mistake. We found ourselves trying to decide under pressure what we wanted to save. And it turned out that some of those things -- mainly artwork -- wouldn't fit in our cars.
Happily for us, we were able to call on a friend who had a truck to come to our aid and help us cart away a few bulky paintings. And in the final analysis I think we did a pretty good job of triaging our possessions under pressure. But in the chaos, some really essential things, like the cat's litter box, ended up in the wrong place. If I had it to do over again, I would have made a written inventory of everything we wanted to save, which car it should go in, and done a dry run of packing to make absolutely sure it would all fit.
Someone asked me if I've had second thoughts about living in SoCal as a result of this fire. The answer is no, this fire hasn't changed my views at all (except on using Barricade Gel. I won't be doing that again.) In fact, I feel much better about living here now because the fire danger for us will be a lot lower for the next 5-10 years until all the brush grows back. Having the area around our house burn the way it did, in wind-free conditions, was the best possible outcome. That the brush would burn was inevitable (as is its growing back eventually). And I think it's also inevitable that our house will burn some day. We are surrounded by tall pine trees. That's one of the things that makes our neighborhood a really great place to be -- it's like living in the woods. But those trees can't keep dodging the fire bullet forever.
Trick is, there's no place safe on the planet. No matter where you go you have to deal with something, whether it's blizzards or hurricanes or fires or earthquakes or drought. And I guess I'd just as soon deal with the fires and the earthquakes as anything else. When it's not smoking and shaking, which is after all most of the time, this is actually a pretty nice place to be.
First, OH MY GOD THAT THING HAS GOTTEN MOTHERFUCKING HUGE!!! Just a couple of days ago, the Station Fire was the little fire, the smallest of four active fires in Southern California. The nasty one was down in Rancho Palos Verdes, and when they managed to put that one out in just a couple of days I assumed that the Station Fire would be short-lived as well. They were predicting relatively favorable weather. Hot and dry yes, but no wind. Wind is the killer. If you're in the path of a wind-driven fire, run. Do not pass go. Do not collect $200. Just take whatever is irreplaceable and go.
But the Station Fire was not -- and is not -- a wind-driven fire. It's just a plain old ordinary run-of-the-mill brush fire. The current conditions are not a worst-case scenario. In fact, they are -- to paraphrase Quentin Tarrantino -- pretty fucking far from worst-case. Which is why I am just shocked at how out-of-hand it has gotten. I shudder to think what we'd be looking at if the Santa Anas had been blowing for the last week.
Second, I am at once pleased and dismayed at how we dealt with an actual emergency. We had a plan, we executed on that plan, and almost everything went according to plan. But, man oh man, did we have the wrong plan.
I had a relatively sophisticated fire-fighting setup. I bought a gas-fired fire pump that could draw water out of the pool on the theory that even if it didn't actually do any good, it would suck less to watch the house burn while I was spraying water at it than watching it burn while standing by impotently. I also re-plumbed the main water feed to the house so that I could hook a real fire hose up to it as well. And I had fire-retardent gel and foam. I was as prepared as I could possibly be. It all worked more-or-less flawlessly. And it did make me feel a lot better, like I was doing something instead of just being a spectator. But in retrospect, I would have been much better off with a roof sprinkler and a truck.
The problem with brush fires is that they don't come with a program. You never know until after it's over whether this one is going to pass you by or bear down on you with wind-driven rage. In the middle of the broad scope of possible outcomes is a fairly narrow range where your intervention can actually help without putting yourself in danger. I think there's really only one scenario where homeowner intervention makes sense, and that is the case of the flying ember that lands on some tinder near the house, smolders for a while, and then burns the house down while the main body of the fire is still some distance away. And if you catch that early enough you can handle that situation with a garden hose.
I think if you're going to live anywhere near the mountains in SoCal you have to make your peace with the fact that your house might burn down some day and there will be nothing you can do about it. Accordingly, the best thing you can do is to figure out well in advance what stuff in the house really matters to you, and have a plan for getting that stuff out of the house, storing it somewhere safe for a while, and then putting it back, either in the same house or a new one that you build after the old one has burned down. Making that inventory was not part of our advance preparation, and that was a huge mistake. We found ourselves trying to decide under pressure what we wanted to save. And it turned out that some of those things -- mainly artwork -- wouldn't fit in our cars.
Happily for us, we were able to call on a friend who had a truck to come to our aid and help us cart away a few bulky paintings. And in the final analysis I think we did a pretty good job of triaging our possessions under pressure. But in the chaos, some really essential things, like the cat's litter box, ended up in the wrong place. If I had it to do over again, I would have made a written inventory of everything we wanted to save, which car it should go in, and done a dry run of packing to make absolutely sure it would all fit.
Someone asked me if I've had second thoughts about living in SoCal as a result of this fire. The answer is no, this fire hasn't changed my views at all (except on using Barricade Gel. I won't be doing that again.) In fact, I feel much better about living here now because the fire danger for us will be a lot lower for the next 5-10 years until all the brush grows back. Having the area around our house burn the way it did, in wind-free conditions, was the best possible outcome. That the brush would burn was inevitable (as is its growing back eventually). And I think it's also inevitable that our house will burn some day. We are surrounded by tall pine trees. That's one of the things that makes our neighborhood a really great place to be -- it's like living in the woods. But those trees can't keep dodging the fire bullet forever.
Trick is, there's no place safe on the planet. No matter where you go you have to deal with something, whether it's blizzards or hurricanes or fires or earthquakes or drought. And I guess I'd just as soon deal with the fires and the earthquakes as anything else. When it's not smoking and shaking, which is after all most of the time, this is actually a pretty nice place to be.
Sunday, August 30, 2009
Fire for the impatient
Time lapse video makes the fire look pretty gnarly. When you're as close as we are, it's every bit as ominous in real time.
Living through a brush fire: some lessons learned
This post is the one that I wish someone else had written that I could have read before yesterday.
The first thing you need to know about brush fires is that it's all about the wind. If the wind is blowing, you're screwed. There is nothing you can do but pack your stuff and the hell out of Dodge. I learned this from an acquaintance who lost his house in another fire a few years ago. He's a volunteer firefighter, so he has all the right training and equipment. He did all the right things. He had pumps and hoses and a chainsaw to cut away the wooden deck outside his house. The fire came to with a few yards of his house and then stopped. He thought he was safe, since there was now a wide zone between him and the fire that was depleted of fuel. The same brush can't burn twice, right?
Wrong. The wind shifted, and what had previously burned as a relatively controlled slow-moving fire, now re-ignited as if it was a blast furnace. His house pretty much just went "poof", and he was lucky to escape with his life. The heat from the fire blew out the back window of his truck and lit him on fire as he was heading down the hill. Fortunately, there were firefighters at the bottom who were able to extinguish him before turning their attention to their own truck, which had also caught fire. And yes, I saw photos. He documented everything quite meticulously.
Miraculously, although the weather has been unseasonably hot and dry (and that's saying something in August in Southern California) we have had virtually no wind. That's been horrible for air quality, but it's almost certainly the only reason more houses haven't been lost.
So last year I decided to get better prepared for the fire that I knew would inevitably come (though I wasn't expecting my timing to be quite this good). I explored various options, including a roof sprinkler, and a gas-fired pump that draws water from the pool. After consulting with a local fireman we decided to go with the pump. We also got a supply of foam and Barricade Gel. Yesterday I was able to put all that stuff to the test.
In retrospect I think we got it exactly backwards. If I had it to do over again I'd go with the roof sprinkler and forego the pump. The problem is that you have to be there to man it, and you have to be there when the fire arrives. And, as we found out the hard way yesterday, the same fire can arrive more than once.
The gel and foam turn out to be pretty useless also. The foam in particular just seemed to dissolve on contact with whatever it landed on. Five minutes after being applied there was no hint it had ever been there. The Barricade Gel, on the other hand, works as advertised. It leaves everything covered with a 1/4-inch thick layer of slimy goo. Word to the wise: wear leather work gloves when you apply this stuff, not because you need the protection, but because it's incredibly slippery, and if it gets on your hands you can't grip anything any more.
The trouble with the gel is it only lasts for an hour or two, so your timing still has to be pretty much dead-nuts on. It also leaves a horrible mess behind. Our house is now covered with a slimy film of residual gel, and I have no idea how we're going to get it off.
A roof sprinkler system has its own problems, of course. If you have eaves it won't do anything to protect the sides of the house. Of course, you can install sprinklers all around the eaves as well, but that starts to get expensive and/or unsightly. PVC will melt in a fire, so you need to use copper or galvanized steel for the plumbing. But the nice thing about it is that it's fire-and-forget (so to speak). You turn it on, evacuate, and whenever the fire arrives everything will be nice and soggy. It won't protect against a wind-driven fire (nothing will) but it will help prevent flying embers from igniting your house, which is pretty much all you can do. If mother nature decides she wants your house she will take it. The only way to be absolutely safe is to build out of concrete (and even then the radiant heat from a really hot fire can penetrate the windows and light the interior on fire).
One last thing to keep in mind if you decide to go with gel: it's seriously hard work to apply. You can do it with a garden hose, but that's very slow. We used the gas-fired pump, and let me tell you, wrangling a 100PSI fire hose make you feel very manly, but it is seriously hard work. By the time I was done applying the gel I was at the limits of my physical endurance in my upper body. Granted, I'm not in great shape. Most of the exercise I get above the waist is from typing. But I think I'm not alone in this. Oh, also, buy four times as much gel as you think you need.
There are two more drawbacks to the gel: its expensive, and it has a limited shelf life. You have to shake the containers every six months, and even then it only lasts a couple of years.
Of course, the best way to prepare for a brush fire is to buy a house far away from brush.
The first thing you need to know about brush fires is that it's all about the wind. If the wind is blowing, you're screwed. There is nothing you can do but pack your stuff and the hell out of Dodge. I learned this from an acquaintance who lost his house in another fire a few years ago. He's a volunteer firefighter, so he has all the right training and equipment. He did all the right things. He had pumps and hoses and a chainsaw to cut away the wooden deck outside his house. The fire came to with a few yards of his house and then stopped. He thought he was safe, since there was now a wide zone between him and the fire that was depleted of fuel. The same brush can't burn twice, right?
Wrong. The wind shifted, and what had previously burned as a relatively controlled slow-moving fire, now re-ignited as if it was a blast furnace. His house pretty much just went "poof", and he was lucky to escape with his life. The heat from the fire blew out the back window of his truck and lit him on fire as he was heading down the hill. Fortunately, there were firefighters at the bottom who were able to extinguish him before turning their attention to their own truck, which had also caught fire. And yes, I saw photos. He documented everything quite meticulously.
Miraculously, although the weather has been unseasonably hot and dry (and that's saying something in August in Southern California) we have had virtually no wind. That's been horrible for air quality, but it's almost certainly the only reason more houses haven't been lost.
So last year I decided to get better prepared for the fire that I knew would inevitably come (though I wasn't expecting my timing to be quite this good). I explored various options, including a roof sprinkler, and a gas-fired pump that draws water from the pool. After consulting with a local fireman we decided to go with the pump. We also got a supply of foam and Barricade Gel. Yesterday I was able to put all that stuff to the test.
In retrospect I think we got it exactly backwards. If I had it to do over again I'd go with the roof sprinkler and forego the pump. The problem is that you have to be there to man it, and you have to be there when the fire arrives. And, as we found out the hard way yesterday, the same fire can arrive more than once.
The gel and foam turn out to be pretty useless also. The foam in particular just seemed to dissolve on contact with whatever it landed on. Five minutes after being applied there was no hint it had ever been there. The Barricade Gel, on the other hand, works as advertised. It leaves everything covered with a 1/4-inch thick layer of slimy goo. Word to the wise: wear leather work gloves when you apply this stuff, not because you need the protection, but because it's incredibly slippery, and if it gets on your hands you can't grip anything any more.
The trouble with the gel is it only lasts for an hour or two, so your timing still has to be pretty much dead-nuts on. It also leaves a horrible mess behind. Our house is now covered with a slimy film of residual gel, and I have no idea how we're going to get it off.
A roof sprinkler system has its own problems, of course. If you have eaves it won't do anything to protect the sides of the house. Of course, you can install sprinklers all around the eaves as well, but that starts to get expensive and/or unsightly. PVC will melt in a fire, so you need to use copper or galvanized steel for the plumbing. But the nice thing about it is that it's fire-and-forget (so to speak). You turn it on, evacuate, and whenever the fire arrives everything will be nice and soggy. It won't protect against a wind-driven fire (nothing will) but it will help prevent flying embers from igniting your house, which is pretty much all you can do. If mother nature decides she wants your house she will take it. The only way to be absolutely safe is to build out of concrete (and even then the radiant heat from a really hot fire can penetrate the windows and light the interior on fire).
One last thing to keep in mind if you decide to go with gel: it's seriously hard work to apply. You can do it with a garden hose, but that's very slow. We used the gas-fired pump, and let me tell you, wrangling a 100PSI fire hose make you feel very manly, but it is seriously hard work. By the time I was done applying the gel I was at the limits of my physical endurance in my upper body. Granted, I'm not in great shape. Most of the exercise I get above the waist is from typing. But I think I'm not alone in this. Oh, also, buy four times as much gel as you think you need.
There are two more drawbacks to the gel: its expensive, and it has a limited shelf life. You have to shake the containers every six months, and even then it only lasts a couple of years.
Of course, the best way to prepare for a brush fire is to buy a house far away from brush.
Out of the frying pan
6:45 AM, got about 4-5 hours of sleep. Woken up by the cat, who can tell that something is not quite right, and despite the fact that I'm yawning like George Bush at a Constitutional law class, I can't fall back asleep. LA Times still reporting that the only structure loss in the fire so far are three houses in Big Tujunga Canyon, which is in the middle of the Angeles National Forest. So all indications are that our house is still standing. But I have no idea whether the fire has burned itself out in our neighborhood, or is still working its way up the canyon. That's definitely the worst part of being evacuated, the not knowing.
We're staying with some friends in Altadena. We had a great dinner here last night. The air was clear (one of the side-effects of being dry) and we had a spectacular view of the city lights. This morning it looks like a fog has descended, but it's not fog. It's smoke. The eastern flank of the fire is slowly working its way across the front range in this direction. And our friends' house is even more vulnerable than ours. It's a race against time between the fire and cooler weather which is supposed to arrive in the next few days.
I swear by all that is holy that I will never again wish for more excitement in my life.
[Update 10:00 AM] Our house is still standing, along with all the others in our neighborhood. The roadblocks have been removed, and a small army of firefighters are moving on to warmer climes. There's still some smoldering in the canyon, and today is going to be another scorcher so it's a little premature to breathe a complete sigh of relief, but it certainly appears that the worst is over.
We're staying with some friends in Altadena. We had a great dinner here last night. The air was clear (one of the side-effects of being dry) and we had a spectacular view of the city lights. This morning it looks like a fog has descended, but it's not fog. It's smoke. The eastern flank of the fire is slowly working its way across the front range in this direction. And our friends' house is even more vulnerable than ours. It's a race against time between the fire and cooler weather which is supposed to arrive in the next few days.
I swear by all that is holy that I will never again wish for more excitement in my life.
[Update 10:00 AM] Our house is still standing, along with all the others in our neighborhood. The roadblocks have been removed, and a small army of firefighters are moving on to warmer climes. There's still some smoldering in the canyon, and today is going to be another scorcher so it's a little premature to breathe a complete sigh of relief, but it certainly appears that the worst is over.
Saturday, August 29, 2009
Evacuated
Tonight for the first time in my life I am involuntarily not sleeping in my own bed. We've been evacuated. This has been quite a day. The fire came in from the east and it was a real nail-biter for a while, but then they beat it back and I thought that was going to be the end of it. But then it jumped a fire line and is now creeping back towards our house from the north and west. It's coming in very slowly, and the fire fighters have been doing an amazing job of saving structures, so we have every reason to believe the house will be OK. But we don't know. It's tense, but things could be a whole lot worse. There's very little wind. We had plenty of time to prepare, so we managed to get a lot of stuff into our cars. We're together, uninjured, and we have a place to sleep (and shower!) Thanks to everyone who offered help and lodging. I'll write more about this tomorrow, but right now I am beat.
Turn for the worse
The fire turned around overnight. Mandatory evacuations are in effect 100 yards from our house. Fresh layer of ash on the ground, tons of smoke. Need to go make preparations to bug out.
[UPDATE 9:10 AM] Not as bad as I thought. FIre is still slow moving, coming up the canyon one ridge over from us. There's a street between us any any direction the fire could come. If the Santa Anas were blowing we'd be hosed, but they're not so I'm not too worried yet.
[Update 10:08 AM] Mandatory evacuation was just extended to our area. We're bugging out.
[UPDATE 9:10 AM] Not as bad as I thought. FIre is still slow moving, coming up the canyon one ridge over from us. There's a street between us any any direction the fire could come. If the Santa Anas were blowing we'd be hosed, but they're not so I'm not too worried yet.
[Update 10:08 AM] Mandatory evacuation was just extended to our area. We're bugging out.
Friday, August 28, 2009
The shocking truth about Ezekiel 25:17
Yesteday I took a drive to reconnoiter the brush fires near our house and heard an interview of Quentin Tarrantino by Terry Gross of the NPR program Fresh Air. It was mainly about Quentin's new movie, but at one point she asked him about the scene in Pulp Fiction where Samuel L. Jackson's character, Jules, recites a Bible verse, specifically Ezekiel 25:17. I have long thought that this scene is one of the most brilliantly written scenes in movie history, and it also contains, apparently, one of the best kept secrets. This is what Jules says:
"The path of the righteous man is beset on all sides by the inequities of the selfish and the tyranny of evil men. Blessed is he who, in the name of charity and good will, shepherds the weak through the valley of the darkness. For he is truly his brother's keeper and the finder of lost children. And I will strike down upon thee with great vengeance and furious anger those who attempt to poison and destroy my brothers. And you will know I am the Lord when I lay my vengeance upon you."
But Ezekiel 25:17 simply says:
"And I will execute great vengeance upon them with furious rebukes; and they shall know that I am the LORD, when I shall lay my vengeance upon them."
And here are a few of the preceding verses:
"Unto the men of the east with the Ammonites, and will give them in possession, that the Ammonites may not be remembered among the nations. And I will execute judgments upon Moab; and they shall know that I am the LORD. Thus saith the Lord GOD; Because that Edom hath dealt against the house of Judah by taking vengeance, and hath greatly offended, and revenged himself upon them; Therefore thus saith the Lord GOD; I will also stretch out mine hand upon Edom, and will cut off man and beast from it; and I will make it desolate from Teman; and they of Dedan shall fall by the sword. And I will lay my vengeance upon Edom by the hand of my people Israel: and they shall do in Edom according to mine anger and according to my fury; and they shall know my vengeance, saith the Lord GOD. Thus saith the Lord GOD; Because the Philistines have dealt by revenge, and have taken vengeance with a despiteful heart, to destroy it for the old hatred; Therefore thus saith the Lord GOD; Behold, I will stretch out mine hand upon the Philistines, and I will cut off the Cherethims, and destroy the remnant of the sea coast."
All that stuff about shepherds and the path of the righteous man, which is integral to Jules's incongruous (because he is a hit man after all) philosophical analysis in the climactic scene, isn't there. I had always thought that Tarrantino composed those lines, and I was expecting him to reveal this when Terry Gross (who apparently hadn't done her homework) asked, not about this wonderful hoax, but simply how Tarantino came to choose that particular verse.
The answer shocked me: he said that he stole it from another movie! (I forget which one.) So not only had Gross apparently not bothered to look that verse up, Tarantino hadn't either!
This still ranks in my book as one of the great inside jokes in all of moviedom. But I am disappointed to learn that, apparently, it was played on Quentin Tarantino and not by him.
"The path of the righteous man is beset on all sides by the inequities of the selfish and the tyranny of evil men. Blessed is he who, in the name of charity and good will, shepherds the weak through the valley of the darkness. For he is truly his brother's keeper and the finder of lost children. And I will strike down upon thee with great vengeance and furious anger those who attempt to poison and destroy my brothers. And you will know I am the Lord when I lay my vengeance upon you."
But Ezekiel 25:17 simply says:
"And I will execute great vengeance upon them with furious rebukes; and they shall know that I am the LORD, when I shall lay my vengeance upon them."
And here are a few of the preceding verses:
"Unto the men of the east with the Ammonites, and will give them in possession, that the Ammonites may not be remembered among the nations. And I will execute judgments upon Moab; and they shall know that I am the LORD. Thus saith the Lord GOD; Because that Edom hath dealt against the house of Judah by taking vengeance, and hath greatly offended, and revenged himself upon them; Therefore thus saith the Lord GOD; I will also stretch out mine hand upon Edom, and will cut off man and beast from it; and I will make it desolate from Teman; and they of Dedan shall fall by the sword. And I will lay my vengeance upon Edom by the hand of my people Israel: and they shall do in Edom according to mine anger and according to my fury; and they shall know my vengeance, saith the Lord GOD. Thus saith the Lord GOD; Because the Philistines have dealt by revenge, and have taken vengeance with a despiteful heart, to destroy it for the old hatred; Therefore thus saith the Lord GOD; Behold, I will stretch out mine hand upon the Philistines, and I will cut off the Cherethims, and destroy the remnant of the sea coast."
All that stuff about shepherds and the path of the righteous man, which is integral to Jules's incongruous (because he is a hit man after all) philosophical analysis in the climactic scene, isn't there. I had always thought that Tarrantino composed those lines, and I was expecting him to reveal this when Terry Gross (who apparently hadn't done her homework) asked, not about this wonderful hoax, but simply how Tarantino came to choose that particular verse.
The answer shocked me: he said that he stole it from another movie! (I forget which one.) So not only had Gross apparently not bothered to look that verse up, Tarantino hadn't either!
This still ranks in my book as one of the great inside jokes in all of moviedom. But I am disappointed to learn that, apparently, it was played on Quentin Tarantino and not by him.
Dodged a bullet
It's about a quarter to ten and we're still here. Looks like we dodged the bullet. But that was as close as I ever want to get.
Got about four or five hours of sleep. Not bad all in all, but I still feel like somethin' the cat dragged in. The air in our neighborhood is stagnant and thick with smoke. There is a thin layer of ash covering everything outside, and though our house is pretty well sealed, the smoke has started to seep in through the chimneys. (They are gas fireplaces, so they don't have regular flues that you can close.) We had to abandon the mater bedroom last night and sleep in the guest room because of the smoke (note to self: never build a house with a fireplace in a bedroom), but I'll take a smoky house over a burned-down one any day.
An acquaintance of ours lost his house to a brush fire a few years back. He was a volunteer fireman, so he knew all the right things to do, and he did them all, and he still lost his house. It turns, unsurprisingly, that it's all about the wind. If the wind is blowing a brush fire in your direction you are absolutely fucked. So I am profoundly grateful for the stagnant air. This could have been much, much worse.
[Update at 10:15] Seems I may have spoken too soon. I just turned on the TV. The fire is apparently still heading closer to town. 800+ homes have been evacuated, presumably in the neighborhoods just east of us. So it's not over yet.
Ironically, the best coverage of the fire is on the local Fox News station, and it's none too good. It's amazing how much TV news reporters can talk and how much footage they can show without conveying any actual information. But every now and then they pull out into a wide shot from a helicopter that shows us exactly where the fire is, which is, of course, the main thing people want to know. Someone needs to figure out a way to track a fire in real time.
[Update at 11:00] The latest info from the LA Times seems to indicate that the fire is moving north, which is to say, away from us. The official word as of 6AM was "no structures immediately threatened."
[Update at 12:00] The smoke has dissipated a bit, so I went outside and shot a couple of photos:


Believe it or not, that's looking a whole lot better than it has for the last eighteen hours or so.
[Update 3:20PM] It has been a tense afternoon as the fire moved east to west across the ridge behind our house, but it now definitely looks like it will pass us by. Weather conditions seem to be improving a bit as well. I'm starting to relax a little.
Thanks to everyone who called and emailed to express their concern and offer help. It was very much appreciated.
Got about four or five hours of sleep. Not bad all in all, but I still feel like somethin' the cat dragged in. The air in our neighborhood is stagnant and thick with smoke. There is a thin layer of ash covering everything outside, and though our house is pretty well sealed, the smoke has started to seep in through the chimneys. (They are gas fireplaces, so they don't have regular flues that you can close.) We had to abandon the mater bedroom last night and sleep in the guest room because of the smoke (note to self: never build a house with a fireplace in a bedroom), but I'll take a smoky house over a burned-down one any day.
An acquaintance of ours lost his house to a brush fire a few years back. He was a volunteer fireman, so he knew all the right things to do, and he did them all, and he still lost his house. It turns, unsurprisingly, that it's all about the wind. If the wind is blowing a brush fire in your direction you are absolutely fucked. So I am profoundly grateful for the stagnant air. This could have been much, much worse.
[Update at 10:15] Seems I may have spoken too soon. I just turned on the TV. The fire is apparently still heading closer to town. 800+ homes have been evacuated, presumably in the neighborhoods just east of us. So it's not over yet.
Ironically, the best coverage of the fire is on the local Fox News station, and it's none too good. It's amazing how much TV news reporters can talk and how much footage they can show without conveying any actual information. But every now and then they pull out into a wide shot from a helicopter that shows us exactly where the fire is, which is, of course, the main thing people want to know. Someone needs to figure out a way to track a fire in real time.
[Update at 11:00] The latest info from the LA Times seems to indicate that the fire is moving north, which is to say, away from us. The official word as of 6AM was "no structures immediately threatened."
[Update at 12:00] The smoke has dissipated a bit, so I went outside and shot a couple of photos:


Believe it or not, that's looking a whole lot better than it has for the last eighteen hours or so.
[Update 3:20PM] It has been a tense afternoon as the fire moved east to west across the ridge behind our house, but it now definitely looks like it will pass us by. Weather conditions seem to be improving a bit as well. I'm starting to relax a little.
Thanks to everyone who called and emailed to express their concern and offer help. It was very much appreciated.
Thursday, August 27, 2009
Going to be an interesting night
The Station Fire is burning about a mile from our house. They've apparently started to evacuate some of the nearby neighborhoods. We've started packing up some things, staging the fire pump by the pool. Probably not going to get a lot of sleep tonight. Thankfully, there's not a lot of wind or we'd probably be toast (a little dry humor for the occasion).
Pray for us. It can't hurt. (Update: and for the folks down in Rancho Palos Verdes. They seem to be in much worse shape down there than we are.)
[Update at 11:32] Just heard on the news that there are no mandatory evacuations yet, and there are still a couple of canyons between us and the fire. Still no wind. So we're OK for the time being.
[Update at 11:49] Never really had to think seriously about what to save if the house burned down. We have a ton of stuff. Most of it is replaceable, but a lot isn't, and a lot of what isn't replaceable is heavy (photo albums) or awkward (we have a ton of art). How much of it should we try to save? How paranoid should we be? Should we go ahead and load it all into our cars? What about the stuff that just has sentimental value, like my AdWords Launch lava lamp, or the stuffed gorilla from the "gorilla marketing" campaign from two startups ago? Should we take clothes? Toothbrushes? Happily, all this still appears to be academic at this point. But the glow of the fire is clearly visible over the ridge line behind our house.
[Update at 1:00 AM] I think we've done all we can to prepare, and everything seems quiet outside, so I'm actually going to try to get some sleep.
Pray for us. It can't hurt. (Update: and for the folks down in Rancho Palos Verdes. They seem to be in much worse shape down there than we are.)
[Update at 11:32] Just heard on the news that there are no mandatory evacuations yet, and there are still a couple of canyons between us and the fire. Still no wind. So we're OK for the time being.
[Update at 11:49] Never really had to think seriously about what to save if the house burned down. We have a ton of stuff. Most of it is replaceable, but a lot isn't, and a lot of what isn't replaceable is heavy (photo albums) or awkward (we have a ton of art). How much of it should we try to save? How paranoid should we be? Should we go ahead and load it all into our cars? What about the stuff that just has sentimental value, like my AdWords Launch lava lamp, or the stuffed gorilla from the "gorilla marketing" campaign from two startups ago? Should we take clothes? Toothbrushes? Happily, all this still appears to be academic at this point. But the glow of the fire is clearly visible over the ridge line behind our house.
[Update at 1:00 AM] I think we've done all we can to prepare, and everything seems quiet outside, so I'm actually going to try to get some sleep.
Sunday, August 23, 2009
Global variables done right
If you've read my Idiot's Guide to Special Variables you will already know that I am not a big fan of the design of Common Lisp's global variables system. There are (at least) three problems with CL's design:
1. There are no global lexicals.
2. DEFCONSTANT doesn't actually define a constant, it defines a global variable with the less-than-useful property that the consequences of attempting to change its value are undefined. Thus, a conforming implementation of Common Lisp could expand DEFCONSTANT as DEFVAR. (I am, frankly, at a loss to understand why DEFCONSTANT was even included in the language. As far as I can tell there is nothing that you can do in portable CL with DEFCONSTANT that you could not do just as well with DEFINE-SYMBOL-MACRO.)
3. There is no way to declare a global variable without also making the name of the variable pervasively special. In other words, once you've created a global variable named X it is no longer possible to write new code that creates lexical bindings for X. It is, of course, still possible for code evaluated before X was declared special to create lexical bindings for X. IMHO this is just insane. The only reason for this design is for backwards compatibility with code written for dynamically scoped dialects of Lisp. Well, guess what, folks. It's 2009. There are no more dynamically scoped dialects of Lisp. (Well, there's eLisp, but it lives safely sequestered in its own world and can be safely ignored by rational people.) And if you're still unconvinced that Common Lisp's pervasive special declarations are a bad design, consider the rule that all global variables should have named that are bookended by asterisks. Any time you need to impose a rule like that on your programmers, your language design is broken.
Fortunately, the situation is not all that hard to remedy. All that is needed is to implement the hypothetical L-LET and D-LET constructs from the Idiot's Guide, and to provide a way to declare global variables in a way that doesn't make them globally special.
Ladies and Gentlegeeks, I give you Global Variables Done Right:
The best way to show what this code does is with an example:
Things to note:
1. The design is completely orthogonal. In fact, a single variable can have a local lexical binding, a global lexical binding, and a dynamic binding all at the same time, and all of which are accessible in a single scope. No more pervasive special declarations. (In fact, no more special declarations at all. They are replaced with the DLET macro.)
2. Constants are enforced to be immutable unless this is explicitly overridden by specifying FORCE-REBIND to be true.
3. Because the design is orthogonal, it is actually a design choice whether dynamically binding a global lexical should be an error. There is no reason why this couldn't be allowed to proceed, to create a dynamic binding that could then be accessed (only) via the DVAL macro. But I decided that although it's possible to have both global lexical and dynamic bindings for the same variable at the same time, it's probably not a good idea.
1. There are no global lexicals.
2. DEFCONSTANT doesn't actually define a constant, it defines a global variable with the less-than-useful property that the consequences of attempting to change its value are undefined. Thus, a conforming implementation of Common Lisp could expand DEFCONSTANT as DEFVAR. (I am, frankly, at a loss to understand why DEFCONSTANT was even included in the language. As far as I can tell there is nothing that you can do in portable CL with DEFCONSTANT that you could not do just as well with DEFINE-SYMBOL-MACRO.)
3. There is no way to declare a global variable without also making the name of the variable pervasively special. In other words, once you've created a global variable named X it is no longer possible to write new code that creates lexical bindings for X. It is, of course, still possible for code evaluated before X was declared special to create lexical bindings for X. IMHO this is just insane. The only reason for this design is for backwards compatibility with code written for dynamically scoped dialects of Lisp. Well, guess what, folks. It's 2009. There are no more dynamically scoped dialects of Lisp. (Well, there's eLisp, but it lives safely sequestered in its own world and can be safely ignored by rational people.) And if you're still unconvinced that Common Lisp's pervasive special declarations are a bad design, consider the rule that all global variables should have named that are bookended by asterisks. Any time you need to impose a rule like that on your programmers, your language design is broken.
Fortunately, the situation is not all that hard to remedy. All that is needed is to implement the hypothetical L-LET and D-LET constructs from the Idiot's Guide, and to provide a way to declare global variables in a way that doesn't make them globally special.
Ladies and Gentlegeeks, I give you Global Variables Done Right:
(defun get-dynamic-cell (symbol)
(or (get symbol 'dynamic-cell) (setf (get symbol 'dynamic-cell) (copy-symbol symbol))))
(defun dynamic-value (symbol) (symbol-value symbol))
(defmacro defv (var val)
"Defines VAR to be a global dynamic variable with initial value VAL"
`(progn
(setf (symbol-value ',(get-dynamic-cell var)) ,val)
(define-symbol-macro ,var (dynamic-value ',(get-dynamic-cell var)))))
(defmacro dval (var)
"Returns the current dynamic binding of VAR, even if there is a lexical binding in scope"
`(symbol-value ',(get-dynamic-cell var)))
(defmacro dlet (bindings &body body)
"Unconditionally create new dynamic bindings"
(if (atom bindings) (setf bindings `((,bindings ,(pop body)))))
(let* ((vars (mapcar 'first bindings))
(dvars (mapcar 'get-dynamic-cell vars))
(vals (mapcar 'second bindings)))
(dolist (v vars)
(let ((e (macroexpand v)))
(if (or (atom e) (not (eq (car e) 'dynamic-value)))
(error "~A is not a dynamic variable" v))
(if (eq (car e) 'non-settable-value) (error "~A is immutable" v))))
`(let ,(mapcar 'list dvars vals) (declare (special ,@dvars)) ,@body)))
(defun get-lexical-cell (sym)
(or (get sym 'lexical-cell) (setf (get sym 'lexical-cell) (copy-symbol sym))))
(defun non-settable-value (s) (symbol-value s))
(defun (setf non-settable-value) (val var)
(declare (ignore val))
(error "~A is immutable" var))
(defmacro defc (var val &optional force-rebind)
"Immutably binds VAR to VAL. If FORCE-REBIND is T then VAR is forcibly rebound."
(let ((cell (get-lexical-cell var)))
`(progn
,(if force-rebind
`(setf (symbol-value ',cell) ,val)
`(unless (boundp ',cell) (setf (symbol-value ',cell) ,val)))
(define-symbol-macro ,var (non-settable-value ',cell)))))
(defmacro deflexical (var val)
"Defines VAR to be a global lexical variable"
(let ((cell (get-lexical-cell var)))
`(progn
(setf (symbol-value ',cell) ,val)
(define-symbol-macro ,var (symbol-value ',cell)))))
(defmacro lval (var)
"Unconditionally returns the global lexical binding of VAR"
`(symbol-value ',(get-lexical-cell var)))
The best way to show what this code does is with an example:
? (defc constant1 "Constant value")
CONSTANT1
? (setf constant1 "Can't change a constant")
> Error: CONSTANT1 is immutable
> While executing: (SETF NON-SETTABLE-VALUE), in process Listener(6).
> Type cmd-. to abort, cmd-\ for a list of available restarts.
> Type :? for other options.
1 >
? (defc constant1 "Can't change a constant value, take 2")
CONSTANT1
? constant1
"Constant value"
? (defc constant1 "Can rebind a constant by specifying FORCE-REBIND" t)
CONSTANT1
? constant1
"Can rebind a constant by specifying FORCE-REBIND"
? (defv v1 "Global dynamic variable")
V1
? (deflexical l1 "Global lexical variable")
L1
? (defun test1 () (list v1 l1))
TEST1
? (test1)
("Global dynamic variable" "Global lexical variable")
? (let ((v1 1) (l1 1)) (list v1 l1 (test1)))
(1 1 ("Global dynamic variable" "Global lexical variable"))
? (dlet ((v1 "Dynamic binding 1") (l1 "Dynamic binding 2")) (list v1 l1 (test1)))
("Dynamic binding 1" "Dynamic binding 2" ("Dynamic binding 1" "Global lexical variable"))
? (let ((v1 1)) (list v1 (dval v1)))
(1 "Global dynamic variable")
? (let ((l1 1)) (list l1 (lval l1)))
(1 "Global lexical variable")
; Watch this trick!
? (deflexical v1 "New global lexical binding for what was a dynamic variable")
V1
? (defun foo () v1)
FOO
? (let ((v1 1)) (list v1 (dval v1) (lval v1) (foo)))
(1 "Global dynamic variable" "New global lexical binding for what was a dynamic variable" "New global lexical binding for what was a dynamic variable")
? (dlet ((v1 1)) v1)
> Error: V1 is not a dynamic variable
Things to note:
1. The design is completely orthogonal. In fact, a single variable can have a local lexical binding, a global lexical binding, and a dynamic binding all at the same time, and all of which are accessible in a single scope. No more pervasive special declarations. (In fact, no more special declarations at all. They are replaced with the DLET macro.)
2. Constants are enforced to be immutable unless this is explicitly overridden by specifying FORCE-REBIND to be true.
3. Because the design is orthogonal, it is actually a design choice whether dynamically binding a global lexical should be an error. There is no reason why this couldn't be allowed to proceed, to create a dynamic binding that could then be accessed (only) via the DVAL macro. But I decided that although it's possible to have both global lexical and dynamic bindings for the same variable at the same time, it's probably not a good idea.
Thursday, August 20, 2009
AT&T Is A Big, Steaming Heap Of Failure
I'm stealing my headline from MG Seigler because I can't think of any better way to put it. I found out the hard way today that my iPhone voice mail has been down for several weeks, that AT&T has known about this, that they have not been able to fix it, and worst of all, that they didn't bother to let their customers know. This is a failure of staggering proportions. When I finally got caught up on all my voice mail messages it turned out that I had missed some really important ones, including a reminder from my mom to call my dad on his birthday (which I actually did forget to do -- sorry Dad!) God only knows what important messages other people having this problem may have missed.
Honestly, Apple and AT&T, it's not like this is some obscure feature that no one ever uses, this is absolutely central to the fundamental function of a phone nowadays. And how hard can it possibly be to fix?
Honestly, Apple and AT&T, it's not like this is some obscure feature that no one ever uses, this is absolutely central to the fundamental function of a phone nowadays. And how hard can it possibly be to fix?
Wednesday, August 19, 2009
The Quantum Mechanics Mystery Conspiracy
There is a long-standing problem in physics concerning the flow of time. All known physical laws -- except one: the second law of thermodynamics -- are "temporally symmetric" that is, they operate equally well whether time is flowing forwards or backwards. Take a movie of any physical phenomenon and run it backwards and everything you see will be consistent with physics. But the Second Law is not really a fundamental law, it is just the statement of the empirical observation that time seems to flow in one direction and not the other, so the deeper question of why this should be so has remained a mystery.
Actually, it's not mysterious at all once you get past the quantum-physics mystery conspiracy, which insists on presenting QM in false and misleading terms. In particular, the QMMC focuses on measurement and entanglement as if they were two distinct physical phenomena, one simple and familiar, the other alien and inscrutable. In fact, measurement and entanglement are one and the same physical process. Once you realize this, the answer to the arrow-of-time "dilemma" becomes obvious: time appears to flow in one direction because the perception of the flow of time relies on the formation of records of "past" events, which is to say, the formation of classical information, which requires "measurements", which requires particles to become entangled with each other. It is possible to reverse this process, but only by bringing all the particles in an entangled ensemble physically together, which is possible in principle but not in practice. (See section 5.4 in the link above for more details.)
This result has recently been (re)discovered by a card-carrying physicist.
It's really starting to annoy me how many physicists get press by making these kinds of "breakthroughs". All this stuff was figured out in the mid-90's. You'd think that now nearly fifteen years on the word would have gotten out, but it hasn't. It's really kind of weird. I seriously doubt that there's a conscious QM Mystery Conspiracy, and yet here we are. Why people should still be scratching their heads about the arrow of time and "spooky action at a distance" in 2009 is the biggest mystery of all.
Actually, it's not mysterious at all once you get past the quantum-physics mystery conspiracy, which insists on presenting QM in false and misleading terms. In particular, the QMMC focuses on measurement and entanglement as if they were two distinct physical phenomena, one simple and familiar, the other alien and inscrutable. In fact, measurement and entanglement are one and the same physical process. Once you realize this, the answer to the arrow-of-time "dilemma" becomes obvious: time appears to flow in one direction because the perception of the flow of time relies on the formation of records of "past" events, which is to say, the formation of classical information, which requires "measurements", which requires particles to become entangled with each other. It is possible to reverse this process, but only by bringing all the particles in an entangled ensemble physically together, which is possible in principle but not in practice. (See section 5.4 in the link above for more details.)
This result has recently been (re)discovered by a card-carrying physicist.
It's really starting to annoy me how many physicists get press by making these kinds of "breakthroughs". All this stuff was figured out in the mid-90's. You'd think that now nearly fifteen years on the word would have gotten out, but it hasn't. It's really kind of weird. I seriously doubt that there's a conscious QM Mystery Conspiracy, and yet here we are. Why people should still be scratching their heads about the arrow of time and "spooky action at a distance" in 2009 is the biggest mystery of all.
Friday, August 14, 2009
The New Atheists are a Disaster
So says Michael Ruse. I'm not sure I'd go quite so far as "disaster", but I certainly sympathize with the general sentiment.
Best health care system in the world, part II
I reported earlier about my recent adventures with America's "best health care system in the world." I can't imagine how all the right-wing fear-mongering about rationing and long waits can possibly be effective on anyone who has actually had to use our current health care system for any actual care, because I can tell you from first hand experience that unless you are rich (and sometimes even if you are rich) we already have rationing and long waits.
My PCP (primary care physician) read my blog and ran interference for me to get me in to see the dermatologist ahead of the queue. I was told that they didn't pull and strings, that there just happened to be a cancellation the next day, but I have no way of knowing if that was actually true. They may have just been telling me that because I specifically asked them not to pull strings. Either way, the fact that I got in early can't be counted as a victory for the system. At best, I got lucky. At worst, I got bumped to the head of the queue because I can afford to pay extra for access to a PCP who has enough free time to do things like read his patients' blogs.
At the dermatologist, I learned the following:
1. I almost certainly don't have cancer, but it's not a total slam-dunk. They told me to come back in three months for a followup just to be sure.
2. I was not waiting in line behind possible melanoma cases. I was waiting in line behind dermabrasions, botox, and facial hair removal.
So I believe it's fair for me to chalk up my experience as support for those who say that the present system is at least partially broken.
IMHO, the fundamental problem is that health care is (or at least ought to be considered) infrastructure, and free markets don't do a good job at providing infrastructure. I am a born-again capitalist. I believe in free markets, not for ideological reasons, but because empirically they tend to produce a net benefit for the well-being of mankind more effectively than any other system than has yet been invented. But free markets are not without their problems, and so various degrees of government regulation are needed to keep them performing their function even under the best of circumstances. If nothing else, government is needed to enforce contracts and discourage fraud. But even then, free markets work better for some goods than for others. They are really good at producing technology, commodities, and luxury goods. They are not so good at providing infrastructure. The U.S. is currently conducting an experiment at using free markets to provide wireless communications infrastructure, and the result is cell phone service that is not only universally crappy, but five times more expensive than anywhere else in the world. By way of contrast, the Internet, interstate highways, and the (wired) phone system are all cheap and reliable, and all are the result of government intervention of one sort or another.
I think health care ought to be treated as infrastructure. It's something everyone needs sooner or later, and it has a very long lead time to produce. Our current government-run health care plans, medicare and medicaid, work well enough to make them sufficiently popular that no politician dares to even suggest eliminating them. There are certainly ways in which government interference can go too far. Mandating centralized electronic record-keeping, for example, is an absolutely terrible idea. But opposing *any* government interference in health care because of possible abuses and inefficiencies is IMO throwing the baby out with the bathwater. The debate we ought to be having is not *whether* but *how* government should be participating in our health care system, because the system we have now is b0rken.
My PCP (primary care physician) read my blog and ran interference for me to get me in to see the dermatologist ahead of the queue. I was told that they didn't pull and strings, that there just happened to be a cancellation the next day, but I have no way of knowing if that was actually true. They may have just been telling me that because I specifically asked them not to pull strings. Either way, the fact that I got in early can't be counted as a victory for the system. At best, I got lucky. At worst, I got bumped to the head of the queue because I can afford to pay extra for access to a PCP who has enough free time to do things like read his patients' blogs.
At the dermatologist, I learned the following:
1. I almost certainly don't have cancer, but it's not a total slam-dunk. They told me to come back in three months for a followup just to be sure.
2. I was not waiting in line behind possible melanoma cases. I was waiting in line behind dermabrasions, botox, and facial hair removal.
So I believe it's fair for me to chalk up my experience as support for those who say that the present system is at least partially broken.
IMHO, the fundamental problem is that health care is (or at least ought to be considered) infrastructure, and free markets don't do a good job at providing infrastructure. I am a born-again capitalist. I believe in free markets, not for ideological reasons, but because empirically they tend to produce a net benefit for the well-being of mankind more effectively than any other system than has yet been invented. But free markets are not without their problems, and so various degrees of government regulation are needed to keep them performing their function even under the best of circumstances. If nothing else, government is needed to enforce contracts and discourage fraud. But even then, free markets work better for some goods than for others. They are really good at producing technology, commodities, and luxury goods. They are not so good at providing infrastructure. The U.S. is currently conducting an experiment at using free markets to provide wireless communications infrastructure, and the result is cell phone service that is not only universally crappy, but five times more expensive than anywhere else in the world. By way of contrast, the Internet, interstate highways, and the (wired) phone system are all cheap and reliable, and all are the result of government intervention of one sort or another.
I think health care ought to be treated as infrastructure. It's something everyone needs sooner or later, and it has a very long lead time to produce. Our current government-run health care plans, medicare and medicaid, work well enough to make them sufficiently popular that no politician dares to even suggest eliminating them. There are certainly ways in which government interference can go too far. Mandating centralized electronic record-keeping, for example, is an absolutely terrible idea. But opposing *any* government interference in health care because of possible abuses and inefficiencies is IMO throwing the baby out with the bathwater. The debate we ought to be having is not *whether* but *how* government should be participating in our health care system, because the system we have now is b0rken.
Tuesday, August 04, 2009
Best health care system in the world (as long as you're healthy)
It dawned on me today that the reason so many people support the current health care system in the U.S. is that it actually works pretty well as long as you don't actually need any care , which is true for most of the people most of the time.
I've actually had a personal experience with our wonderful health care system recently: I had a small skin lesion that wasn't healing up, so I thought it might be a basal cell carcinoma. My primary care physician referred me to a dermatologist, but the earliest appointment I could get was over a month away.
The fundamental problem with our current system is that it produces a perverse incentive to deny care. For an insurance company, all else being equal, the less care you provide the more money you make. So the insurance companies are strongly incentivized to provide as little care as possible without actually pushing people so far over the edge that they get motivated to change the system (and you can't get much more unmotivated then being dead). Hence the endless repetition of the "best health care system in the world" mantra: if you can convince people that this is true, then agitating for change becomes downright unpatriotic.
It is also ironic that it is exactly the same flawed logic that makes people fall for this con that makes them need insurance to being with: no one thinks they're going to get sick until they actually do. By the time they get into a situation where they really need medical attention and discover firsthand how b0rken the system actually is, it's usually too late for them to do anything about it. Which is, of course, exactly how the insurance companies like it.
In late April, Shelly Andrews-Buta was scheduled to undergo treatment for breast cancer that had spread to her brain, threatening her life.
...
But instead of having doctors working to remove her brain tumors on the day the surgery was scheduled, she sat in a San Francisco hotel room. Why? Because at the last minute, her insurance company, Blue Shield, decided it wasn't going to pay for the treatment her doctors at UCSF Medical Center had recommended.
I've actually had a personal experience with our wonderful health care system recently: I had a small skin lesion that wasn't healing up, so I thought it might be a basal cell carcinoma. My primary care physician referred me to a dermatologist, but the earliest appointment I could get was over a month away.
The fundamental problem with our current system is that it produces a perverse incentive to deny care. For an insurance company, all else being equal, the less care you provide the more money you make. So the insurance companies are strongly incentivized to provide as little care as possible without actually pushing people so far over the edge that they get motivated to change the system (and you can't get much more unmotivated then being dead). Hence the endless repetition of the "best health care system in the world" mantra: if you can convince people that this is true, then agitating for change becomes downright unpatriotic.
It is also ironic that it is exactly the same flawed logic that makes people fall for this con that makes them need insurance to being with: no one thinks they're going to get sick until they actually do. By the time they get into a situation where they really need medical attention and discover firsthand how b0rken the system actually is, it's usually too late for them to do anything about it. Which is, of course, exactly how the insurance companies like it.
Saturday, August 01, 2009
HTML is object code
Fate seems to be sending me a pretty clear message that my life's destiny lies in moderating discussions on the merits of CSS (240 comments and counting). Despite the fact that the argument seems to be going around in never-ending circles, and I've made several attempts to shut the discussion down, it just doesn't seem to want to die. When the market sends such clear signals, the thing to do is to ramp up production to meet demand. Hence, another essay on Tables vs. CSS. Pardon me a moment whilst I don my asbestos suit.
Whenever an argument among otherwise reasonable people turns intractable it is usually because both sides have overlooked something really fundamental, and I think this is the case here. The fundamental thing that both sides have overlooked in this case is that HTML is (or at least should be considered) object code. Let me explain what I mean by that.
Consider a hello-world program written in C:
Of course, this is not really a hello-world program. To get the "real" program you have to compile the above "source" code into "object" code, which looks more like this:
But now consider this:
Is that source code or object code? (Before you go on, take a moment to think seriously about what you think the answer is and, more importantly, why you think that's the answer.)
Here's a clue. Try this:
So if you said, "It's object code, because it looks like object code" you are wrong. But if you said "It's source code because it's just the hexadecimal representation of a C program" you are also wrong. The right answer is it's both. Yes, it's the hexadecimal representation of a C program. But just because it's C code doesn't necessarily mean it's source code. C is often used as an intermediate target language for compilers of other languages like Scheme. And Scheme can be used as an intermediate representation for other languages, like Qi. (Qi actually compiles to Common Lisp, but it's the same idea.)
Now consider this:
Is that source code or object code? In other words, is that code that a coder writes, or code that a compiler emits? Hopefully by now you realize that the answer is: it can be both.
I think a lot of the arguments against using tables for layout rely on the tacit assumption that HTML is source code. For example, one of the arguments against tables is that they fail to separate layout information from content. But this assumes that HTML is source code, and that the combination of content and layout information must be done in the browser. Neither of these assumptions is correct. I can create a layout as an html template:
and combine this with separate content information on the server. Now my layout and content are completely separate, and yet I'm still using tables, and so I get the advantages of the simplicity and uniformity of cross-browser table rendering. Plus, my layout is only five lines of code. And it doesn't need Javascript. And it's going to look reasonable no matter what my content turns out to be.
IMHO, no one should ever write any HTML by hand. HTML should be considered exclusively as object code, except for the most simple of quick-and-dirty hacks. The idea that HTML can (or even should) be considered source code is the root of many evils on the Web. The right way to create web pages is by building higher-order abstractions in a programming language (preferably functional ones, but I'm not dogmatic about that).
Nowhere is this clearer than when it comes to forms. Even CSS advocates concede that it's OK to put form elements in tables. They say it's because "forms are a kind of tabular data, and that's what tables are for", but this just begs the question of how one can tell if a particular set of data is tabular or not. (Apparently, the criterion is: it's tabular data if it's completely hopeless to make it not look like crap when layed out with CSS.) But the trouble with forms goes far beyond layout. Consider the following:
Simplistic to be sure, but nothing offensive to the W3C standards. Now imagine a site that has this form and others like it throughout, and we want to augment our date input fields with a little javascript calendar widget. According to the philosophy of CSS we should be able to write:
but of course we can't, because the semantics of CSS are so hopelessly impoverished that the mere suggestion of doing something like this is probably enough to send CSS advocates into conniptions. (Any minute now, ChristianZ and Pherdnut will start to rant about how I Just Don't Get It (tm), and I need to study harder.)
But if we combine content and layout (and even style I might add) on the server, we can write:
or something like that. Then we write a program that "compiles" this little private HTML-ish web page description language down to actual HTML for delivery to the client. Now changing all the date inputs to use a javascript widget is trivial, because we really have separated style from content, and we have done it in a way that is vastly more expressive and powerful than CSS.
There is only one argument for using CSS for layout that this approach does not completely demolish, and that is accessibility. CSS advocates argue that tables impede the rendering of web content for non-visual media. I think that's debatable, but even if it's true, it's irrelevant because there is no reason why the same content has to be rendered the same way on the server for all clients! This again assumes that HTML is source code, and you so you don't want to have different HTML for different clients because that would make extra work and violate the DRY (don't-repeat-yourself) principle. But HTML need not be source code. The source code can be a higher-level representation, and that higher-level representation can be rendered in different ways for different clients. For example, imagine a world where the client said to the server, "Give me web page FOO, and oh by the way, my user is blind" and what came back from the server was not HTML at all but an audio file. Now blind users wouldn't even need a special client! All they would have to do is configure a standard browser with a custom header to indicate blindness, and they're off to the races.
Separating styling and layout information from content is a great idea. But requiring that the rendering of those separate pieces be done on the client exclusively is overly restrictive because it requires that the kinds of combinations that can be done be standardized. It is that assumption that leads to the religious wars over CSS, not the merits or drawbacks of CSS per se. Whatever the standard is, it's either Turing-complete or it's not. If it's Turing-complete, you might as well just use Javascript (with all of its attendant problems) and if it's not, there will always be something that someone will want to do that's not possible. The answer is to cut the Gordian knot, treat HTML as object code, and do (at least part of) your rendering on the server. That way no one has to argue about anything. (Not that I expect that to stop anyone.)
Whenever an argument among otherwise reasonable people turns intractable it is usually because both sides have overlooked something really fundamental, and I think this is the case here. The fundamental thing that both sides have overlooked in this case is that HTML is (or at least should be considered) object code. Let me explain what I mean by that.
Consider a hello-world program written in C:
main() { printf("Hello world"); }
Of course, this is not really a hello-world program. To get the "real" program you have to compile the above "source" code into "object" code, which looks more like this:
0000000 ce fa ed fe 07 00 00 00 03 00 00 00 02 00 00 00
0000010 0c 00 00 00 c0 03 00 00 85 00 00 00 01 00 00 00
0000020 38 00 00 00 5f 5f 50 41 47 45 5a 45 52 4f 00 00
[and so on for 12,588 bytes]
But now consider this:
0000000 6d 61 69 6e 28 29 20 7b 20 70 72 69 6e 74 66 28
0000010 22 48 65 6c 6c 6f 20 77 6f 72 6c 64 22 29 3b 20
0000020 7d 0a
Is that source code or object code? (Before you go on, take a moment to think seriously about what you think the answer is and, more importantly, why you think that's the answer.)
Here's a clue. Try this:
echo 'main() { printf("Hello world"); }' | hexdump
So if you said, "It's object code, because it looks like object code" you are wrong. But if you said "It's source code because it's just the hexadecimal representation of a C program" you are also wrong. The right answer is it's both. Yes, it's the hexadecimal representation of a C program. But just because it's C code doesn't necessarily mean it's source code. C is often used as an intermediate target language for compilers of other languages like Scheme. And Scheme can be used as an intermediate representation for other languages, like Qi. (Qi actually compiles to Common Lisp, but it's the same idea.)
Now consider this:
<html><div id="top">Hello world</div></html>
Is that source code or object code? In other words, is that code that a coder writes, or code that a compiler emits? Hopefully by now you realize that the answer is: it can be both.
I think a lot of the arguments against using tables for layout rely on the tacit assumption that HTML is source code. For example, one of the arguments against tables is that they fail to separate layout information from content. But this assumes that HTML is source code, and that the combination of content and layout information must be done in the browser. Neither of these assumptions is correct. I can create a layout as an html template:
<table>
<tr><td colspan=3> %header
<tr><td> %leftnav <td> %center <td> %rightnav
<tr> <td colspan=3> %footer
</table>
and combine this with separate content information on the server. Now my layout and content are completely separate, and yet I'm still using tables, and so I get the advantages of the simplicity and uniformity of cross-browser table rendering. Plus, my layout is only five lines of code. And it doesn't need Javascript. And it's going to look reasonable no matter what my content turns out to be.
IMHO, no one should ever write any HTML by hand. HTML should be considered exclusively as object code, except for the most simple of quick-and-dirty hacks. The idea that HTML can (or even should) be considered source code is the root of many evils on the Web. The right way to create web pages is by building higher-order abstractions in a programming language (preferably functional ones, but I'm not dogmatic about that).
Nowhere is this clearer than when it comes to forms. Even CSS advocates concede that it's OK to put form elements in tables. They say it's because "forms are a kind of tabular data, and that's what tables are for", but this just begs the question of how one can tell if a particular set of data is tabular or not. (Apparently, the criterion is: it's tabular data if it's completely hopeless to make it not look like crap when layed out with CSS.) But the trouble with forms goes far beyond layout. Consider the following:
<form method="GET" action="date-foo">
Enter the date:
<input type="text" class="dateinput" name="date">
<input type=submit>
</form>
Simplistic to be sure, but nothing offensive to the W3C standards. Now imagine a site that has this form and others like it throughout, and we want to augment our date input fields with a little javascript calendar widget. According to the philosophy of CSS we should be able to write:
.dateinput { ... }
but of course we can't, because the semantics of CSS are so hopelessly impoverished that the mere suggestion of doing something like this is probably enough to send CSS advocates into conniptions. (Any minute now, ChristianZ and Pherdnut will start to rant about how I Just Don't Get It (tm), and I need to study harder.)
But if we combine content and layout (and even style I might add) on the server, we can write:
<standard-form>
<date-input label="Enter the date">
</standard-form>
or something like that. Then we write a program that "compiles" this little private HTML-ish web page description language down to actual HTML for delivery to the client. Now changing all the date inputs to use a javascript widget is trivial, because we really have separated style from content, and we have done it in a way that is vastly more expressive and powerful than CSS.
There is only one argument for using CSS for layout that this approach does not completely demolish, and that is accessibility. CSS advocates argue that tables impede the rendering of web content for non-visual media. I think that's debatable, but even if it's true, it's irrelevant because there is no reason why the same content has to be rendered the same way on the server for all clients! This again assumes that HTML is source code, and you so you don't want to have different HTML for different clients because that would make extra work and violate the DRY (don't-repeat-yourself) principle. But HTML need not be source code. The source code can be a higher-level representation, and that higher-level representation can be rendered in different ways for different clients. For example, imagine a world where the client said to the server, "Give me web page FOO, and oh by the way, my user is blind" and what came back from the server was not HTML at all but an audio file. Now blind users wouldn't even need a special client! All they would have to do is configure a standard browser with a custom header to indicate blindness, and they're off to the races.
Separating styling and layout information from content is a great idea. But requiring that the rendering of those separate pieces be done on the client exclusively is overly restrictive because it requires that the kinds of combinations that can be done be standardized. It is that assumption that leads to the religious wars over CSS, not the merits or drawbacks of CSS per se. Whatever the standard is, it's either Turing-complete or it's not. If it's Turing-complete, you might as well just use Javascript (with all of its attendant problems) and if it's not, there will always be something that someone will want to do that's not possible. The answer is to cut the Gordian knot, treat HTML as object code, and do (at least part of) your rendering on the server. That way no one has to argue about anything. (Not that I expect that to stop anyone.)
Subscribe to:
Posts (Atom)