Brian Burg

Graduate Student
Computer Science and Engineering
University of Washington

last-name@cs.washington.edu

Current Research

Timelapse – interactive record/replay for web applications

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 details.

Timelapse currently extends the debugger tools and runtime of the WebKit platform. More information is available on the Timelapse project page.

Collaborative Optimization

Recent advances in just-in-time compilation for JavaScript have made it possible to deploy large-scale applications using the HTML 5 platform. Unfortunately, web applications are still orders of magnitude slower than native applications. We propose collaborative optimization as a way to transparently improve performance by harnessing the "collective knowledge" about how individual web applications run. In essence, we extend traditional profile-guided optimization to collect profiles over many users, summarize profiles at web-scale, and then distribute optimization hints to any users that are able to take advantage of such hints.

Previous Research

Dynamics of JavaScript

The DynJS project analyzes the dynamic (runtime) behavior of JavaScript in an effort to better quantify how the language is used. To date, we have focused on aspects of dynamicity in general (PLDI 2010), as well as uses of eval specificially (ECOOP 2011).

C3 – An Extensible Research Browser

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.

Computer Science and Engineering at the University of Washington.
© 2011–2012 Brian Burg and the University of Washington. All Rights Reserved.