NFL picks for the week

Football is dialectical materialism.

See here for point spreads.

The general rules

  1. Figure out what will cause the most disappointment to the most number of people and bet on that.
  2. Bet on the region with the most ties to the criminal underworld.
  3. Bet on the region involved in an up and coming mass movement.

Some picks

Arizona will win over Oakland. This is rule 3 at work. Arizona is a big Tea Party state. Oakland is in San Fransisco’s back yard. The political subtext shouts at anyone willing to listen. The Tea Party is still in phase 3, so the cooptation handbook rules to apply here are:

  • build the movement as a brand
  • fade out details about what the brand stands for
  • establish the villain

Bet on Baltimore to trash Cleveland. Rule number 1 favors this outcome. Cleveland wants this victory bad, and disappointment makes excellent satellite food*. Rule 2 would favor Cleveland, but remember that the FBI raids have dismantled the lower and middle tiers of the local machine. Rule 3 doesn’t apply in either city.

San Fransisco will take Kansas City. This one is complex. There’s an Alamo strategem involved. Kansas City won’t just lose — this game might include a few season-ending injuries. San Fransisco must emerge from this game as a merciless villain.

Later this season, another team will get the chance to avenge Kansas City’s humiliating defeat.

[*] Remember those satelites deployed as part of Reagan’s SDI program? It turns out they were really designed to convert blue-collar misery into energy.

True story

Son #2, Oliver, has been battling constipation for three days now with no relief. He’s been walking around huffing, puffing, squatting all day today. Poor little guy has been miserable.

Anyhow, I turned on some death metal radio show (metal meltdown on 91.1) on the radio really loud, mostly just to pester my wife. After just a minute, suddenly O (that’s what we call him) let out this primal scream and blasted out an epic dook1 into his diaper.

I’d like to see Christian Rock do that.

1. Think about the contents of a family size can of beefaroni.

Farm report spring 2010

Help me prep my new 8 x 16 garden bed

I’ve already got one 8×16 bed that I’ve been growing vegetables in for the last four years, and I want to expand. So I set up 2″x12″ boards around a new 8’x16′ section of my backyard that I intend to use for a new garden.

Right now, the space is a big mess. Imagine a yard that nobody mowed for 15 years and you’ll have a fairly good picture.

My soil is dense clay with lots of really nasty roots throughout. It drains poorly and is very compacted.

Here’s what I’m thinking about doing:

  1. Cut everything down as close as possible.
  2. Double dig the area and mix in compost and straw.
  3. Plant a cover crop.
  4. Dig in the cover crop in the early summer
  5. Grow some vegetables, mostly stuff that can handle dense clay soils.

What kind of cover crop should I use? I need something cold-tolerant. I’m more concerned with improving soil structure and adding more humus to the soil rather than boosting nitrogen levels right now.

Side note: I know all about the idea of just turning this into a raised bed, filled with a truckload of fancy store-bought dirt. There’s something about that idea that just doesn’t appeal to me. I want to enrich what I have, not just import the finished product from somewhere else.

Sure, this idea doesn’t really withstand scrutiny; after all, the straw I’ll be mixing in and mulching with later is purchased.

But somehow buying an $8 bale of straw, and $40 worth of composted horse shit to mix in seems more in the spirit of sustainability than spending hundreds of dollars on a truck load of topsoil shipped in from who knows where.

Open letter to all candidates for Cleveland Heights City Council

I just sent the email below to lots of the candidates running for city council in my little burb. I’m hoping a few will reply.


I’m your neighbor; I live at XXXXXXX. Anyhow, I’m emailing as many city council candidates as I can, looking for their thoughts on a few topics.

I would like to copy and paste anything you send me in my blog. I get very little traffic from locals; most of my posts deal with fairly obscure computer science issues.

So, here’s the topics:

  1. Cleveland has red-light cameras. Should Cleveland Heights (CH) have red-light cameras?
  2. Cleveland now allows people to keep chickens in their backyards. Should CH?
  3. Should we ban or regulate gas leaf blowers?
  4. If you couldn’t vote for yourself, what other candidate would you pick?

And here’s my opinions on those topics:

  • I have nothing against red-light cameras in theory. But when I lived in DC, the city put them at intersections where lights were poorly timed and traffic flows were confusing. So it turned into a way for the city skim huge amounts of cash from drivers that believed they were following the law.

    I wouldn’t mind cameras as long as we clearly pointed them out way in advance of intersections. Also I believe we should be generous and give some number of warnings for each driver before the tickets count for anything.

  • Yup. More generally, the city should do anything it can to encourage backyard and community vegetable gardens.
  • On nice days when I work from home with all my windows open, everything is great until some landscaping crews show up. I don’t like banning things, but I would like to create incentives for landscaping firms to explore less noisy options.
  • No opinions here. I just started doing research.

Thanks for your time, and good luck!


RIP Natchie

We adopted her in 2001 when Lindsey and I lived in Washington DC. Before that, Natchie lived with an economist I worked with, and I used to take care of Natch and another cat and a golden retriever occasionally.

I still remember one time when Lindsey and I were watching TV while I was pet-sitting. Natchie walked by the TV, looked at us, meowed, and then kept on walking. Was really endearing.

Natch loved affection more than any cat I’ve known. She would softly head-butt people to get them to pet her. She would hassle other animals to pet her. She loved to curl up next to the golden retriever and he would lick her.

Natch got her name from an Ethiopian phrase “Letenatchie!” That’s a drinking toast. Natch was an Absynnian, and the breed was supposedly from the area that is now known as Ethiopia.

It’s a gloomy day at the Wilson house today. We’ll miss her.

Now I have two human children

At 5 PM, Lindsey started feeling contractions, at 6:30 PM we were driving to MetroHealth hospital, and by 8:11 PM, Oliver was born. Lindsey and O. are both recovering very well. He shows a lot of Wilson family traits: really long toes, disdain toward waking up, and psychokinesis.

Lots of pictures forthcoming, but probably on flickr or Facebook or something else.

I learned some neat stuff at clepy last night

Brian Beck showed how to use metaclasses and descriptors to make DSLs with python.

I do this kind of this kind of thing every so often in my code:

def f(x):
class C(object):
y = x
return C

That function takes a parameter and makes and returns a class based on that parameter. Whoop-di-do. I was surprised to learn that you can’t do this:

class C(object):
x = 99
class D(object):
y = x + 1

I gotta explore this some more until it makes sense.

Here’s another neat trick: It isn’t possible to add two classes together:

>>> class C(object):
... pass
>>> C + C
Traceback (most recent call last):
File "", line 1, in
TypeError: unsupported operand type(s) for +: 'type' and 'type'

But if you want to support this, the solution would be to define an __add__ method on the metaclass:

>>> type(C)

>>> class MC(type):
... def __add__(self, other):
... print 'Adding!'
... return 99
>>> class C(object):
... __metaclass__ = MC
>>> C + C

Wacky, right? More realistically, I could build a new class by taking attributes of both classes together. In other words, if class C has a class attribute x, and class D has a class attribute y, then we can use a metaclass to add C and D together to get a new class E, that has both x and y as class attributes.

In this example, C has a class attribute x and D has a class attribute y. When I add the two classes, I get a new class with both of those class attributes.

>>> C.x, D.y
(99, 98)
>>> E = C + D
>>> E.x, E.y
(99, 98)

Here’s the metaclass that allows this sort of nonsense:

class MC(type):

def __add__(self, other):

class E(self):

for k,v in other.__dict__.items():
if k not in ('__dict__', ):
setattr(E, k, v)

return E