Bio
I am a first second third year graduate student at Berkeley studying
programming systems.
Ras Bodik is my advisor and we work in the Par Lab.
Previously, I was a member of
Brown PLT, participating in several language design,
verification, and security projects with Shriram Krishnamurthi. I have also spent time at a startup, Microsoft Research, Macromedia, Adobe's Advanced Technology Labs, and a commercial radio station.
I'm trying to make the web a better place by improving browsers and what we run in them. Contact for details and drafts about the following:
- Interaction model extraction of web applications. Click streams, transaction streams, control flow analysis, gui model extraction -- whatever you want to call it. We use abstract interpretation for light and precise abstractions without sacrificing recall relative to statistical techniques.
- Object Views: Fine-Grained Sharing in Browsers. Addresses mashup security problems by combining membranes with aspects, yielding both new security mechanisms and abstractions.
- Fast and parallel webpage layout. Optimizing CSS for multicore phones. (draft pdf)
- MSR work over the summer. Browser security.
Papers
Oldies but goodies.
- Leo Meyerovich.
Rethinking Browser Performance.
USENIX ;login:, Aug. 2009
(invited article, pdf)
- Leo Meyerovich, Arjun Guha, Jacob Baskin, Greg Cooper, Michael Greenberg, Aleks Bromfield, Shriram Krishnamurthi.
Flapjax: A Programming Language for Ajax Applications.
OOPSLA 2009
(best student paper, pdf, older draft as Brown TR CS-09-04, try it out!)
- Chris Jones, Rose Liu, Leo Meyerovich, Krste Asanovic, Rastislav Bodik.
Parallelizing the Web Browser.
HotPar '09
(draft pdf)
- Colin Gordon, Leo Meyerovich, Joel Weinberger, and Shriram Krishnamurthi.
Composition with Consistent Updates for Abstract State Machines.
ASM '07
(draft pdf, draft slides)
- Kathi Fisler, Shriram Krishnamurthi, Leo A. Meyerovich, Michael Carl Tschantz.
Verification and Change-Impact Analysis of Access-Control Policies.
ICSE 2005
(pdf, try it out!)
See also The Soundness and Completeness of Margrave with Respect to a Subset of XACML
Michael Matthew Greenberg, Casey Marks, Leo Meyerovich, and Michael Carl Tschantz (pdf)
Never-to-be-published
One measure of research is what you do not write about :) A taste of life at Berkeley and beyond:
- Finding Once-a-Year Concurrency Bugs is Provably Easy: birthday attacks on heisenbugs (proof + talk, 2009)
- automated web gui testing (2008, reenvisioned with the GUISE project). fun hackery: involved a python/MPI multicore cloud layer!
- modern back button: continuation-based web server idea applied to client apps (survey + proposal, 2008)
- web dwarfs: challenge applications for future web browsers and frameworks (2008)
- structural type-feedback: dynamically learning likely javascript object shapes (2007)
- Playing with FIRE: Mixing Functional and Imperative Reactivity in ECMAScript (at Adobe's Advanced Technology Labs, 2007)
- sentence clustering (as opposed to word or phrase, operating at a significantly higher scale; with Kim Burchett and Ryan Tarpine, 2006?)
- DOM-lifting: destructive updates for functional reactive libraries (e.g., what makes Flapjax fast, 2006)
- scale-free process usage in single-user environments (2006?)
- bezier curve flash library (way long ago; new Flash APIs make this partially obsolete)
Presentations
Public or invited talks unless otherwise noted:
- Upcoming: OOPSLA (Flapjax talk and demos, October, 2009)
- Intel Developer Forum: Parallel Browser Algorithms (poster, September, 2009)
- Microsoft Research: Fast Webpage Layout (September, 2009)
- Adobe: Fast Webpage Layout (September, 2009)
- OSQ Retreat: GUISE: Extracting User Control-Flow Graphs from Web Apps (short talk, May, 2009)
- #moz09 (Mozilla): It's the End of the Web as We Know It, and I Feel Fine (invited all-hands talk, April 30, 2009). contact for slides.
- CodeCon 2009: The Parallel Web Browser (biohackers and cypherpunks, April 19th, 2009). pdf slides (but without videos)
- HotPar 2009: The Parallel Web Browser (April, 2009)
- Samsung Research: Parallel Webpage Layout (invited seminar, February, 2009)
- Par Lab Retreat: Parallel Webpage Layout (Berkeley/industry, January, 2009). pdf slides
- Intel Languages Workshop: Update on the Parallel Browser Language (industry, 2008)
- BayFP: Flapjax & FIRE - Evolving a Reactive Web Language (industry, 2008). video!
- OSQ Retreat, Par Lab Retreat: Web Dwarfs (Berkeley/Stanford/industry, 2008)
- #moz08 (Mozilla): Implicitly parallel browser scripting (invited all-hands talk, 2008)
- Adobe: Mixed Imperative and Functional Reactive Programming in Flex and AS3 (research staff review + Flex team talk, 2007)
- Adobe: Flapjax: Functional Reactive Web Programming (Flex team talk, 2006)
Internal Talks
Random fun and controversial talks @ Berkeley not covered by the above:
- Finding Once-a-Year Concurrency Bugs is Provably Easy: birthday attacks on heisenbugs (Par Lab student seminar, February, 2009)
- Spidering Applications (OSQ seminar, 2008)
Some External Presentations by Better Presenters
- Ras Bodik on the parallel browser project: STMCS 2008 keynote, Intel Browser Performance Workshop 2008, ...
- Shriram Krishnamurthi on the Flapjax language: SBLP 2008 keynote, Microsoft Lang.NET Symposium 2006 (in part: video), JAOO 2007, etc.
- Shriram Krishnamurthi on the Margrave tool and query system: a mystery!
Technical Reports
(citations coming...)
- ASM composition + security modeling
- Soundness and completeness of Margrave
- Flapjax thesis and probably some parallel browser things
Awards and Support
Will try to find the correct list, but the browser project is being supported by wonderful folks at Samsung, Nokia, Intel, and Microsoft through direct grants and indirectly through the Par Lab.
- OOPSLA 2009 Best Student Paper Award
- National Science Foundation Graduate Fellowship (NSF GRFP), 2007
- UC Berkeley First Year Fellowship, 2007
- Computer Research Association Outstanding Undergraduate Honorable Mention (CRA), 2007
- Karen. T. Romer Undergraduate Teaching and Research Award (UTRA), 2004
Subreviewer
APLAS 2008, ASPLOS 2008, PPDP 2007
Teaching
Berkeley:
CS164, the undergrad compilers course at Berkeley. Prof. Bodik and I broke course records in class ratings leading back 15 years.
Brown: I was the head teaching assistant for intro. to models of computation (cs51) and intro. programming language theory (cs173), was a regular TA for discrete math (cs22), and wrote lectures and projects for the new systems security course (cs166).
Graduate Coursework
Berkeley: Foundations of Parallel and Distrubted Systems (Algorithms), Highly Productive Parallel Programming Languages, Statistical Learning Theory, Current Berkeley Research in Programming Systems, Design and Analysis of Programming Languages, Applications of Parallel Computers, Advanced Systems and DBs, Web Security.
Brown: Programming Language Semantics, Access Control Models, Statistical Natural Language Processing, Verification of Dynamic Access Control Policies.
My undergraduate coursework was mostly in computer science, math (analytic), and brains (neuro/cogsci), in that order of likeliness.
Collaborators
(chronological)
- Shriram Krishnamurthi (Brown)
- Kathi Fisler (WPI)
- Michael Tschantz (Brown, now @ CMU)
- Michael Greenberg (Brown, now @ U. Penn.)
- Greg Cooper (Brown, now @ Google)
- Arjun Guha (Brown)
- Jacob Baskin (Brown, now @ Google)
- Aleks Bromfield (Brown)
- Joel Weinberger (Brown, now @ Berkeley)
- Colin Gordon (Brown)
- Roger Webster (Adobe's Advanced Technology Labs)
- Ras Bodik (Berkeley)
- Chris Jones (Berkeley, now @ Mozilla)
- Rose Liu (Berkeley)
- Krste Asanovic (Berkeley/ICSI/LBNL)
- Raluca Sauciuc (Berkeley)
- Adrienne Felt (Berkeley)
- Mark Miller (Google)
- Benjamin Livshits (MSR Redmond)
Further Meyerovichs
- Papa Bear discusses quantum and zero temperature physics
- Sister Bear discusses making the world a provably safer place
Code
Parallel Browser Project page
JavaScript/Web Page Membranes Benchmarks will be here soon and the code (or a variant) should appear in Google Caja
GUISE Unfortunately, chances are, unless I know you, I can't release code for these yet.
Flapjax The core is at the main site and GitHub. I whipped up a clean REPL with a slightly modified library as well.
Anything else Ask; I probably have it floating around somewhere.