-
Academic Bug-Finding Projects in the Long Run
A number of computer science researchers, including me, have made careers out of creating tools that automate, at least partially, the process of finding bugs in computer programs. Recent work like this can be found in almost any good systemsy conference proceedings such as SOSP, OSDI, ASPLOS, ICSE, or PLDI. Examples go back many years,…
-
Udacity Visit
Yesterday I took a day trip to Palo Alto to visit Udacity where I’m getting ready to teach a course on software testing. The goal was to become familiar with the recording setup, hash out any infrastructure issues, and try to refine my course content–which right now is just a collection of rough notes. Originally I had…
-
Wanted: Epitaphs for Hot Topics
Any given research community always has a few hot topics that attract an inordinate number of paper submissions. Sometimes these are flashes in the pan, other times they mature into full-fledged areas having their own workshops and such — but most often they endure for a few years, result in a pile of PhDs, and…
-
Proposal for Automated Compiler Bug Reports
[Yesterday I submitted a proposal to Google for a modest amount of money to work on turning large random programs that expose compiler flaws into concise bug reports. Below is a transcription that is mostly faithful (citations are omitted and I changed the example bug report from a floating figure into inline text). Feedback is…
-
Quality Not Quantity?
The perverse incentives for academics to maximize publication and citation counts, as opposed to maximizing the quality and impact of the underlying research, are well-known. Stan Trimble’s recent letter to Nature suggests a partial solution: academic institutions should limit the number of publications that are part of a tenure or promotion case. This is simple…
-
Benchmarking Short Codes on Modern Processors
Around 15 years ago, as a newish graduate student, I got access to a Pentium-based Linux machine. One of the coolest things about this machine was the new RDTSC instruction that measured the number of clock ticks since the processor had been reset. This could be used to directly observe cache misses, branch mispredictions, and…
-
Taking Grants for Granted
Proposal-writing talent is unevenly distributed among researchers, and so is grant money. Furthermore, there are strong positive feedback loops where grant money leads to more publications, bigger group size, and increased reputation, all of which make it easier to get subsequent awards. It struck me, then, while skimming the list of Google Research Award winners…
-
Independence in N-Version Programming
N-version programming is a way to reduce the impact of software bugs by independently implementing the same specification N times, running the implementations in parallel, and using voting to heuristically choose the right answer. A key weakness of N-version programming is that the increased reliability is predicated on faults occurring independently. As Knight and Leveson…
-
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…