Behavior reproduction is a subroutine during debugging and program understanding tasks, but current debugging tools do not directly support this subroutine. This is a problem when debugging today's complex, interactive, and nondeterministic web applications. The Timelapse project implements deterministic record/replay for web applications. Developers can create an exact recording of an application's execution, and then use a new developer tool to replay and inspect the recording at will. During replay, developers can use existing tools like breakpoints, element inspector, and console to understand what the program did. Program recordings can also be saved and shared amongst Timelapse-equipped browsers.
Timelapse is currently under development. I am
seeking undergraduates looking to do undergrad research to improve the
state of the art in developer tools. Ideally, you have some experience
with web programming, and are interested in HCI and/or Software Engineering.
Contact me for
Timelapse currently extends the debugger tools and runtime of the WebKit platform. More information is available on the Timelapse project page.
I helped build C3, an experimental HTML platform for web-related research, during an internship at Microsoft Research. C3 is built from the ground-up for flexibility: it is written in managed C#, it generalizes several existing extension mechanisms and adds new extension points in a systematic way. Several architectural features encourage modularity and experimentation.