UPenn Calendar Fixer-upper

Penn has a neat university-wide event calendar which is useful for keeping track of events in my own and other departments.  Even better, the Penn calendar has a fancy export web service that lets you export filtered information (such as events for a specific department, or for a specific date range) to a variety of different formats (such as XML or iCal).  I like the iCal format because I can import the iCal URL into Google Calendar and everything shows up in one place automatically. For reference, the (underdocumented) magic incantation to get an iCal feed of Electrical & Systems Engineering events is http://www.upenn.edu/calendar-export/?school=4&owner=115&showndays=200&type=ical2.

Continue reading


Running a shell script with a timeout

In my line of work, deadlock is always close at hand. Running multithreaded programs through prototype compilers, runtime systems, or simulators (and sometimes all three!), there is always the chance that a bug will trigger a deadlock in some layer of the system. There’s nothing like setting off a bunch of experiments, going to sleep, and waking up the next morning to find that the first experiment (or, inevitably, the experiment that ran right after I stopped checking on things) deadlocked and prevented everything else from running. After being burned by this particular variant of Murphy’s Law countless times, I learned to always run benchmarks with a hard timeout. Knowing that my experiments won’t hang forever is honestly right up there with fancy foam mattresses in terms of helping me sleep at night. Continue reading

New Computer Architecture/Compilers Conference Map

The Computer Architecture/Compilers Conference Map is an indispensable tool in designing a research agenda that has high impact (on your/your adviser’s travel budget). It’s a Google Maps mash-up that plots upcoming conference deadlines on a world map, so you can decide where you’d like to travel and then go about doing some research to get you there. Ah, the scientific method at work! Continue reading

RCDC data posted

Just a small note: we’ve posted the data from the RCDC paper on Tableau Public.  Tableau is a Seattle start-up with an awesome data visualization tool that I currently use for all my data graphing needs.  I’ve found that it lets me get to that magical place of data analysis where I can answer questions almost as quickly as I can ask (a future version of Tableau will likely answer questions faster than I can ask, and then I will be out of a job).  Tableau Public provides free data hosting, and a nice interactive web interface to the data. Continue reading

“jumpy” jQuery slide animations

I recently decided to add paper abstracts to my academic website, to allow people to get a quick overview of a paper without downloading the whole thing.  I wanted these abstracts to be hidden at first, and then revealed by clicking on a link.  The perfect excuse to dabble in a bit of Javascript, and whip something up in an hour or two, right?

With Google-given example code I was indeed able to get something basic working pretty quickly that made the entire abstract either visible or not, by twiddling the display CSS property.  Then I started thinking: what would it take to have the abstract appear with a “slide in” animation, instead of just suddenly becoming visible?

Well, at least I had good intentions to start. Continue reading

installing ubuntu karmic server on bochs

I recently decided to try using the x86 emulator bochs for some of my architecture research, as bochs seems to have a well-structured code base highly amenable to hacking.  I also considered using qemu, but qemu’s design was ultimately not a great fit for the do-1-insn-at-a-time model of an architecture simulator.  Instead, qemu is designed to run a bunch of instructions (really fast) instead of stopping precisely after each one.  For the record, I was using bochs from CVS as of 2 Feb 2010 (bochs 2.4.2 was the latest release at the time) and qemu 0.12.2.

Next came the supposedly easy part: create a disk image with Linux on it (I wanted to use Ubuntu Karmic Server) and start simulating. Continue reading