Tuesday, September 25, 2012

Nashville's vote is apparently false, or at least off-kilter

Via Rachel Maddow, it seems that someone in the Davidson County Election Commission has decided that Nashville is insufficiently Republican:
A leader of Tennessee True the Vote attended poll official training with the Davidson County Election Commission by invitation of the Republican administrator of elections. Along with fielding 1 million poll watchers, this group is clearly laying the groundwork to field poll officials. When you go vote in November, the person checking your ID and looking you up in a poll book or instructing you on the use of the voting machines may be affiliated with voter suppression.
Just a reminder, everyone: True The Vote is a "nonpartisan" outfit which oh-so-coincidentally wants to challenge the right to vote of lots of people, all of whom coincidentally come from demographics which lean Democrat.

Sunday, September 23, 2012

Catching labels with vinegar. Haven't tried honey.

One of the annoying facets of homebrewing has been securing adequate bottling supplies. I've got a small stable of Grolsch-style swing top (EZ-cap) bottles, which are my favorites, but not enough for all the beer I expect I'll soon have ready. Hence, I've taken to collecting reusable (i.e. non screw-top) beer bottles and have invested in a capper.[1]

Now, I probably could just throw the beer into bottles that still say "New Belgium Trippel" or "Singletrack Copper Ale" (which we definitely didn't kill a whole sixer of last night. No sir). But being the anal-retentive type that I am, I'd rather not mislead myself and/or my drinking buddies that way, so I needed a way to remove the commercial labels. (I also need a way to make my own labels, and possibly a design team to help out, but that's a problem for another day.) One approach that was suggested was to heat the bottles in the oven to 400°F-450°F to melt the glue; then peel off the label whole. This worked for Sam Adams bottles, but not for others.

That method was chiefly favored for those collecting beer (and wine etc.) labels. If it had worked, I'd have not cared whether the label came off in one piece or many, but since it didn't (some of the glues just absolutely refused to melt), we decided to go the chemical route.

I tried a test run last week, with several bottles (mostly Mission Street and New Belgium) in my chemical bucket in undiluted vinegar. Left them all night, came back in the morning, took a razor blade to the labels and they came right off. Well, they still needed some coaxing, and they definitely left in pieces.

Doing the real run now; probably have thirty bottles to de-label, including a whole box that JJ's Market was kind enough to let me haul off. Assorted doesn't even begin to cover it. Anyway, the vinegar (5% white vinegar, initially undiluted) seems to be taking a lot less than all night to do its work, so I'm moving on through them pretty well.

Some observations and ideas for next time:
1) Start with your shortest bottles. Fill them with water (to keep them from floating), put them in the bucket, fill around them with vinegar up to the neck.
2) Don't use a metal razor to scrape off the labels if you can avoid it. The vinegar acid will react with the metal to discolor or corrode it. Doubly true if you're thinking of using a knife or metal kitchen utensil that you don't want to replace. I'm using a hard plastic spatula and it's going great.

[1] The Red Baron Capper, if you're interested.

In which Jonah Goldberg makes a funny

...and I can't quite tell if it's not aimed both at Pat "Bay" Buchanan (damn you autocorrect!) and Dancin' Dave...

Saturday, September 22, 2012

Taking the piss

Dear Chris Hayes:

I realize that it is both commercially and intellectually in your show's interests to seat conservatives on the panel, to provide a foil or counterweight to the host's and other guests' main discursive habits. I realize, too, that it is difficult to find intellectually honest conservatives to fill that role.

But please, for the love of Eris, don't give Kevin Williamson that chair for two whole hours. It's unbecoming of civilized conversation to invite a fellow into all of our living rooms come-a Saturday morning, when that fellow's primary objective is to piss on my head and tell me it's raining.

Now, if you'll excuse me, I'm going to filch one of those delicious scones off your table.

Tuesday, September 18, 2012

On becoming the monster

So the 'verse is all a'twitter because Mitt Romney was caught on a hot mike saying this when he thought only friends were in the room:
There are 47 percent of the people who will vote for the president no matter what. All right, there are 47 percent who are with him, who are dependent upon government, who believe that they are victims, who believe the government has a responsibility to care for them, who believe that they are entitled to health care, to food, to housing, to you-name-it. That that's an entitlement. And the government should give it to them. And they will vote for this president no matter what…These are people who pay no income tax.
Now, for sure, part of this is rock-solid political truth: each of the two major parties has a core of base support that the other campaign isn't even shooting to win over. The exact numbers ebb and flow -- I haven't heard anything remotely close to 47% for the Democrats from a source I trust with numbers -- but the principle is sound.

What's outrageous here is the conflation of a few demographics here:
(1) the Democratic Party's base;
(2) the fraction of the adult U.S. population who paid no federal income tax last year; and
(3) the fraction who are "dependent" on the government for their livelihood (that is, those who benefit from social insurance and safety-net provisions, which the Right has successfully renamed "entitlements").

These three groups are very, very distinct, though certain sectors of the Right-Wing Sound and Fury Machine have been pushing the conflation for a while now. I think Brad Delong has a very important point here:
The most fascinating thing about Romney is that he has fallen for a fake statistic created by the Wall Street Journal editorial page as what they call "boob bait for the bubbas"--something that they hope low-information voters will hear, get outraged about, and vote Republican.
What's critical here isn't merely that the statistic Romney's using doesn't say what he thinks it says... that happens to everyone sometimes. It's that the Right-Wing narrative frame was supposed to be about snookering the median voter into voting for the guy who values what they value and the party which takes away everything they value and replaces it with cheap Chinese crap.[1]

Look, there's the Religious Right wing of the GOP, and the leaders of that wing are mostly true believers, if sometimes also hypocrites who enjoy the company of rentboys. And then there's the "foreign policy" wing, which means followers of Leo Strauss, the purveyors of the Noble Lie in the service of getting all the rest of us in line. The basis of this foreign (and domestic) policy is, of course, the enrichment of the American or not-inarguably-foreign business classes at the expense of the 99% at home and of any vestige of self-determination abroad.

But the biggest story in the American political scene, the story of the current generation of big-C-Conservatives, is that they have forgotten that the Noble Lie is a lie. They have forgotten that while the dude on the street is supposed to think of the federal budged like a household budget, the ones who actually get power are supposed to know better. They have forgotten that while we're supposed to think Russia is the enemy and the Wolverines are the heroes, the guys and gals in power are supposed to be ruthlessly out for US interests, and that means putting pressure on our "friends" (read: clients) and not just on nations we don't even have formal diplomatic relations with. They've forgotten that while the kids in schools are supposed to be creationists and Exxon is supposed to be able to do whatever they want wherever they want, the halls of power need to be also preparing for the day when the atmospheric CO2 is 450ppm, the Maldives no longer exist, and the ocean's salinity has dropped far enough to disrupt the flow of tuna to the heartland.

And they're supposed to know that the WSJ's class internecine warfare is just divide-and-conquer rhetoric -- and have people on hand to talk a Presidential candidate out of the carefully crafted bullshit. Or, you know, only nominate people skilled enough in parsing media narratives to have read that play straight from the huddle.

Instead, we have Mitt Romney, and a Congress whose largest single bloc, regardless of which party has the majority of each house, will almost certainly be straight-up-consumers of narratives designed solely to obfuscate reality and ensure the impotence of American self-governance.

[1] This is not entirely fair. The Democrats are, in the main, also fans of economic policies that result in cheap Chinese crap. However, the Democrats have put some real policies in place in the last four years resulting in Americans being employed in the making of both cheap crap and durable worthwhile investments.

Thursday, September 13, 2012

Subclassing immutable types in Python 3

I've been hacking around in Python 3 for a while now, writing (as I mentioned a while back) a package for implementing arbitrary finite first-order structures.

The natural way to build such a thing is to subclass sets in some way: the traditional way of describing a first-order structure is as a set with additional information attached. But Python has two native set types: set and frozenset, the former mutable and the later im-.

Ideally, we'd like to enforce that you can't add or subtract elements from a model -- mean, if you plan to iterate through a model M, it would be a poor choice to pop elements off one at a time and throw them away, so a good programmer should make that an action that a user can't do by accident. Hence, I'm going to subclass from frozenset instead of the mutable set class.

There's only one problem: initializing an immutable object, or a mutable object which inherits from an immutable class, requires doing things a little differently.

I won't go through the whole setup process for my Model class, since that would involve a lot of explaining, but I'll do a simplified example: a derived class from frozenset with an extra data attribute foo.

But first, where does the problem crop up anyway? Let's say that we didn't know about this whole business: how would we usually program a class inheritance?
class SetWithFoo(frozenset):
    def __init__(self,X,foo_in):
        self.foo = foo_in
 But when you compile this code we might get something like
>>> S = SetWithFoo({1,2},"bar")
>>> S.foo
>>>1 in S
What's gone wrong? Well, remember how frozensets are immutable? And remember how __init__(self,...) isn't a constructor, because the object self already exists? What that means here is that self gets summoned into existence from the void with certain elements -- and those are the only elements which will ever belong to it. By the time __init__ sees the object, it can't change its members.

The method which does the summoning is where we need to work. That method is called __new__(...), and it's the only method in your class which doesn't take self as an argument -- because self doesn't exist yet! Instead, the first argument to __new__ is the class of the object it's creating. You the programmer don't have to worry about this at all -- just put cls as the first argname, and Python will take care of the rest:
def __new__(cls,X,foo_in):
Now, at this point there are two schools of thought on what to do next. One of these schools says that if you're going to bother overriding __new__, you should code the whole initialization in there and just leave __init__ alone (don't even explicitly override it). I'm more in the other side, which thinks that only that which has to be done in __new__ (that is, what has to be done before freezing the basic data of your object, in this case the immutable members of the set) should be done there; everything else can be handled profitably in __init__. The one caveat is that the arglists (including default arguments) of the two methods must be the same (except for cls and self, of course), or else Python will throw a fit when you call SetWithFoo(args)
Long story short, either of the two following code blocks will do just fine.
def __new__(cls,X,foo_in):
    s = frozenset.__new__(cls,X)
    s.foo = foo_in
def __new__(cls,X,foo_in):
    return frozenset.__new__(cls,X)

def __init__(self,X,foo_in)
    self.foo = foo_in
but obviously not both ;)

No to insult our Prophet.no to insult Islam.no to terrorism

In the wake of the assault on the US Embassy in Libya and the murder of ambassador Christopher Stevens, some Libyans have taken to the streets to say "not in our name". I hope I speak for all Americans of good will when I express my gratitude to these people. The world is a messy place, and we don't fit into neat boxes, especially not the ones drawn in pretty colors on a map.

In the linked suite of photos, two of the protestors are holding printed signs with Arabic text above English:
The English reads "No to insult our Prophet.no to insult Islam.no to terrorism". I think (hope?) I know what this means: something along the lines of "We disapprove just as strongly of terrorism as we do of denigration of Islam and the Prophet." But can someone who knows Arabic give a translation of that part of the sign? Does it say, more or less, what the English part does?

Tuesday, September 11, 2012

Amenability of Thompson's Group F

Justin Moore at Cornell has just announced a proof that Thompson's group \(F\) is amenable. The paper is short; I read through it last night, admittedly not following all the details.

There are, as it happens, a lot of details.

Wednesday, September 5, 2012

Ecomomics go-to conversation resources

I posted this over at Atheism+, where I am intending to become an active member. Y'know, in all my free time. Maybe I'll post something soon about why I think that atheism+ is a great and positive thing that I hope grows and becomes a force to be reckoned with, but not today.

Anyway, here's a question I asked there, which might as well get cross-posted here:

No, I'm not looking for homework help ;)

I found myself in an unusual position yesterday while having a Facebook discussion with some politically conservative friends from high school; I tossed off what was meant to be a transitional comment that supply-side economics is completely empirically discredited, which was met with complete disagreement. Now, if this were a discussion of evolution/creationism, or of abortion, or many other topics that I find myself sparring with friends about, I have a go-to list of links to introduce people to the ideas, going from the friendly and accessible to the mathematically and statistically imposing.

But what I realized about economics (in which topic I am very much a layperson) is that the conversational/blog circles I move in treat supply-side economics as very much a settled deal, and if they pass on evidence (such as is done here) it's in the spirit of "let's add one mote to this mountain of empirical disproof of this theory". I don't know of a resource intended to gently (or not-so-gently) bring someone into that conversation.

Do y'all?
Update: A couple of good links to Jared Bernstein out of that discussion already: a qualitative intro to several of the theoretical problems with supply-side, with an internal link to empirical work by Saez and Piketty on the correlations, if any, between high-income taxation and economic activity/growth.

Sunday, September 2, 2012

Old man yells at chair

If Clint Eastwood's RNC speech turns out to have been viral marketing...

... I will be simultaneously awed and lose all hope for the human race.