Month: July 2010

  • A Guide to Undefined Behavior in C and C++, Part 3

    Also see Part 1 and Part 2. A C or C++ implementation must perform side effecting operations in program order. For example, if a program executes these lines of code: printf (“Hello\n”) printf (“world.\n”); It is impermissible for the implementation to print: world. Hello This is obvious, but keep in mind that other things your…

  • Borah Peak in 30 Hours

    My colleague Dave Hanscom wanted to climb Borah Peak, Idaho’s 12,668′ high point. He had climbed this mountain once before and I’d barely even heard of it. We left Salt Lake City around 1pm on Tuesday of this week. The drive up to Mackay, ID took 4.5 hours and is classic intermountain west: wide, dry…

  • Running an Electronic Program Committee Meeting

    Computer science — at least in the areas that I work in — is conference-driven. Since journals go unread, it’s important that conference program committees make good decisions about which papers to accept. The established way to do this is to hold a program committee (PC) meeting: the entire committee holes up in a highly…

  • Is Attending Meetings a Signaling Behavior?

    Humans and other animals spend a lot of time engaging in signaling behaviors: dressing or acting in certain ways in order to send signals to others. Some signals — a peacock’s tail or a Ferrari — are expensive precisely to show that the signaling organism can afford the cost of sending the signal. Signaling can…

  • A Guide to Undefined Behavior in C and C++, Part 2

    Also see Part 1 and Part 3. When tools like the bounds checking GCC, Purify, Valgrind, etc. first showed up, it was interesting to run a random UNIX utility under them. The output of the checker showed that these utility programs, despite working perfectly well, executed a ton of memory safety errors such as use…

  • Red Baldy

    People following the “outdoors” thread on this blog will have noticed that Bill and I failed to summit on Mount Baker and also on White Baldy this year already. I’m not all about summiting, but this got on my nerves a little. Yesterday I decided to climb Red Baldy, an 11,000′ neighbor to White Baldy.…

  • Why Would Researchers Oppose Open Access?

    Last week I started sort of a relaxed flame war with other members of the steering committee for an ACM conference on the subject of open access to the proceedings. “Open access” would mean that anyone could download the proceedings. The current situation is slightly different: Often, individual papers are available on authors’ home pages.…

  • Grandview Peak

    [nggallery id=23] Grandview Peak, at 9410′, is the highest point in Salt Lake City. Even so, it’s a long way from anywhere and no trail goes to its summit. Over the course of four trips to Grandview I’ve yet to see another person within two miles of the top (not counting whoever I’m hiking with,…

  • A Guide to Undefined Behavior in C and C++, Part 1

    Also see Part 2 and Part 3. Programming languages typically make a distinction between normal program actions and erroneous actions. For Turing-complete languages we cannot reliably decide offline whether a program has the potential to execute an error; we have to just run it and see. In a safe programming language, errors are trapped as…

  • How to Debug

    One of the painful parts of teaching a lab-based embedded systems course is that over and over I have to watch a team with a relatively simple bug in their code, but who is trying to fix it by repeatedly making random changes. Generally they start with code that’s pretty close to working and break…