Thursday, February 26, 2009

A few tidbits

I asked for comments on my previous post to try to gain insight into any readers I may have accumulated over the years, but received no replies.  From this I can determine that either no one reads this, no one comments on what they read when prompted, or it is viewed infrequently and pending comments will arrive shortly.  Gardan's Steelyard suggests my first conjecture, no one reads this, is the correct one.  I could feel that as a blow to my ego, but it is helpful in that I don't feel I have to write to a specific audience, and can continue on as before, writing whatever comes to mind in a voice that pleases me.

I've been listening to the Neal Stephenson audiobook "Anathem", and find it very enjoyable.  In fact, I haven't been this happy with speculative fiction since my first reading of Asimov's "Foundation".  It also fits with my current level of patience; Foundation was much shorter, written when sci-fi books were sold in grocery stores on little metal racks, and the push was for thin books so more of them could be crammed in.  Anathem, by contrast, is a giant tome, whose audiobook weighs in at 28 CDs!  Fortunately, it isn't in high demand at the library, so I was able to renew it for a second two-week checkout period, and may have to do that once more... or just dump the remaining discs to mp3 and listen to them on my Shuffle.

I have succeeded in experimenting with alcohol without much fanfare, and without a quick downward spiral into vice or skid row.  The few people to whom I've mentioned that I started drinking have seemed disinterested, none of them crying "No! Not you! You were humanity's last hope of sanity and fidelity, truly the best of us all," or anything similar.  My daughter was the sole dissenter, but quickly accepted the occasional bottle of wine in the pantry.  She frowned the first time she saw me sip from a wine glass, and then showed no further concern.

I can't drink anything "dry" yet, or anything that has a lot of alcohol.  Sweeter wines are OK, although I quickly learned that Wild Vines and the like are cheap fare.  Chardonnay and White Zin are enjoyable, Reisling seems a safe type to get when you're eating out, so you don't get stuck with something too bitter to finish, plus waitresses don't expect you to pretend to be cultured when you order it, and can easily be convinced to dispense with the tasting ritual.

My girls are doing well.  Stacey and Scout recently did some art together in the form of drawings on posterboard, and presented myself, Liberty, and Stacey's mom with personalized drawings and messages.  Liberty has been doing a lot of cooking recently, including some of her stand-bys like pesto and jambalaya, and dishes she hasn't made for me before like stir fry and curry with naan - delicious all.

Lastly, I had an odd thing happen to me during my normal lunch walk.  Since I started taking my weight, fitness, and diet seriously in 2007, I've been taking walks during my lunch hour pretty regularly.  One of my routes takes me through the AEP garage, onto street level for about 100 yards and into the Nationwide garage, up to the 4th floor where it connects to the skyway leading to the Hyatt, and through the Hyatt to where it connects to the Columbus Convention Center, to the opposite end of the convention center, and back the way I came.  All told the round trip is about a mile and a half, and even meandering and with the hallways choked with traffic I can still get there and back in 30 - 40 minutes.  I don't do this as a substitute for a good cardio workout, I do it as a substitute to the overeating I tend to do at lunch, to stretch my leg muscles midday and get away from my desk, and an excuse to listen to podcasts.

The area leading from the Hyatt to the Convention Center is being remodeled right now, and is detoured into what looks like an enclosed terminal ramp at an airport.  The ramp itself was replaced recently as one leg of the construction was finished, and today I noticed the odd piping running along the top of the new ramp.  The piping winds strangely, and is connected with pvc joints that seem too big for the job.  So I was walking up the ramp today trying to come up with a theory of what the pipe was for.  I had my head cocked to the left and raised up looking at the pipe, holding a can of pop, mouth still slightly agape after finishing a drink when I heard a *click* from the top of the ramp.

The click came from the camera of what looked like a 1970s reporter - something of a Mr. McGee from the Lou Ferrigno Hulk TV show, or Peter Parker from the live action made for TV Spiderman movies.  He had a brown suade jacket, midlength dirty-blonde hair with bangs combed straight down, a satchel slung from his shoulder, across his chest, and down to the opposite hip, and of course the big newsman's camera.  He calmly clicked his picture from the top of the ramp, and walked off to join the other men he was with.

I imagine my picture looks very odd, possibly good filler for religious propaganda, like I'm looking desperately up at God, hoping he'll intervene in whatever my little crisis is.  Coincidentally, there were tables being set up in the convention center for the meeting this weekend of some local chapter of the ACJP (Amalgamation of Crazy Jesus People) or something similar, with stacks of books like "The Case for Christ", so there's a possibility that's exactly what the picture will be used for.  More probable is he was getting a shot of the the way the ramp opened to the Hyatt behind me as some sort of attempt at an art shot, and I was extraneous.

That's the news from Lake Autery, where the woman is strong, the man is good looking, and both the kids are above average.

Friday, February 20, 2009

Overanalysis redux

There is a question at the bottom of this post. Please leave a comment with your answer. It's important. It may change the nature of this blog significantly.

So there's this web comic I like from a young-ish fellow Linux/perl geek called xkcd. The format is mainly stick figure drawings, although some panels are more realistic and show some skill and art training. I came across the following one recently, about the definition of "first base", "second base", etc. in relationships, which was a hoot:

http://xkcd.com/540/

I found it again today and noticed something I missed before. To the right of the first base foul line is the following sequence of numbers:

0110 0010 0110 0001
0111 0011 0110 0101
0010 0000 0011 0010


Knowing geeks like I do, I knew this was a binary sequence to represent ASCII, so I went about decoding it. First, set everything into groups of 8 instead of four:

01100010
01100001
01110011
01100101
00100000
00110010


Then apply a little math to convert them to base 10:
64 + 32 + 2 = 98
64 + 32 + 1 = 97
64 + 32 + 16 + 2 + 1 = 115
64 + 32 + 4 + 1 = 101
32... = 32
32 + 16 + 2 = 50


Then find them on an ASCII chart:
 98 = b
97 = a
115 = s
101 = e
32 = [space]
50 = 2

Ah! Cute joke. I was a little upset that I didn't have a quick way to do this handy, maybe an Excel macro or a perl one-liner. Developing something to decode this programmatically would have been straightforward, but would also have taken longer than doing the 5 characters by hand (I knew the space on sight, which most geeks who have programmed in BASIC know from CHR/ASC commands).

I noticed a couple new things during the decoding, cutting the bitterness a bit: Numbers all start with 0011, and the first 15 lower case letters start with 0110. If I had known that ahead of time, I could have decoded that by sight based on the way he laid the numbers out, lacking only the "s".



My question: At what point did you stop reading and skip to the question?

Bonus question: Did the above question make you think of the word "recursive"?

Wednesday, February 18, 2009

Booze

First, here's my phrase of the day: Speculation is not a best practice.

Snooty, subtle, widely applicable, and something I will have forgotten about a week from now. I like it. Just like a good bottle of wine.

Anyone who has known me well between the years 1991 and 2008 has known that I don't drink. For a full 17 years in my adult life, the only alcohol to touch my lips was in the two or three cap-fulls of NyQuil to help me with winter flus. With the help of an annual flu shot, even NyQuil had become a rarity for me. No booze, period.

I have never been drunk, and being around people who have had too much always made me uncomfortable. The social drinkers who like scotch with their conversation, the regular guys who grab a couple beers for the ballgame, the cultured families who like a glass of wine with dinner (or the church groups who like a box of wine after a prayer meeting), those I've always been OK with, and I made efforts to not seem judgmental.

I'm pretty good with words. I can be convincing, have on occasion talked my way into places I have no business being, and when I'm fishing for information I'm good at eliciting much more out of people than I give them back. Without meaning to sound like a braggart, I'd make a good spy. Sometimes I imagine myself like Hannibal Heyes from Alias Smith and Jones... Anyway, no matter how eloquent I can phrase something, no matter how quick I am with words or how convincing I can be when I try, I always make "No, I don't drink... don't mind me, I'll just hang out and watch." sound a lot like "you are a bunch of losers and I wish I wasn't here." Something about the inflection or cadence, I don't know.

To be frank, this little faux pas, emotional blind spot, this inability to sell a feeling confidently, has cost me friends. It has kept me off invite lists, and it has probably cost me promotions in a time when I seemed to be making inroads to the "good old boy" network of my last job, but was then benched and given a fixed salary.

I seem to judge when I don't intend to. By not joining in the drinking game, I create a rift between me and other people. If it were cocaine and crazed drug users, I'd be happy about creating that rift, but the people I know who drink are cool, and most don't get falling down drunk or fondly tell their drinking anecdotes. You know, the ones that end with "And when I came to..." and involve things like checking your car for damage, or not knowing where you are or who the chick wearing your shirt is. That's the kind of boozin' I don't want to be associated with. The tray full of shooters, people shouting a lot and trying to be rowdy, the throw-the-table-tennis-ball-into-a-cup and other get drunk games, the things stupid college kids do when they first taste freedom. People being stupid while drunk at parties - I'm against it.

But most of the people I know don't let themselves go that far. They drink, they relax, they're happy and open. Inversely, I don't drink, I don't relax, and I'm seldom happy. Open? I see myself as open, but a lifetime of being an outlier has built up some bad habits. I've got more work to do there, but one problem at a time.

I'd like to relax, and it was this thought that stuck in my head, and encouraged me to take the plunge. After years of being dry, I just decided to give it a go and see what I thought. I went to a grocery store with my wife and bought a random bottle of red wine, a Pinot Noir, that declared itself flavorful and fruity. We took it home, and I poured myself a little swig in my only wine glass, swirled it around like the city-folk do, took a sniff, had no context to put the aroma in so banked it for future reference, and drank it. It was nasty and bitter. Possibly it was corked, or just a shitty vintage, I still don't have enough context.

Since then my wife and I have gone through a few different bottles, and I think I'm learning the flavor a little. It's interesting, and I don't feel like I'm on my way to ruin financially or in danger of becoming a daytime lush - a glass or two at night, and not every night, seems to suffice to help me relax in the evening. That's a good thing.

Plus, now I get to experiment in other ways, like getting a bottle of champagne with the hotel room on Valentine's day, which was OK but we probably should have chilled it, and trying a screwdriver and then a little rum at The Thirsty Ear when we met up with some friends to listen to some live music. (Yes on the screwdriver, no on the rum.) Fun. Turns out bars aren't like they're portrayed in movies. No one tried to pick up anyone else's girl, there weren't any thrown chairs or fist-fights, nor did I see any cloak and dagger meetings with code phrases... "I hear the ducks are wandering this June.", "Yes, but only when it's sunny." Nothing like that at all. Just people chillin', and the more adventurous/wasted dancing a little to the music.

More on this new development as it progresses. Until then, I recommend Vino100 on Polaris to anyone just starting out with wine. Nice ladies, those.

Friday, February 06, 2009

Alarming

I found the following weirdness in an old script of mine at work:
for (@purge_array) {
print "Running command $_\n";
eval {
local $SIG{ALRM} = sub {
my $mod_time = time - (stat($logfile))[9];
if ( $mod_time > 180 ) {
die "alarm\n";
}
else {
alarm 0;
alarm $timeout;
}
};
alarm $timeout;
system($_);
alarm 0;
};
}


It took me a minute to figure out what I was thinking. Basically there is this list of commands (@purge_array) that I have to run through a third-party program that sometimes just dies without exiting. It doesn't take up CPU when it dies, and it doesn't hold file handles open, it just dies, but still shows up in the process list.

Originally all the commands were part of our nightly maintenance scripts, and once in a while the maintenance script would still be running when everyone got into the office the next day. This was my approach to fix it. We decided that if the logfile hadn't been updated in three minutes, that the command had failed. The command may take more than three minutes to run, but it would log periodically, and never longer than a minute between log entries, so we picked three minutes as the worst-case scenario.

Perl has this neat alarm function. You call alarm with a number of seconds until the script exits with an error, and then call whatever expensive function, then you set call alarm again and pass it "0", to turn off the alarm. If the expensive function completes in time, everything's cool and the script continues, but if the expensive function takes longer than the number of seconds you passed to alarm, the script exits.

Perl also has a way to interrupt system calls, such as the alarm signal ($SIG{ALRM}). I wrote my own subroutine for alarms that took the current time, and subtracted it from the time the logfile was last modified. If it was greater than 3 minutes, go ahead and exit, otherwise reset the alarm and let the script wait some more. This is, in theory, happening in the background while the third-party program is still running, and can continue to reset the alarm as long as logfile entries keep coming.

The final perk of all this is I'm doing it through "eval", a sort of virtual machine, which makes purists cringe for reasons that aren't clear to me. The only thing that exits if the alarm goes off is the eval statement, and the next item in @purge_array can be processed without the whole script failing.

It was "eval", in fact, that led to my fight Randal Schwartz and my eventual apostasy from the church of Perlmonks.org. You can read more about that here, if you like. I promise there is hardly any real code discussed.

Sunday, February 01, 2009

Snow Drivers of Dune

There's no point in being humble about it at this point: When it comes to driving in bad weather, I have super-powers.

Honesty, not vanity. I built them up slowly, from starting driving with an 81 Dodge Challenger whose favorite activity was to throw me at guardrails if there was weather, to my insane road acrobatics as a young man, to driving pizza for 4 years in a series of perpetually ailing vehicles. Over the years I developed a nice touch with cars in bad road conditions. It grew on me, got in my head, and, well... I became superhuman. There, I've said it. Superhuman.

In my current car, I'm pushing 50,000 miles on all my tires, and if there is weather, they slide if I break hard, and have trouble getting traction from a dead stop, despite the Vue's traction-control system. Regardless, during this Tuesday's snow, I trekked from Ohio to Virginia to attend my grandmother's funeral, coming back late Wednesday through conditions that had gotten marginally better in some places, and significantly worse in others.

If you're wondering, I'm not bent out of shape about my grandmother because I didn't know her as a child, and never thought of her as a grandmother. Her sister was my grandmother by virtue of adopting my mother as an infant. I don't know the whole story, but the funeral illuminated some pieces of it for me, like she was so guilt-ridden about giving up my mother that she adopted two other kids later in life, was involved in foster care, and worked in a nursery. In my family's typical style, she spent a lifetime of atonement and martyrdom trying to undo one mistake - to regain the family's love, perhaps, or maybe to buy her way back into heaven. Don't know the whole story, or her reasons, but it's the kind of thing you see in my family. It was familiar, and, hearing the stories, I felt that I knew her.

For example, I felt that it was my duty to brave the weather to be with my family through this, whether or not I got killed on the road in the process. That kind of foolishness is just the thing someone in my family would do.

I had confidence enough in my road-mojo to believe I could handle the trip, and so I handled it, with nary a slide or near-collision along the way. I was stuck at about 40, sometimes a little less, for about a third of the trip, feeling my tires start to show early signs of slippage if I went any faster. There was no one else in the car, so I had no distractions, and didn't fall into the trap of second-guessing myself for the safety of loved ones. The only problem with the trip was that the extra concentration needed to feel the tires caused me to lose focus on the audiobook I was listening to, I had to keep rewinding it back a minute or two to hear what I missed. It makes the story much less enchanting if you have to do that too much.

Plus the story is part of a series of letdowns I'm slogging my way through: Sandworms of Dune. I am a huge Dune fan, and I typically list "Heretics of Dune" as my favorite book. Heretics describes the encroaching insanity of the Bene Gesserit, their struggle to deal with returning peoples from The Scattering, updated Face Dancers, Sheeana (the girl who controls sandworms), and a description of what an Axlotl tank actually is -- hee hee.

Anyway, Frank Herbert's son discovered some notes his dad left about continuing the series, and got together with another sci-fi author and wrote a bunch of prequel novels and post-Chapterhouse novels. I didn't like them, but I kept reading them anyway, struggling to keep an open mind... this reminds me of an anecdote:

Back when I gave blood to the Red Cross regularly, before a series of poorly trained nurses butchered my veins too much to give without getting ill or having several days worth of pain, I kept an appointment and noticed a scared girl sitting across from me with some of her friends. She had intended to donate, but was squeemish about it, came close to feinting (which a few people do when they see or think about blood). I staged a subtle intervention to help her out. I saw that she had one of the Dune prequel novels with her (House Atreides, perhaps), and as the nurse was having her ball her fist be squeezing a rubber toy, I struck up a conversation with about Dune.

She had been roped into reading it by one of the friends she was with. Said friend was adamant that the writing of Brian Herbert and Kevin Anderson were *exactly* like Frank's work, and had a little geeky fit about it right then and there. It's nothing of the kind, of course, but I kept my opinion to myself and kept talking to her in a calm voice, eliciting both opinions and flirtiness out of her. When we were done talking, her bag of blood was half full, and she didn't remember the nurse inserting the needle. That was possibly my best work at distraction.

Point being there are fanboys (and girls) that get fooled into believing they're reading something outstanding when they are not. In the case of the new Dune novels, some elements are interesting, but the way Bene Gesserit speak is wrong, there is less and less intelligent reflecting by the characters, and it strays towards space opera. Yet, I've managed to read through five of the new novels, mostly out of nostalgia and to see Frank's outline of the story's continuation. I don't really hate any of it, it's just not Dune.

So Sandworms of Dune was my company on the way down and back, with many short rewinds. I didn't wreck by virtue of my superpowers, and I paid my respects to a very familiar woman who I never knew.

Facebook

Here's my theory about Facebook: The top memes are alcohol and ass-kissing, and the unspoken magnet is fantasizing about people you can't have. For example, there is a high instance of replies to one of my friends by the same married woman, full of standard sycophant language. There are large numbers of pics of friends I have since deleted where they are drunk at parties, and hamming it up for the camera by stressing their faces into various inhuman emotions meant to look cool, or to look like they are having fun.

It started bugging me, and I decided to be petty. I went on a rampage deleting apps, quiz results, my comments on people's walls, pictures and videos I had posted, and removing people from my friends list that were not truly friends. This included people I had vague curiosity about and was stalking, people I had only met a couple times, and, sadly, people I was acquainted with in school and had no animosity towards, many of them interesting and world-travelers, posting pics and commentary about their journeys. They were the exceptions to the madness.

Maybe it was wrong of me to unfriend you, Terry, Ann, Bert, JJ, Seth, Andrea, as you had interesting stuff to say that I enjoyed looking at. But honestly, were we friends? You are Bill's friends, and he, and the AP, are our only connection. Our relationships probably wouldn't have deepened into something meaningful by virtue of Facebook. You were "interesting people I know", which maybe should have it's own category, maybe not. Is there such a thing as "cool by proxy"? Does knowing cool people make me cool? Finally, am I online to try to look cool? Don't know. I know I like to write, and I know I like to write about people I love. If that gets me a circle of sycophants, but experience tells me it won't.

So, hey, I wouldn't go delete everything (and everybody) again, but I have no regrets. And if any of you are interested in real friendship and not just "oh, hey Curtis, um.. how's it going? Good...good... Is Bill there?" then friend me, or better yet, send me an email. Or call. Or just come over. My door is always open, and my dog doesn't bite. Come on in and make yourself at home. And if you cook my food, make enough for everyone, and leave a note explaining what the hell happened if you leave before I get home, that'd be nice, too.

Anyway, so I purged, and then started over slowly by posting a single picture of Scout, and I turned the description into a small blog entry, as the UI just let me keep typing. The result appealed to me, people could stumble across a big story where they expect a quick description to be. So I uploaded a few more pictures, and went on at length about each of them, all about Stacey, and Scout, and Liberty, and how much I love all three of them. I re-added basic info to my purged profile, replied to some of my friends' notes, posted a couple status changes.

Not much action on any of it, except from the people I'm already close to... the way it should be. I don't expect much commentary on me doting on my family - in fact, 9 years of writing this blog (and it's predecessor) has taught me that family diaries don't attract fanfare. And yet, I feel good writing about the people I love, so I'll keep doing that.