Archive for January, 2008


January 26, 2008

[or, There Will Be Blood]

I had a gum graft the other day–the first of several I’ll need. Fun!  I was apparently a real bleeder, which I’m told made it difficult for the periodontist to see what he was doing.  Not really what you want to hear from someone who’s cutting away skin inside your mouth.

The aftermath isn’t what I’d expected.  I had planned to be whimpering from the acute pain in my mouth, but there isn’t really any acute pain at all, just a dull ache and an intermittent nasty headache.  Both of which might be correlated with the massive swelling and the impressive shiner I have–I look like I’ve been in a bar fight, and people keep asking witty questions along the lines of “trouble at home?”  Besides the swelling the really annoying part is the dressings over the “donor area” and the gum itself, which feel like big lumps of silly putty and taste like especially gross old chewing gum.

The aches are enough to warrant a fair bit of ibuprofen, and I’ve also had a little of the vicodin they prescribed.  The warn you that it knocks you right out, but it perks me right up.  Whee!


Northanger Abbey

January 23, 2008

Last night we watched the new Northanger Abbey on The Show Formerly Known as Masterpiece Theatre. Very cute; certainly much better than the dreadful Persuasion last week (the scriptwriters didn’t seem to realize that Jane Austen had a sense of humor; how is that even possible?). It’s been a while since I read the book–that must have been in the Great Austen Boom of ’95–so I have no idea how faithful the adaptation was, but I don’t really care (especially as NA was by far Jane’s weakest book).

Music notes that no one but me will care about: the soundtrack was certainly not period music, but it was nonetheless nice; again certainly better than the abysmal Persuasion‘s soundtrack. On the other hand the music in the show, in the dance and concert scenes and whatnot, was (I’m pretty sure) played on modern instruments, again unlike Persuasion, where the crappy fortepiano was one of the few things I actually liked. But I’m funny that way.

Another note: Gillian Anderson is no Alistair Cooke, or even Russell Baker. Coudn’t they have found someone more lifelike?

The Thirteenth Daimon

January 20, 2008

After complaining about the lack of real responses to April DeConick’s The Thirteenth Apostle, I’m very pleased to see that Marvin Meyer has at last written one, to which Professor DeConick responds in turn at her blog. Quick summary: he has a new and interesting argument or two, but I’m still with ADC.

Issue number one (after the first paragraph, in which he makes clear his annoyance at his “colleague and friend”) is the issue of whether it makes sense to consider the Gospel of Judas a “parody.” His claim is that there are no other examples of “parody” in other Gnostic literature; DeConick’s response is essentially “are too.” I myself have no idea; but I do get a strong sense that the issue is confused by the choice of the word “parody.” I’m pretty sure that Professor DeConick didn’t mean it in quite the sense that, say, Young Frankenstein or Cold Comfort Farm are parodies (one reason I’m pretty sure is that she says so); would “satire” would have been a better word? But even if there are no exact parallels, that’s not a conclusive argument. After all, if Meyer is correct, then the GoJ is unique in its treatment of Judas; is that any easier to believe than its being unique in its use of parody?

Meyer argues some of DeConick’s grammatical points; “separated from” versus “separated for” in particular. Not knowing Coptic I certainly can’t evaluated that argument on the merits; it sort of boils down to he-said/she-said (literally, come to think of it). Meyer does write as if he knows he’s fighting a losing battle on that one, though; he now admits that either translation is a possibility.

A big point through is the meaning of the term daimon; Meyer and the NG team, along with Karen King and Elaine Pagels, translate it positively as “spirit” or even “God,” on the basis of its meaning in Greek philosophical texts and in hermetic literature. DeConick et al. say that in Christian texts of the 2nd century it always means “demon.” Here again the like of me really can’t judge based on real evidence. But DeConick’s argument certainly seems reasonable–I would certainly not assume that Plato’s usage of the term has anything to do with the Sethians’. The relevant comparables would be other early Christian writings (“heretical” or not).

The one example Meyer does cite does not make a particularly strong case for his translation. It’s from the Pistis Sophia, in which Sophia repents her sin and laments her exile from the Pleroma (quoted from here, Book 1, chapter 39:

3. For my time has vanished like a breath, and I have become matter.

4. My light has been taken from me, and my power has dried up. I have forgotten my mystery which I performed at first.

5. Through the voice of fear and the power of the Authades, my power has diminished within me.

6. I have become like a peculiar demon, which dwells in matter, in whom is no light. And I have become like a spirit counterpart which is in a material body, in which there is no light-power.

7. And I have become like a decan, which is upon the air alone.

If I understand this correctly–and I may not–Sophia compares herself to a demon (and the related “decan”) to show just how low she has fallen. And clearly she’s not saying she is a demon; it’s just a simile, a particularly stark one. “Demons” aren’t good things in the Pistis Sophia.

But really Meyer’s point in quoting the Pistis Sophia is to make a more interesting argument: that Judas in the GoJ is in fact the type of Sophia and of the Gnostic, trapped in the world of matter. In this he echoes Iranaeus–not the most trustworthy of sources for Gnostic beliefs, but certainly an interesting one. That’s a thesis that needs more development, which I’d like to see. It’s not something that I remember being discussed at all in the original NG presentation.

I note Professor DeConick says that the mythology of the Pistis Sophia differs from that of the GoJ, as does whatever Iranaeus was attacking. Again, something I’m not capable of judging.

In general I’m thoroughly unswayed (albeit interested) in Meyer’s response. The “bad-Judas” interpretation, as presented in The Thirteenth Apostle, has a nice internal consistency. I can read it and it all makes sense to me (at least insofar as any of these things do). If I try to read it sticking to the NG “good-Judas” interpretation, it’s pretty much unintelligible. But I could certainly be convinced to change my mind! I look forward to more of the debate.

Linguists on the Second Amendment

January 17, 2008

Here‘s an amicus brief in DC v Heller from a few linguists (via Language Log). An few excepts:

…On its face, the language of the Amendment tells us that the reason why the right of the people to keep and bear arms shall not be infringed is because a well regulated militia is necessary to the security of a free State. The purpose of the Second Amendment, therefore, is to perpetuate “a well regulated Militia.”

…In the case of the Second Amendment, we have shown that the absolute clause affirmatively states the cause or reason for the Second Amendment’s existence. That significantly affects the meaning of the main clause, for it gives us every reason to think that this Amendment never would have been adopted but for the fact that the Framers believed the absolute clause’s statement that a well regulated militia is necessary to the security of a free state. And if we know why a provision is adopted, we surely know something about the intended scope of that provision. The Second Amendment’s absolute construction was adopted as an integral part of the Amendment, and it cannot be “omitted” or wished away by trying to show that it no longer is true.

…The term “bear arms” is an idiom that means to serve as a soldier, do military service, fight. To “bear arms against” means “to be engaged in hostilities with.” The word “arms” itself has an overwhelmingly military meaning, referring to weapons of offense or armor of defense. In every instance we have found where the term “bear arms” (or “bearing arms” or “bear arms against”) is employed, without any additional modifying language attached, the term unquestionably is used in its idiomatic military sense.

Now I really can’t evaluate this; I’ve seen the exact opposite arguments made, both about the import of the first clause and about the meaning of the idiom “keep and bear arms.” I do tend to think that a 39-page paper on a single sentence is at least a potential sign of over-analysis (and of course this is far from the only, or the longest, such.)

But certainly that first clause is there for a reason; it’s a statement about an important assumption the framers made. The framers did not trust standing armies, and specifically tried to make it a little difficult for the young United States to have one (see the army clause in article I, section 8 of the Constitution: army appropriations can be for no longer than two years. There is no such restriction on the navy). Without a standing army, a well-regulated militia was very much necessary for the security of the new free state.

We no longer think this. We’ve had a large standing army since the Civil War. We no longer need to keep guns over our hearths to rise in defense of our beloved homeland. Much as we all enjoyed Red Dawn, that’s just not going to happen.

So what does that mean for The Second Amendment Today? How do you interpret something whose explicitly stated purpose is no longer meaningful? I’ve no idea. I suppose it depends on theories of legal interpretation, a subject that makes me queasy(*). I think either side can be argued equally reasonably. Or unreasonably.

In practice, of course, the interpretative debate boils down to endless political maneuvering and litigation. All these linguistic and historical analyses, fascinating and perceptive though they may be, are virtually irrelevant in themselves; they’re just so much grist for the political and legal mills. Debates like this are won, insofar as they are ever resolved at all, not by academic argument but by winning elections and appointing sympathetic judges.

Oh well, at least it’s entertaining.

(*) I’m pretty cynical about anything that depends on a particular interpretive theory. It’s too easy to choose a theory, or bend an existing theory, to get whatever result you want. No slight on our nation’s Judges/Justices and politicians and whatnot, it’s just human nature.

Huckabee the Bible Expert

January 17, 2008

Via Eugene Volokh, here’s Mike Huckabee in Beliefnet on the history of marriage:

And the same thing would be true of marriage. Marriage has historically, as long as there’s been human history, meant a man and a woman in a relationship for life.


The Bible, however, was not created to be amended and altered with each passing culture.

Wow, has he not actually read that un-amendable Bible??  If pressed, he would doubtless say, oops, sorry, misspoke, it’s been amended exactly once, but that’s it.  (That’s way wrong, but it’s what he’d say.)  But the polygamy thing is going to be harder to explain away.

This sort of willful ignorance of one’s holy book isn’t unique to Huckabee or to marriage, of course.  How many Christian conservatives actually pay attention to what George Bush’s favorite political philosopher said about taxes?

DOJ annoys EVERYONE in gun control case

January 14, 2008

The Department of Justice’s amicus brief in DC v. Heller, as I understand it (and IANAL), maintains that the Second Amendment secures an individual right, while also maintaining that said right is not absolute; and recommends the case be remanded to the lower court.  That is, the DOJ likes the “conservative” individual-rights interpretation of the second amendment, but doesn’t like absolute limits on the government’s authority.  I think that the DOJ, or at least Paul Clement, objects not to the result (overturning DC’s gun ban) but to the reasoning, and thinks the gun ban would fail under the lower level of scrutiny they recommend (see here). But I really don’t know, and that is not the point of the brief, which as I read it is more concerned with what precedents the case will set.

It pleases me that this rather reasonable position (I’m not saying whether I agree with it, just that it’s reasonable, much as it surprises me to say that any part of the current administration can be reasonable) has so angered the pro-gun people. (But note the NRA’s response is more measured.)

I’m now curious about i) what the liberals will say (if anything; this may be too moderate to inspire any entertaining liberal outrage), and ii) what effect this will have on Republican presidential politics.  Will all the candidates have to condemn this brief, with their fingers crossed behind their backs?

Authentication and Browser Caching in Django, part II

January 12, 2008

The other day I wrote about turning off browser caching when a user is logged in. Since I’m apparently a clueless n00b, it only occurred to me later that this is the sort of thing belongs in middleware. That way you don’t have to modify individual views, and it works for flatpages as well. Here’s the middleware; it should go in MIDDLEWARE_CLASSES before sessions and flatpages:

import re

def _add_to_header(response, key, value):
    if response.has_header(key):
        values = re.split(r'\s*,\s*', response[key])
        if not value in values:
            response[key] = ', '.join(values + [value])
        response[key] = value

def _nocache_if_auth(request, response):
    if request.user.is_authenticated():
        _add_to_header(response, 'Cache-Control', 'no-store')
        _add_to_header(response, 'Cache-Control', 'no-cache')
        _add_to_header(response, 'Pragma', 'no-cache')
    return response

class NoCacheIfAuthenticatedMiddleware(object):
    def process_response(self, request, response):
            return _nocache_if_auth(request, response)
            return response

Oh, and an annoying note: it’s still possible for firefox to keep an authenticated page cached, I can get that to happen with a sequence of Back and Reloads. Maybe that’s because the Back button is trying to respect history rather than the cache? Oh well, I told you not to mistake this for a security fix.

More on Landsburg and the FairTax

January 12, 2008

It occurs to me that the unlimited IRAs Steve Landsburg advocates are really equivalent to keeping the income tax and eliminating the capital gains tax, albeit with a little more work for the taxpayer, and ignoring timing issues.  So why not advocate that?  Have I missed something?

Landsburg on the FairTax

January 11, 2008

In Slate, Steve Landsburg praises “Huckabee’s Innovative Tax Plan,” aka the FairTax (neither mentioned by name nor linked, and of course not Huckabee’s own brainchild at all). Landsburg’s specialty is coming to outrageous conclusions–things you know in your heart can’t be true–based on irrefutable economic logic. The fun part of reading his columns is trying to find where the problems are (kind of like a compass-and-straightedge construction “proof” I remember from the Journal of Irreproducible Results that all angles are equal to a right angle). And who knows, maybe he’ll turn out to be right! Not this time, though.

Landsburg writes:

In the long run, most people, or at least most families, do spend what they earn. (Why earn it if you’re not going to spend it?) True, some of us die with money in the bank, but usually our children or grandchildren step in to spend the remainder for us. So, as far as your dynasty is concerned, a 20 percent income tax and a 20 percent sales tax are equally painful.

Well, first of all, the richer you are the less likely you are to spend everything you earn, especially if you don’t factor in your descendants squandering your estate. A major problem with the FairTax is that it’s even more regressive than its flat rate makes it seem, for just this reason. And balancing present versus future values is, at least, tricky (I’ll mention one major problem below).

Landsburg then compares sales taxes to unlimited IRAs, and cites research to show that unlimited IRAs (with no withdrawal penalties) are Good.

Bottom line: Unlimited IRAs, coupled with somewhat higher tax rates, have advantages and disadvantages, but the advantages are bigger. And whatever can be said about unlimited IRAs coupled with somewhat higher tax rates can equally be said of a national sales tax.

Well, maybe, sorta, to first order. The popular exposition he cites, however, mentions a critical detail Landsburg omits:

First, even though the higher savings rate may boost the economy, so that in the long run other tax revenues would increase, in the short run there would be an unambiguous tax-revenue shortfall. Second, complete tax exemption of IRAs raises political-fairness issues, because some incomes would no longer be subject to taxes.

Taxing IRA money when it is withdrawn, as is done under current law (back-loaded IRAs), addresses the fairness issue. We could solve the revenue timing problem by taxing the money before it is invested rather than upon withdrawal (front-loaded IRAs). Though it may seem counter-intuitive, front-loaded and back-loaded IRAs are equivalent on a net present-value basis.

That is, waiting to tax your money until your grandchildren spend it is going to be a problem for the government’s revenue. The front-loaded IRAs that can address the problem are not equivalent to sales taxes.

Back to Landsburg:

Another alleged difference between sales and income taxes is that income taxes can be graduated, while sales taxes can’t. Maybe, maybe not. There might be a way to design a graduated sales tax. Your credit-card providers have a pretty good idea how much you spend each year, and the government could in principle use that information to set your tax rate. Yes, there are a lot of details to be worked out, and yes, it’s highly intrusive—but I’m not convinced it’s any more intrusive than what we’ve got now.

Is Landsburg really suggesting that the government enter into some unholy alliance with credit card companies? Maybe not, but for now I’m pretty skeptical that a graduated sales tax can be made to work. And it’s emphatically not what Huckabee and the FairTax folks have in mind.

But the good news is that the details don’t matter, because there’s an easier way to design a graduated sales tax. Namely, keep the graduated income tax and add a provision for unlimited IRAs. Presto, you’ve got the equivalent of a graduated sales tax.

That’s not necessarily desirable. You could well argue that a flat tax rate is a feature, not a bug. But that’s a topic for a different column. The point of this column is that the whole flat-versus-graduated issue is quite tangential to the sales-versus-income-tax issue. And the underlying issue becomes a lot clearer once you realize that a sales tax is a modified income tax.

And here we have the real problem with Landsburg’s column. He is not talking about the FairTax at all, or about anything that (as far as I know) any prominent political figure has proposed. The FairTax backers most assuredly do not see the flat-versus-graduated issue as tangential to the sales-versus-income-tax issue. And rightly so, I think; one of the few virtues of the FairTax is its simplicity. Landsburg’s unlimited IRAs might or might not be a great idea, but they have less to do with this year’s presidential politics than he says.

BTW: I can’t read Landsburg’s columns without thinking of Steve Landesberg, who played Dietrich on Barney Miller, beloved sitcom of my youth. Conflating the two kinda works for me.

Authentication and browser caching in Django

January 10, 2008

While adding bits of authentication niceness to my website, I noticed a bit of ugliness. If I logged in, looked at a page that took account of the login, logged out, and hit Back in the browser, I still saw the logged-in page. That’s because the browser cached it, and just redisplayed on Back. I don’t care so much about caching non-authenticated views, but it just seems wrong to cache authenticated ones, so I have (I hope!) disabled it.

What disabling caching requires (here‘s a tutorial) is adding the directives Cache-Control:no-cache and Pragma:no-cache (different browsers may pay attention to one or the other!) to the html header, which is easily done. I have two methods for this; one is a replacement for render_to_response (which I was already using, to simplify using RequestContext), and the other is a wrapper for existing view functions, which can be used as a decorator. Code below.

Two important notes:

  • This should not be considered any sort of security fix.
  • I am not using the cache middleware; my site is way too small to need it. As far as I can tell this shouldn’t interact badly with the cache middleware, but sure don’t promise that.

Here’s the code:

def _add_to_header(response, key, value):
    if response.has_header(key):
        values = re.split(r'\s*,\s*', response[key])
        if not value in values:
            response[key] = ', '.join(values + [value])
        response[key] = value

def _nocache_if_auth(request, response):
    if request.user.is_authenticated():
        _add_to_header(response, 'Cache-Control', 'no-store')
        _add_to_header(response, 'Cache-Control', 'no-cache')
        _add_to_header(response, 'Pragma', 'no-store')
    return response

def rtr(request, *args, **kwargs):
    If the request includes an authenticated user, disable browser caching.
    response = render_to_response(
            *args, **kwargs)
    return _nocache_if_auth(request, response)

def nocache_if_authenticated(fn):
    Wrap the given view function so that browser caching is disabled
    with authenticated users.
    def wrapped(request, *args, **kwargs):
        response = fn(request, *args, **kwargs)
        return _nocache_if_auth(request, response)
    return wrapped

UPDATE: D’oh! This should be middleware. I’ll implement that this weekend.