Jeff Duntemann's Contrapositive Diary Rotating Header Image


Wow. Somehow it got to be a whole new year when I wasn’t quite looking. I’m not unhappy to be shut of 2013, and as usual, I have high hopes for this year to be better. The last of our parents has been released from her suffering, and while I miss them all (especially my father, who died 36 years ago) my idiosyncratic understanding of Catholic theology suggests that they’re all in better shape than I am right now.

Which isn’t to say I’m in bad shape. I had a couple of health problems this year, but nothing horrible. I’ve been able to get my abdominal fat down to almost nothing, and weigh just eight pounds more than I did when I was 24. It still puzzles me just a bit, but I lost that weight by eating more fat. I’ll tell you with confidence that butter makes almost everything taste better except corn flakes.

I scored an interesting if slightly peculiar writing gig this year. It’s been an immense amount of work, not so much in the writing as in the learning. I’ve never done a book–or part of one–with this broad a scope. I’ve touched on a lot of technologies in my career, but touching isn’t understanding, and understanding is the critical path to explaining. I’ve written code in Python and C and ARMv6 assembly. I practically buried myself in ARM doc for most of two months. That felt good in the way you feel good after walking fifteen miles…once you’ve allowed three or four days for the smoke to clear. I now know a great deal more about virtual memory, cache, and memory management units than I might have just touching on things in my usual fashion. Curiosity is an itch. Autodidaction is a systematic itch. And to be systematic, you need deadlines. Trust me on that.

No, I still can’t tell you about the book. It’s going to be late for reasons that aren’t clear even to me. When the embargo breaks, you’ll hear it whereverthehell you are, whether you have an Internet connection or not.

Every year has some bummers. The ACA did us out of a health insurance plan that we liked, but at least in our case it wasn’t cancelled on the spot. We have some time to figure out where we can get a comparable plan, if one exists. (One may not.) It could end up costing us a quarter of our income or more, and we may lose relationships with physicians we’ve known for ten years. I’ll just be called evil for complaining, so I won’t. Anger is the sign of a weak mind, after all. I think one of my correspondents whose insurance was cancelled without warning summed it up in an interesting way: “I’m not going to get angry. I’m going to get even.”

It’s snowing like hell as I write. I would have posted a photo, but as most of you are staring out the window at snow this week (in some places a great deal of it) I doubt it would have been especially interesting. Besides, a couple of hours ago, I could have just said: Imagine yourself inside a ping-pong ball. Open your eyes. In truth, the weather hasn’t been all that bad. The global climate, in fact, has been remarkably benign considering all the dire predictions of the past ten or twelve years, at least once you look at actual stats and not anecdotes or GIGO models. Science works. Back in 2007, Al Gore himself told us that we would have an ice-free arctic by 2013. (Then again, he also said that a couple of kilometers under our feet it was millions of degrees…talk about global warming!) I love the scientific method. You predict, you test, and then you learn something. Sure, I believe in global warming. I’m still unconvinced that it’s entirely a bad thing. (I remember the ’70s. I also remember Arizona.)

I’ve also been doing some experimental research on the psychology of people who jump up and start frothing at the mouth like maniacs the instant they read something somewhere (anywhere!) that conflicts with their tribe’s narrative. That research is ongoing.

I’ve discovered a lot of good things, albeit small ones: Stilton cheese pairs with Middle Sister Rebel Red. Who knew? Python is much better than I remember it, TCL, alas, much worse. And Tkinter, wow. You’re not going to spin a GUI that fast or that easily in C. Green Mountain Coffee Island Coconut beats all, at least all you can get in a K-cup. Carol and I are dunking good bread in good olive oil again, now that Venice Olive Oil Company has a retail shop in Colorado Springs.

Time to go up and start cooking supper. We’re out of egg nog but my Lionel trains are still running. I don’t care if it looks like a ping-pong ball outside. I have my wife, my dogs, my junkbox, and a head that still works more or less as intended. Happy new year to all. Life is good, and getting better. Trust me on that too.


  1. You, sir, are patient-zero in an epidemic of infectious optimism. 🙂

    I’m not sure that anger, in and of itself, is a bad thing. It has its uses, when used ethically in small doses, precisely controlled, and for a damn good reason. /Chronic/ anger is a mental illness. When directed at oneself, according to research I’ve read (and cannot now point to), it’s the mechanism of depression. Sadly, it is in some people’s best interests to keep the population at large mad-as-hell-not-going-to-take-it-anymore. Calm, rational people are much harder to predict and control than angry mobs.

    Sorry to hear the ACA messed up your health insurance. That certainly wasn’t my experience with it. It basically cut my insurance bill in half for better coverage with the same medicos. Have you looked at the exchange?

    Anyway. Happy New Year, and I’ll see you in person hopefully next week at this time.


    1. Doing that now. The non-obvious hazard on the exchanges (and probably elsewhere) is that some policies are cheaper because they offer a very restricted network. We have the disadvantage of being in our 60s, which is a demographic that nobody wants. I’m guessing we will have to pay almost $20,000 a year now for what we had before. I’m also researching DPC and catastrophic coverage, which takes advantage of a loophole in the law that few people know about. It’s a huge mess, especially for older people.

      There are people who will give up anything but their tribe and their anger. Those are the ones I’m talking about, and that’s the psychology that I’m striving to understand.

  2. Bob Fegert says:

    Python, C and ARMv6 assembly… sounds like you are talking Raspberry Pi book there 🙂

    Python is fast and painless…bothers me a bit to use an interpreted language though. The last time I used an interpreted language was in the early 80’s.

    1. I think I mentioned at some point that I was indeed working on a Raspberry Pi book, though I’ve been asked by the publisher not to talk details until the book is announced. But, well, yeah.

      I was hoping that some implementation of Python would have a jitter, but as close as we come is Pypy or Jython. Jython compiles to JVM bytecode, which the JVM jitter then handles as though it were conventional Java. The Pypy JIT compiles to its own bytecode, which is then interpreted. It’s tough to make a dynamically typed language compilable, and people who demand a compiled Python are being a little unfair. It’s a good teaching language and a good lashup or prototyping language, especially once you get good at Tkinter. But for optimized native code, well, I go back to Pascal, especially now that Lazarus actually works.

      1. Tom Roderick says:

        I got a RPi just before Christmas, but have not even had time to take it out of the box yet due to the normal rush of Christmas plus some other issues. With some luck I may be able to get it powered up before spring or your book — whichever comes first! Let us know when we can pre-order!

        Not much snow down south here, but single digit temperatures in the morning and wind chills a bit below that!

        1. Whatever you do, make sure you have a stiff and accurate 5V supply. There is a well-known weirdness stemming from a weak rail that makes your keyboard stutter almost endlessly. I use a gutsy powered hub to power the board and everything that plugs into it. I’d post the drawing I did of a reliable RPi setup, but it’s going into the book.

          And I think that the book might not be as useful to you as you think. Will explain when I can.

      2. snorkel says:

        Lazarus rocks 🙂

        1. It does indeed. Better yet, it doesn’t cost $1000+. That matters to a lot of people, especially those who are still learning programming, and they continue to be my major audience.

  3. Steve Stroh says:

    I thought I had made an intuitive leap, that between the demanded secrecy that you’re working under, and Raspberry Pi, you were working on the documentation for, or a training guide for a Heathkit project by the resurrected Heathkit, who have an unusual penchant for secrecy and intrigue.

    1. Boy, writing a Heathkit manual; now that would be a helluva tech writing gig. But no, what I’m doing is part of an ambitious book on the Raspberry Pi. It’s so ambitious it’s wearing me out, but in a good way. Lord knows I’ve learned a thing or three (thousand.) But you’re right about the new Heathkit: Their FAQ doesn’t reveal much about what they’re up to…which does make me worry a little that they themselves don’t know (yet) what they’re up to.

      1. Bob Fegert says:

        It’s not too difficult to write a small operating system for the Pi.
        (Maybe that’s why you are heavily into ARM asm)

        Wouldn’t Lazarus on the Pi would be very cool.

        I need to order some new 512mb Pi’s as mine are all 256mb units 🙁

        I miss the old Heathkit… I remember how as a kid I loved to read through the catalogs. Built a HotWater101 and it actually worked first time.

        1. Lazarus can be had for the RPi, as a binary. I’ve written a fair bit of code on it. Here’s the place to go for the full scoop:

          It’s not the latest release, but I’ve had no trouble with crashes or bugs.

          1. Bob Fegert says:

            Thanks Jeff!

        2. Erbo says:

          There is a small but thriving community of “bare metal” hackers on the RPi. I’ve been working on a “research” OS for it for awhile, it’s just gotten bogged down on details of memory management. (That’s something you kind of have to get right in any OS; that’s the #1 resource that an OS has to manage effectively.) I may put that project on hold for awhile, as I have another (unrelated) idea that I really should work on more urgently.

          1. Memory management is a subtle and almighty important business. I wrote the chapter on it, but I freely admit that everything I know I learned from Eben Upton!

Leave a Reply

Your email address will not be published. Required fields are marked *