Jeff Duntemann's Contrapositive Diary Rotating Header Image

Daybook

Descriptions of what I did recently; what most people think of when they imagine a “diary entry.”

Ncurses! Firehosed Again!

I’ve mentioned here that I’ve got a contract and have begun work on the third edition of my book Assembly Language Step By Step. The second edition was written almost exactly ten years ago, and I had mostly given up on the book as obsolete and out of print forever. My publisher most sensibly wants me to get rid of all the DOS material and rewrite the book entirely for Linux in general, and Ubuntu Linux for the sake of the screen shots. The second edition did address Linux assembly with NASM, but almost as an afterthought, having first taught the concepts of assembly using DOS as a tutorial platform.

So I got to work. And as I soon discovered, whew! A lot of things have changed in the last ten years. Ubuntu didn’t exist, and the notion of not having root at all would have been thought absurd in most Linux geek circles. But so it is, and I’ve had to become intimately familiar with sudo in all its forms and wrappers. Ten years ago, I just worked in root and was careful–if you were going to work in assembly, there was really no other way.

KDE was brand-new in 1999, and GNOME wasn’t even in general release. I worked in the console and mostly hated it, and when the book was done, I mostly forgot it. That’s easy enough to do across ten very busy years, and the console does not help you remember anything. One way to look at a GUI is as graphical short-term memory reminding you what options exist and what their parameters are, just in case you don’t use a command often enough for it to rise above the brain sludge in your head. Essentially all of the work I’ve done in Linux in the ensuing ten years has been in the GUI desktops, and it’s all been user stuff, largely to get a sense for how readily Linux (Ubuntu especially) might replace Windows. On the programming side I’ve played mostly with Gambas and Lazarus, which correspond (roughly) to VB and Delphi.

Faced with a console again, I remembered about four commands: ls, cd, pwd, and cat. I remembered that ./ specifies the working directory. I knew that there was a way to add the working directory to the search path, but I had to look it up. Fainter still were memories of console control codes: ESC [2J…or was it ESC [1J…or ESC [1H? More looking up. More printing of Web pages, more sitting in my big chair, drinking from an increasingly familiar firehose. Eight years or so ago, I got ncurses installed on the Xeon under Red Hat and figured out how to call it from NASM. Alas, I cannot find any least traces of my playing-around code, and so I have to learn it all over again, and re-create the nascent example programs I had written against the possibility that I might revise the book someday. Someday didn’t come until I was certain that it never would. Then…wham!

Someday is here.

I’m not adding material to the end of the book, except a chapter section on how to call ncurses. The first three chapters won’t change much either. (Foobidity!) Mostly I’m rewriting the initial steps in actual coding, and the distressing thing is that my elaborate memory-mapped text output library, which taught so much of basic assembly so well, simply won’t work in protected mode. So I need to look at what will demonstrate the same principles and not talk to video memory. A CPUID utility suggests itself, so I’ve connected the CPUID instruction to the firehose.

And I’m writing C code again. God help us, I feel like I want to wash my hands every fifteen lines–but that’s just the nature of the job. Like I’ve said many times, when you work outside your preferences you broaden your horizons. This doesn’t mean you shouldn’t bring soap. (At least I’ve got the firehose…)

Mission of Gravatar

One thing I didn’t quite figure out with WordPress before New Year’s Day was how to upload a userpic for myself. It’s not a critical issue, and I kept bumping it to the back of the “look into this” list–until this morning, when I realized that a commenter had a userpic. This is not LiveJournal, where thousands of people have their accounts all on one server and userpics are stored centrally. This is my own private instance of WordPress, installed on my own hosting service, with no blogs on it but mine. So wherethehell did that userpic come from? Shortly thereafter, Julian Bucknall showed up in a comment, with his own userpic. At this point, I quit gnashing my teeth at Ubuntu for being atavistic (why isn’t there a dialog in the admin menu tree somewhere for setting a search path? Huh? Huh? Why?) and did some digging.

Of course, something interesting is going on here. There’s a Web service called Gravatar, which maintains small images (either photos or drawn art) intended to be used as personal avatars on blog comments and discussion forums. Each image is keyed by an MD5 hash of the image owner’s email address. Blog or forum software (anything, actually) simply makes a request to gravatar.com with the hash, and it gets back an 80X80 image.

This works great–when it works, which is most but not all of the time.

I’m still scratching my head here. I can see my gravatar image on Contra from every browser in the house except the instance of Firefox 2 here on my main machine. IE6 on this box shows it. FF2 and all IEs V6 and after show it. But FF2 on this box won’t–except in the “Recent Comments” pane of the dashboard. Then, sure. Gotta make it complicated.

This does not compute. It’s the same damned version of FF I have running everywhere in the house. (2.0.0.20) I’m not big on plug-ins, and there’s nothing peculiar about this install of XP. I do not see why viewing WordPress on this instance of FireFox would be any different from viewing WordPress with any other instance of Firefox–and it does see other people’s gravatars over their comments. Just not mine.

Still stumped, and I’m posting this to see if any of you do not see my picture in the avatar block of any of my comments here on WordPress. Suggestions, of course, are welcome. I won’t croak if I can’t see my own gravatar as long as everybody else can, but things like this give cloud computing a bad name.

One final note, which boggles this old mind: Gravatar has a rating system. You can have G, PG, R, and X-rated gravatars. You heard me: X-rated gravatars. In an 80-pixel by 80-pixel block. Damn. I can’t have a GUI dialog to set the Linux search path, and you can have an X-rated gravatar. Somebody’s getting ripped here. Deciding who I leave as an exercise for the reader.

My 2009 Plan File

2008 was Not My Favorite Year. Too many deaths, too many illnesses, too many trips to the dentist, and too many financial collapses. I have high hopes for 2009, but that’s part & parcel of being a Pollyanic Old Catholic. Hey, when you’re down this far, every direction is up, right?

So in this, the last (I sincerely hope) Contra entry that I will ever edit by hand, I present my plan file for the coming year:

  • Get Contra settled in to its new home on contrapositivediary.com under the WordPress platform. Easy one, though we’ll know more tomorrow.
  • Begin and complete the rewrite of Assembly Language Step By Step for the Third Edition, and hopefully see it into print by the spring of 2010. This is a big-un, and the top priority, as there is considerable money riding on it.
  • Finish and publish Cold Hands and Other Stories, my second SF collection. Richard Bartrop has already sent me sketches for the cover art, and they look great. As soon as I can get “Drumlin Wheel” completed and cleaned up, I have enough material for a book, and after that, finishing it the book is just a few days of focused work.
  • Finish Old Catholics, or at least get another 50,000 words into it. (I have about 27,000 words down now.) This has been fun, and it’s certainly the quirkiest thing I’ve ever attempted to write.
  • Build a couple of radios. I have the schematic for John Baumann KB7NRN’s 2-tube FM BCB receiver, and that’s tops on the list.
  • Get my 40M dipole out of my alarm system’s hair and do some hamming on the low bands.
  • Get a 6M vertical of some sort situated in the attic.
  • Get the last crown installed in my mouth. (This should happen in early February.) That’s the end of a miserably massive piece of oral rehab that begin in January 2008, and (mercifully) this last step involves no cutting.
  • Finish and launch a couple of model rockets with the local club.
  • Read Many Books.
  • Eat Less Sugar. Eat More Meat. Lose More Weight. (More on this shortly.)
  • Enjoy the immediate presence of my wife, my dogs, and this extravagantly beautiful world.

Other things will certainly happen along the way, and maybe half of the above list will not happen, though I have great faith in the second item and complete faith in the last.

As for tonight, well, Carol and I will remain at home, watch a movie, brush dogs, and maybe have a glass of wine. There’s a decent conjunction of the Moon and Venus just after sunset, and I intend to gawk at that a little. Come midnight, I may jump up and yell “Bang!” in honor of fireworks, if I’m still awake. (If I’m not still awake, the kids down on Villegreen will handle it for me, and I’ll be awake one way or another.)

Happy New Year from both of us; like, how hard could that be?

“God Bless All Of You…On The Good Earth”

apollo8sdtampForty years ago, we watched three human beings travel to the Moon. Well, they got there, and took a spin or two around it, and then came home. They didn’t land, but that’s ok. (Gravity wells are a bitch.) We didn’t appreciate at the time what a feat it was, and would not in fact understand the bittersweet truth for many years thereafter: We had a window; it opened, and it closed. It may not open again—but while it was open, we took it.

Nonetheless, that was a Christmas unlike any other. For years afterward I had a poster with the Earth rising over a gray Moon and the inscription: “In the Beginning, God…” It was part of the Christmas Eve reading by Borman, Lovell, and Anders as they circled the Moon, which brought tears to countless eyes (including my own) and continued the movement of my idea of God into the cosmic, far beyond the cartoonish oversimplifications that were taught in Catholic grade school, things that, sadly, still define Christianity in most of the world. God and the universe are far larger and more complex (and wonderful) than we can possibly imagine, but I gave it a good shot, and forty years on I am a different man for it. I require broader perspectives in myself than I otherwise might have been content with, and (more significantly) I challenge all conventional wisdom. That was my biggest Christmas present in 1968.

Carol and I will rejoin her family later today in Crystal Lake (along with Bill and Gretchen and the girls) to have Christmas yet again. (Why do something that good only once?) I leave you for the moment with the conclusion of Apollo 8’s Christmas message:

“And from the crew of Apollo 8, we close with good night, good luck, a Merry Christmas – and God bless all of you, all of you on the good Earth.”

Sliding Into Christmas

I’m not even sure I’ve mentioned that Carol and I are in Chicago for Christmas, though it’s a shorter trip than most and (as always) nothing has happened quite as quickly nor as well as we had hoped. This is worse weather than I’ve seen on a trip here in years: bitter cold followed by three days of more or less continuous precipitation. (As I was saying while shopping the last few days to anyone who would listen: “So much for global warming.” Let’s see if we can make it a meme, or at least a contrarian tagline.)

Yesterday was unusually bad here in Des Plaines. Our condo is only a few minutes from Randhurst Mall, the oldest enclosed mall in the Chicago area and at one point in the mid-60s the second-largest enclosed retail space in the country. So I decided to head up there, hit Borders on the outskirts, and then prowl the mall for some last minute gift ideas in the smaller shops. It took me half an hour to get there in our rented Camry, slipping and sliding down Rand Road at ten to fifteen miles an hour, dodging whackos in their CJs who didn’t seem to grok important things like the reduced coefficient of friction. And when I got there, egad: They had closed the mall three months ago. (One downside to being an out-of-towner is being out of the loop. Hey, you coulda told me about that! This is my hometown! That was my mall! Most of my underwear came from Randhurst when I was a teenager!) When the snow melts (if it ever does) they’re going to tear the mall down and build a “lifestyle center,” which is code these days for “more damfool condos.”

Well, they’re certainly going to tear it down. Whether the condos actually happen or not, we’ll see. In any event, some of the outlying big-box stores were open, and I picked up some odds and ends at Borders and Bed, Bath, & Beyond. Spotted a book I had heard about and meant to grab for some time: Good Calories, Bad Calories by Gary Taubes, (reviewed briefly here) which is a polemical history of the battle over whether fat or carbs make you overweight. You’ve all heard my opinions on that, and with some luck Taubes will have organized the research into a form that I can digest and cite to the carbohydrate deniers when they dive down my throat for eating bacon and eggs regularly and yet having the temerity to weigh less now than I have in 20 years.

I barely got home intact after threading the ice ballet back along Rand Road, and (having nabbed a reasonable night’s sleep) will shortly be headed off to Crystal Lake (a 35-mile slither out Highway 14) to pick up Carol, visit her mom, and then mid-afternoon head back down to Des Plaines for our Polish Vigilia supper at Gretchen’s. Vigilia is Polish for “vigil,” and it’s a Polish custom we observed on Christmas Eve when Gretchen and I were kids. In short, the family gathers for simple foods from the old country (ok, augmented by some odd Americanisms like Hawaiian salad) sweet red wine (the first Gretchen and I had ever had) and a blessing ritual I didn’t appreciate until I was much older: Breaking oplatki (a thin white wafer like Roman Catholic communion hosts) with one another and offering a blessing and a wish for the coming year.

Do read what I wrote back in 2001 about Vigilia and oplatki. It’s as true now as then, especially with our nephews grown men with ladyloves of their own, and Gretchen’s girls becoming interesting individuals in their own right-and at top volume. After a run of years when it seemed like every Christmas there were fewer hands across the table to offer oplatki, life is reasserting itself, and reminding us that renewal happens. Bidden or unbidden, recognized or unrecognized, God is with us, and (as slippery as things get at times) life is good.

Scanning Some Personal History

We live in a wildfire zone, and there’s not much to be done but make it easy to run if we have to. That leaves everything we have to go up in smoke, and while most of it is replaceable, a good deal isn’t. The worst of it is our photo album set and our boxes full of loose photos and slides. I’ve been scanning them as I can, but it’s a slow business and may not be done for a long time.

It has been a good opportunity to look critically at the photos as they come to hand one-by-one, and decide which are worth keeping come hell or high water (or a wall of fire) and which are not. People rarely throw away the bad ones, even when they’re out of focus or virtually identical to three or four others on the roll. I’m so used to nuking lousy digital camera shots that I was surprised that so many bad slides remained in the boxes, including a few that were so out of focus or exposure that it was difficult to tell precisely what they were. I guess I figured that they were paid for and therefore could not be wasted, like the last few ounces of a huge pile of heavily spiced pasta that you can’t bring yourself to eat but can’t bear to put down the disposal.

In going through a box of slides, I realized that I was only scanning about a third of them. The rest were bracketed attempts at excellence that missed the mark or just plain booboos. (Having a small light table to preview the slides certainly helped.)  I had to smile when I realized that I only keep about a third of my digital camera photos too, depending on what they are. I do better at things that sit stock still than I do at QBit and Aero tearing around the house or trying to do tricks.

So in fits and starts, Carol and I are preserving an era of our history together that isn’t in the photo albums, because (for the first three or four years) we took slides almost exclusively. It’s startling to see myself as an adult with hair, given that it’s now a small and shrinking percentage of my life, basically, 1970-1985. (The photo here is from the backyard of our first house in Chicago, the summer of 1978.)

Sunrise Surreality

When the sun comes up, the eastern horizon is sometimes clear while the rest of the sky is overcast. This can make for some interesting color effects, especially on the tall pines immediately across the street from us. The photo here was snapped perhaps five minutes after the sun broke an unusually clear horizon.

The Future of Contra

Earlier this afternoon, I finally did something I’d been meaning to do for literally years: Configure a dedicated domain for ContraPositive Diary. It’s done, and I’ve pointed contrapositivediary.com to the WordPress instance I created back in September on Fused Network. I’m still learning it, testing it and interviewing widgets and plug-ins, so although the domain and the blog are now live, there’s still not much to see.

That will change on January 1. On that day I will stop editing Contra entries by hand (as I’ve done since 1998) and begin using WordPress. Entries from 1998-2008 will remain pure HTML and be accessible as such. I’m going to copy them from duntemann.com over to contrapositivediary.com, but the copies on duntemann.com will remain there until I kill the Sectorlink hosting account and move the domain over to Fused Network. I intend to keep my LiveJournal account, and use the LJXP crossposter plug-in to automatically cross-post anything I post on WordPress to LJ.

There’s a lot of other stuff on duntemann.com that has to go somewhere. The duntemann.com domain is begging for a new index page anyway, and I’m working on how to organize it. I do know that my Maker material on electronics, telescopes, and kites will all be rewritten using CSS and placed under my junkbox.com index. I intend to install a new instance of the Gallery photo manager there, and move the Tech Projects portion of gallery.duntemann.com over to gallery.junkbox.com. Beyond that, well, I won’t know until next year.

Some conceptual issues remain undecided; e.g., should I continue to group short link citations into larger Odd Lots entries, or just post them as I find them as individual entries? The way I do it now is an artifact of how I create Contra entries generally: I keep a text file in a window and add short items to it until I decide it’s time to format them and post them as a group. That becomes unnecessary with WordPress, and I can streamline the whole process by just popping up Semagic (or something like it) and posting them Right Now instead of storing them locally until I have time to format them for uploading.

WordPress itself is an amazing thing. I’m still trying to figure out what all it can do, either by itself or with the jungle of plug-ins you can find for it. What I know it can do is save me time, which seems to be in shorter supply every year, and that, ultimately, is what the whole exercise is about.

A Conjunction, If You Can See It

Carol rode a Canadair regional jet home yesterday, and I am mysteriously a much happier man. (We have not been apart for this long in one chunk since she was in grad school in Minnesota in 1976.) I have not in consequence been much inclined to write on Contra today, but I must mention something that will be worth looking for: A three-way conjunction of Venus, Jupiter, and the crescent Moon that will be potentially visible today and especially tomorrow. See it if you can, in the west just after sunset. Spaceweather has some details. I would have looked tonight but it's sleeting here in Colorado Springs, and I got word from Gretchen that there is considerable sympathy sleet in Chicago this evening as well. But if it's clear where you are tonight or tomorrow (or the day after, for that matter) don't miss it.

For This Beautiful and Extravagant Creation

Thanksgiving Day. Giving thanks is a special case of living mindfully, which is always a good idea, whether or not there's an open manhole a few steps ahead. The older I get, the more mindfully (and thankfully) I try to live, not only because I've discovered so many fascinating things to be mindul of (and thankful for) but also because I don't have an unlimited number of years yet to be mindful.

It is a very good time to be mindful. When I was young I knew what a “water bear” was from crude little drawings in a library book, but now I can see them with electron-microscopic clarity, and understand that surviving from the Cambrian era, well, damn, that can't have been easy. (It's easier to grasp a billion years when you're fifty-six than when you're seven.) And I always thought that barred spiral galaxies were the coolest kinds, but it wasn't until the past few years that the Hubble Space Telescope could show them in a glory that still makes me gasp. There may be better times to live in the future (and I have strong faith that there will be) but there have never been better ones in the past.

This year's Thanksgiving Day is a little more poignant than most. Carol and I have been apart for a month now, and there's nothing to make you feel thankful for something like losing it, even for a little while. (She'll be coming home soon, soon enough that I've begun washing towels, rugs, and the big comforter on our bed. Living with multiple dogs is a grubby business.) And, as I've related privately to some of my online friends, this has been a weirdly grim six weeks in and around my inner circle. The number of deaths, major surgeries, and life-threatening diagnoses among people I care about spiked a couple of weeks ago, and it wasn't just deaths among the old, but among young people in their 30s and 40s with small children at home. Tragedy clusters sometimes. Be thankful in the calm between storms.

I am. For Carol, of course, more than anything else on Earth. For small things (like water bears, galvanized iron pipe fittings and Compactron tubes) and big things (barred spiral galaxies, comets, icebergs) and things distant in time more than space. (Origen, Lady Julian of Norwich, Roger Bacon, the Colossus of Rhodes, glyptodonts.) I am very thankful for my parents, who suffered too much and died too young but never failed me in any way even if they imperfectly understood me, and for people like Aunt Kathleen and Uncle Louie, who seemed to like me more than I sometimes deserved. I am very thankful for my sister Gretchen, she of wry humor and skilled hands, and my cousin Rose, who walked between the railroad tracks with me because that was just how life worked in 1957. I am thankful that my brother-in-law Bill happened to Gretchen when she most needed him, and for the girls they have brought into the world (better late than never!) who are growing up fast and may well live into the 22nd century. I'm thankful for Carol's sister, her mom (and her dad, whom we all miss keenly) and our nephews Matt and Brian, both now men in their own right. Close family ends there, but moving outward the lotus opens up quickly, with cousins and friends and mentors and other people who have changed my life without intending to, nor fully grasping the impact of their kindness and counsel.

I have a private prayer that I say every night, in my last moments of mindfulness before turning out the light, telling Carol that I love her most of all, and stilling the racket in the back of my head:

Lord God, I thank you for letting me live in this time, in this place, in these circumstances, among these good people, and within this beautiful and extravagant creation!

For so it is, and so I do.


In case anyone is wondering, I won't be by myself all day. I'll be having dinner with some folks from the local Bichon Frise club, people who truly have bichons like some people have mice. I'll be able to wrestle with a huge bichon named Jackie Gleason (all 26 pounds of him!) and perhaps get a look at our host's Mog collection. I'm counting the days until Carol comes home, but in the meantime, I'm mindful of the fact that life could be a whole lot worse!