Month: September 2012

  • Modern Dataflow Frameworks Wanted

    Dataflow analysis, or static analysis, is a way to compute properties that hold over all possible executions of a program. For example, if a compiler can conclude that an expression always evaluates to the value 5, this fact can be used to avoid computing the expression at runtime. The math behind dataflow analysis is probably…

  • Capitol Reef Rock Art

    Last weekend we spent a day poking around Pleasant Creek Canyon in Capitol Reef National Park, which contains a permanent stream and a lot of rock art. The art was left by the Fremont people, who lived in the area until about 700 years ago; it isn’t clear why they left (or died out) but…

  • Book Review: The Shadow Scholar

    Paying a professional to write an essay is probably one of the safest ways for a student to cheat, assuming the paid-for essay is not itself plagiarized. The premise of Shadow Scholar is that plenty of students are willing to pay for this kind of service and Tomar was happy to provide it—culminating in a…

  • Certifying Compilers Using Random Testing

    Before a tool such as a compiler is used as a critical component in an important software project, we’d like to know that the tool is suitable for its intended use. This is particularly important for embedded systems where the compiler is unlikely to be as thoroughly tested as a desktop compiler and where the…

  • What’s Operating Systems Research About?

    The other day at lunch I tried to explain to Suresh what operating systems research is all about, which got me thinking about this subject. As a quick glace at the OSDI 2012 program will confirm, the obvious answer “it’s about building operating systems” no longer applies, if it ever did. In fact, the trend away from…

  • A Utah Salmon Run

    Although it is apparently well-known, I only recently learned that several streams leading to reservoirs in Utah have salmon runs. I hadn’t even realized that salmon could spend their entire lives in fresh water. The kokanee salmon were introduced early in the 20th century and have thrived. Last Saturday, Sarah was out of town and the…

  • ARM Math Quirks on Raspberry Pi

    Embedded processors can be relied upon to be a little quirky. Lately I’ve been playing around with the Raspberry Pi’s BCM2835 processor, which is based on the ARM1176JZF-S core. The “J” stands for Jazelle, a module that permits this processor to execute Java bytecodes directly. As far as I know there’s no open source support…

  • Blogspam Poems

    These are unedited excerpts from blogspam that I’ve received over the past few days. Sometimes it resembles a koan: s other words, how do you try to look for blogging that suit a few things i prefer to found out about? Truly does virtually anyone learn how to BROWSE through blogging by simply issue or…

  • Thoughts on Embedded Development Boards

    An embedded development board is an off-the-shelf part that includes a microcontroller and some peripherals, mounted on a PCB. It tries to not get in the way of whatever you want to do, but instead makes it easy to start writing software and attaching hardware. Some boards even include a bit of prototyping space. The…

  • High-Resolution Timing on the Raspberry Pi

    Just to be clear, this post is about measuring the times at which events happen. Making things happen at specific times is a completely separate (and much harder) problem. The clock_gettime() function (under Raspbian) gives results with only microsecond resolution and also requires almost a microsecond to execute. This isn’t very helpful when trying to…