.comment-link {margin-left:.6em;} <$BlogRSDURL$>

Monday, May 30, 2005

Bonus Memorial Day Kid Blogging 

On Saturday YW, along with a few thousand other scouts and parents, placed flags by all the graves in the Golden Gate National Cemetery. We were in a section with lots of WWII graves. Another Cub and Dad were with us as we went down the line. The Dad was reading the markers (digression: I don't think he's read much history) and marvelled at how the last three graves in a row we passed had been boys/men that died at 18. Hank's quote of the day: "It take's a lot of 18 year olds to win a war." On the way out of the cemetery YW and I were taking turns reading the names on the markers. One pair of adjacent graves was of two brothers, one died in 1943 and the other 1944. It's no Saving Private Ryan, but it choked me up to read those two names.

And for those of you following along at home, YW is no longer wearing his orange Tiger Cub hat and neckerchief. He's been promoted and is now working on earning his Wolf patch.

Friday, May 27, 2005


Haloscan is acting up. It's not updating the comment count below the posts. It's not like I get all that many comments so I like to read each and every one. And now it's hard to tell when I get new ones. I may have to shut off the Haloscan comments and let the built-in blogger comment functionality take over...

Friday Random 10 

  1. Dancing Bauhaus
  2. Opening Mandelbrot Blue Man Group
  3. Jenny Sleater-Kinney
  4. Oh, Doctor Phil Alvin
  5. The Hurricane Song Tom Glazer
  6. Somebody's Body (July) They Might Be Giants
  7. Sister Of Night Depeche Mode
  8. Red Vines Aimee Mann
  9. TeenAge Oddball The SweetHearts
  10. Stormy Monday Blues Jethro Tull

Friday Kid Blogging 

I haven't taken any pictures since last weekend, so I'll put up another from the Birthday Party. This one shows YA mourning the imminent destruction of Violet. He did, though, manage to swallow his grief, along with all the candy he scrounged up after she was disemboweled. At YW's last Birthday Party we had a Nemo piñata. I've decided that I don't approve of the cartoon character themed piñata. It's too disturbing for me to watch them get thrashed. Poor Nemo looked like a fish that had been floating dead in the tank for a week; all chewed up and floppy.

Tuesday, May 24, 2005

Ignorance On Display 

OK internets, I admit it, I am ignorant. Not universally, but rather with respect to a time long ago in a galaxy far far away. In Episode I Natalie Portman played both Amidala and Padme. In Episode II she only appeared as Senator Padme. And yet there was someone who seemed to be playing the Amidala part. In Episode III she was again Padme and there was again someone else who seemed like she must be Amidala. When I first watched Episode I I got the impression that Padme just might be Amidala doing a kind of Prince and Pauper thing so she could go what life on Tatooine was like. But then when Episode II came along it seemed as if Padme had been Padme all along and Amidala receded into obscurity. So what's the deal? Are Amidala and Padme the same person? Did Lucas have another brain fart and just decide that Padme was more interesting than Amidala and write her out of the story? I'm confused, not enough to actually Google my question, but enough to write a whole post exposing my lack of Star Wars geekiness.

Monday, May 23, 2005

Bonus Monday Kid Blogging 

YW attended a Birthday Party on Sunday. Scheduling at Hank's Place being what it is, I was on kid-duty and so YA had to come along as well. Luckily, there was a jumper (Spongebob, in case you're wondering). YA is wild for jumpers and so spent four hours bouncing around, with brief interuptions for eating candy and cake. YW likes them a bit as well, but he did also participate in the other party games. And yes, I smudged out that other kid's face since I didn't ask permission to put her visage on the internets.

Saturday, May 21, 2005

That Word Doesn't Mean What You Think It Means 

That's it, my doubts were almost entirely eliminated when the 'Protocol' dictated that the Commander In Chief had no need to be informed about a possible attack on the Whitehouse, but today's Chronicle has removed all doubt that GW is, in fact, graced with less brainpower than the typical mollusc. Here's his money quote from the article in question:
"I've made my position very clear on embryonic stem cells. I'm a strong supporter of adult stem cell research, of course. But I have made it very clear to the Congress that the use of federal money, taxpayers' money, to promote science which destroys life in order to save life is -- I'm against that.

"Therefore, if the bill does that, I will veto it.''

And here's the reason why he's an idiot:
The bipartisan bill, which has about 200 co-sponsors in the 435-member House of Representatives, would allow researchers to use surplus embryos created at in-vitro fertilization clinics. Such embryos are now usually destroyed, and the bill provides that those who want to donate their embryos for research couldn't be paid and would have to give written consent.
Even if you accept that the research "destroys life", a highly dubious claim, given that large numbers sexually active women destroy a similar "life" when they have their periods and any non-implanted embryo they might have inside them is lost forever, the "lives" in question are on their way to the autoclave anyway.

Friday, May 20, 2005

Friday Random 10 

  1. Land Of Sunshine Faith No More
  2. Rudderless Lemonheads
  3. It's Alright Big Head Todd & The Monsters
  4. Living In Exile Sleater-Kinney
  5. Long Time Now Tiddas
  6. Same In The End Sublime
  7. The Cat's Dreamin' Clifton Chenier
  8. Out In The Parking Lot Body Count
  9. Elaborate Sun Pleasant Grove
  10. Shepherds Delight The Clash

Friday Kid Blogging 

Here's YW in late spring / early summer just a short time before we packed everything up and moved from Minnesota back to California. He's a few months less than 2 years old and caught in the act of indicating it's time to leave the park. He would run and run and run and after a while would begin to try to eat rocks. Eating rocks == time to go.

Wednesday, May 18, 2005

Commie Traitor Bitch 

Jane Fonda just can't catch a break. Remember, when Henry Hyde was banging his secretary waaaaaaay back in the day, that was just a "Youthful Indiscretion". But Jane's going to carry that trip to North Vietnam with her to the grave. Of course, getting looked down on by Know Nothings in Kentucky should probably be looked at as a mark of distinction.

What's Wrong With This Picture? 

One the websites I like to look at is the Marinelink Photo Gallery. It's an updated-daily collection of pictures taken by (as far as I can tell) ordinary marines. Now to get on this site, they've got to get past some kind of censorship by the Higher Powers in the marines. So you've got snaps of things some regular person thought were noteworthy that make it through the filter of Authority. You end up with shots of things in Iraq and Afganistan, soccer games on Okinawa, homecomings at Camp Pendleton, etc. Today's picture is thumbnail cut out a picture that I saw this morning. Here's a link to their thumbnail and caption and the full-size picture itself. Go look at one of them, I'll wait.

Welcome back. Now answer me this, what the fuck is wrong with that picture? Winning Hearts and Minds does not seem to be on the official list of Things To Do. A tank with name "New Testament" (with the name on the 120mm cannon for fuck's sake) driving down the road in Iraq. I'm thinking there are more than a few Iraqis that read English. But we're not a Crusade in Iraq, oh no, that's the last thing we're doing there. And let's not even get into the acutal message contained in the New Testament.

Tuesday, May 17, 2005

Drafting the Ignorant 

I've seen reports (sorry too lazy to find a link at the moment) about how the Army is going to introduce a 15 month enlistment for 11 Bravos (that would be an infantryman) and other MOS's that are currently in short supply in today's Army of One®. This just has to be the Army's way of drafting the ignorant. Their current Stop Loss policy of keeping soldiers in uniform after their terms of enlistment are up is routinely refered to as a Backdoor Draft. This new enlistment will entice those poor souls who think that 15 months isn't too bad (and who haven't been following the news closely enough to hear about Stop Loss), only to be informed after the swearing in that the current situation requires Uncle Sam to extend the 15 months by just a little while. I have never served in the Armed Forces, so I don't know how long training takes, but you have to figure that Rummy really wants you to go to Iraq for at least a year. There is no way that you can become a functional infantryman in 3 months. I'd bet that 9 months is much closer to the length of time basic training, advanced infantry training, integrating into your permanent unit, Iraq-specific training with your unit and traveling to Iraq would take. Plus there's getting back to CONUS and processing out of the Army, with special pressure to re-enlist. I figure that a 15 month enlistment is really a bait and switch for a minimum of 2 years.

Digression: When I was going to high school in LaCrosse, WI (go Red Raiders! (I'll bet that's a mascot that's been changed since then)), I rode my bike to school in nice weather. My route took me past the local Army Recruiting Center. At the time you could enlist for either 4 years or 2 years. The windows of the recruiting center had posters showing all the cool things you could do in the Army. The ones for the 4-year term showed people using computers, fixing helicopters, fixing tanks, staring into radar screens, etc. The ones for the 2-year term showed people driving tanks, jumping out of airplanes, shooting guns, etc. At least then, even without a war going on, they were honest enough to tell you that doing the armed part of the armed forces required a couple of years of your time for it to be worthwhile.

Friday, May 13, 2005

Friday Kid Blogging 

Here's YA, a bit older than YW in the picture below, but looking pretty darn cute on the cow blanket. And would you look at that, it's been a week and I haven't done a single post. I'm a bad boy. Here's my excuse: I don't want my Mixmania playlist to fall off the front page, so if the recipient of my disc comes looking she'll be able to find it without too much trouble.

Friday, May 06, 2005

Friday Kid Blogging 

Here is one of the very first pictures of YW. In this one he has been weighed and APGAR-ed and is taking his ease on the bed. Note how the point on his head has such a jaunty tilt. Note how he doesn't look to pleased with himself. Frankly, if it took me 28 hours to be born, I'd be pretty cranky too.

Friday Random 10 

  1. Don't Be So Sad Renée Geye
  2. Jailhouse Rock Elvis Presley
  3. Back Porch The Presidents Of The United States Of America
  4. Asian Man Skankin' Pickle
  5. My Generation The Who
  6. Thinking Of Suicide Social Unrest
  7. St. Robinson In His Cadillac Dreams Counting Crows
  8. Let's Cook Mental As Anything
  9. When I Was A Cowboy Chris Wilson
  10. Country Funk Southern Culture On The Skids

Thursday, May 05, 2005

More Geekiness 

Let's say you want to get the contents of a table from your database, and you don't want a tuple of tuples, the way you (or at least I) usually get stuff back from MySQLdb. Let's say what you really want is dictionary of class instances where the class has attribute names the same as column names from the table. And you want the keys of the dictionary to be the primary key from the database table. Well then your wants have been fulfilled. The following Python code does just that. Note that my database connection wraps around the MySQLdb module and has a method called query that accepts an SQL statement and returns the entire answer as a tuple of tuples where each inner tuple contains the data from one row of the table. Here's the code:

class Item:
) Placeholder class that gets mutated as appropriate when being loaded with
) various table entries
def __init__(self):
## __init__ ##

def __repr__(self):
ret = []
for colName in self.__dict__.keys():
ret.append(" %s = %s" % (colName, self.__dict__[colName]))
return "<\n" + '\n'.join(ret) + "\n>"
## Item ##

def getTable(db, tableName, extraTables = [], extraSQL = ""):
) getTable(db, tableName, extraTables = [], extraSQL = "")
) Given the name of a table loads as much as all of the table into a
) dictionary of Item instances where the dictionary is keyed on the primary
) key of the table. If the primary key is composed of multiple columns, the
) keys are tuples, otherwise the key is just the single value.
) Parameters:
) db - a connection to the database
) tableName the table to be loaded
) extraTables - an optional list of table names that need to be part of
) the 'from' part of the SQL
) extraSQL - an optional string that fine tunes the SQL to reduce the
) number of table entries that get loaded
) Example: if tableName is 'person' and tableList = ['company'] and
) extraSql is "person.companyid = company.id and
) company.name = 'Walmart'"
) you end up with a query that looks like:
) SELECT person.*
) FROM person, company
) WHERE person.companyid = company.id
) AND company.name = 'Walmart'
) if tableList and extraSQL are left unset, you end up the SQL
) "SELECT person.* FROM person"
) Returns: a dictionary of Item instances where each Item gets customized
) with the column names of the table. The keys are the primary
) keys of the table
) Example: Let's say person looks like:
) +-----------+-------------+-----+
) | Field | Type | Key |
) +-----------+-------------+-----+
) | id | int(11) | PRI |
) | firstName | varchar(50) | |
) | lastName | varchar(50) | |
) +-----------+-------------+-----+
) you end up with a dictionary keyed on the values from the id
) column where the values are instances of the Item class with
) attributes id, firstName, and lastName.
# First get the names of the columns and determine which column(s) is(are) the primary key(s)

colNames = []
primaryKey = []
tableDes = m.query("describe %s" % tableName)
for column in tableDes:
if column[3].upper() == 'PRI':

nCols = len(colNames)

fromStr = ', '.join([tableName] + extraTables)
sql = """SELECT %s.* FROM %s""" % (tableName, fromStr)
if extraSQL:
sql += " WHERE %s" % extraSQL

dict = {}
entries = db.query(sql)
for entry in entries:
item = Item()
key = []
for i in xrange(nCols):
item.__dict__[colNames[i]] = entry[i]
if colNames[i] in primaryKey:

if len(key) == 1:
key = key[0]
key = tuple(key)
dict[key] = item

return dict
## getTable ##

As you can tell, I really like the doc strings. Use them and pydoc and you've got your programming documentation done.

Tuesday, May 03, 2005


Here's my playlist for Mixmania:

  1. Espionage Green Day
  2. The Road To Hell (Part II) Chris Rea
  3. My Own Worst Enemy Lit
  4. Teen Angst (What The World Needs Now) Cracker
  5. Let Your Love Go Bread
  6. Mamma Possums Mojo Nixon & Skid Roper
  7. Deep Dark Hole Los Lobos
  8. More Human Than Human White Zombie
  9. South Australia The Pogues
  10. I Will Still Be Laughing Soul Asylum
  11. Back Porch The Presidents Of The United States Of America
  12. Maggie Campbell Dave Alvin
  13. Too Bad About Your Girl The Donnas
  14. Freedom Of Choice Devo
  15. Won't Get Fooled Again The Who
  16. 7 O'clock News-Silent Night Simon & Garfunkel
  17. Tired Of You Foo Fighters
  18. Rusty Cage Johnny Cash
  19. Rude Mood/Hide Away (Live) Stevie Ray Vaughan and Double Trouble
  20. What's My Age Again? Blink 182
  21. R.A.M.O.N.E.S. The Ramones
  22. (He'll Never Be An) Ol' Man River TISM (This Is Serious Mum)
  23. Jenny Says Cowboy Mouth

There is no theme. It's just a bunch of songs that I enjoyed when they came around in the iTunes random playlist.

Update: In the original version I had a song by The Bloodhound Gang, but not wanting to cause damage to unsuspecting young psyches, I chose not to include a song that includes the line "...let the motherfucker burn, burn motherfucker, burn." Instead I threw in the song by TISM which is all about the joys of trying the drugs that killed various famous people: "I'm on the drug. I'm on the drug. I'm on the drug that killed River Pheonix."

Younger Brother Syndrome 

YA is rougly 3.5 years younger than YW. And he is convinced that he can do anything that YW can do. His current obsession is camping. He knows that his big brother went camping. Now all he wants to do is go camping.

H -YA are you ready to get dressed?
YA - I want to go camping

H - YA are you ready to go to school?
YA - I want to go camping.
H - Wouldn't you rather go see Teacher Karen?
YA - No, I want to go camping.

He doesn't even know what camping is, but since YW did it, he should get to do it too. I have a younger sister, so I am at a disadvantage in figuring out his thought process: I'm not a younger brother and I don't have a younger brother. In addition to needing to go camping, he also needs to take swimming lessons and have his own bicycle (or as he says it, bike-isul).

Soccer season should be especially exciting; I expect him to charge onto the field at some point in every game YW plays. Speaking of which, I'm signed up to be YW's coach. I think I might have to see the movie Kicking and Screaming to see what's in my future.

Monday, May 02, 2005

Bonus Monday Kid Blogging 

The Cub-On was big fun. We boated, we archery-ed, we BB-gunned, we hiked, we fished, we slept on the ground. It was also proof that I shouldn't hang out with Ordinary Fucking People (Pop Quiz: what movie is that phrase from?). There were way too many completely un-parented kids at the Cub-On. Not kids there without parents, kids whose parents don't do much actual parenting. If you're in a clump of 20 or more tents and your kid is, first thing in the morning, running around shouting nonsense sounds at the top of his lungs, your job is to redirect his energy to something less noisy or tell him to quiet the fuck down or something. If you're on a nature hike and your kid is constantly going off the trail and crushing plants when he's not just hitting them with sticks and snapping off branches, your job is to make him stop, not smile vapidly while at least half the grownups present tell him to knock it off. Other than that it was great. Oh, and it's a Bluegill, which, mercifully, was too small to keep so we threw it back.

Update: And for those of you paying attention, yes, he is wearing the same shirt in this picture as he is in the Friday Kid Blogging post below. He really likes the flaming Batman motif.

This page is powered by Blogger. Isn't yours?