Leo Meyerovich
San Francisco, California, United States
4K followers
500+ connections
About
Graphistry: We're 100X'ing investigations with graph visualization & graph AI, infused…
Contributions
-
You're overwhelmed with multiple research projects. How can you stay focused and avoid distractions?
Seperate deep work from logistic work. Realistically, only a bit of deep work will get done per day and per week, so the winning task must be carefully planned and protected. Likewise, the rest should be handled, either as soon as it comes in or in bulk blasts. Typically items can be ignored as they aren't truly important, or prioritized for immediate need or unblocking future. Identifying these non-deep-work items, and not letting them take over or blow up other items, is key.
-
Here's how you can effectively secure funding for research projects.
Think about top-of-funnel, progression, and partnering to build your support network: 1. Top-of-funnel: Get out there in scalable ways. 'Build in the open', publish workshop/posters early, write opeds+reviews, and weekly+ post on social media about your progress, interests, and others giving your area momentum. Senior people use LinkedIn (hiring & researching people) and maybe Twitter (niche news). 2. Nurture rapport. Especially via social media, and more hit-and-miss via opeds, panels, etc, sponsors will better understand and trust both you and your mission. Reach out to them to learn 1-1 what they care about. 3. Make relationships 2-way. Regularly check in with senior sponsors so when they see opportunities, they know to help.
Activity
-
🚀 Exciting News: Introducing MARQ1! 🚀 I am proud to share that CSO Group and xAmplify have united to form MARQ1, Australia’s largest home-grown AI…
🚀 Exciting News: Introducing MARQ1! 🚀 I am proud to share that CSO Group and xAmplify have united to form MARQ1, Australia’s largest home-grown AI…
Liked by Leo Meyerovich
-
Large Language Model Agents is the next frontier. Really excited to announce our Berkeley course on LLM Agents, also available for anyone to join as…
Large Language Model Agents is the next frontier. Really excited to announce our Berkeley course on LLM Agents, also available for anyone to join as…
Liked by Leo Meyerovich
-
We will tell you everything about #GraphSummit2024 in NYC, but we were eager to show you these pics 📸 !! #GraphsAreEverywhere -- look at the Times…
We will tell you everything about #GraphSummit2024 in NYC, but we were eager to show you these pics 📸 !! #GraphsAreEverywhere -- look at the Times…
Liked by Leo Meyerovich
Experience
Education
-
UC Berkeley
-
Thesis showed how to parallelize a web browser for better on low-power mobile devices and on massive visualizations. Various techniques from my work have been adopted by developers of commercial web browsers. My additional research in web security and the sociology of programming languages has also drawn media attention.
Mentored 2 students on their own research. (Both students won research awards at the PLDI SRC 2013).
Industry speaker at conferences (O'Reilly Fluent, AMD…Thesis showed how to parallelize a web browser for better on low-power mobile devices and on massive visualizations. Various techniques from my work have been adopted by developers of commercial web browsers. My additional research in web security and the sociology of programming languages has also drawn media attention.
Mentored 2 students on their own research. (Both students won research awards at the PLDI SRC 2013).
Industry speaker at conferences (O'Reilly Fluent, AMD Developer Summit) and various meetups. -
-
Activities and Societies: programming language design research, commercial radio
Thesis on functional reactive web programming led to best paper award for our publication at OOPSLA and the ideas have been adopted by Microsoft, Facebook, and various startups. Additional research on security was published at ICSE and has hundreds of paper citations.
Outside of research, led the web team for a commercial radio station (95.5 WBRU) and assisted with weekly planning as a member of the executive board.
Publications
-
Empirical Analysis of Programming Language Adoption
Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA)
Some programming languages become widely popular while others fail to grow beyond their niche or disappear altogether. This paper uses survey methodology to identify the factors that lead to language adoption. We analyze large datasets, including over 200,000 SourceForge projects, 590,000 projects tracked by Ohloh, and multiple surveys of 1,000-13,000 programmers.
We report several prominent findings. First, language adoption follows a power law; a small number of languages account for…Some programming languages become widely popular while others fail to grow beyond their niche or disappear altogether. This paper uses survey methodology to identify the factors that lead to language adoption. We analyze large datasets, including over 200,000 SourceForge projects, 590,000 projects tracked by Ohloh, and multiple surveys of 1,000-13,000 programmers.
We report several prominent findings. First, language adoption follows a power law; a small number of languages account for most language use, but the programming market supports many languages with niche user bases. Second, intrinsic features have only secondary importance in adoption. Open source libraries, existing code, and experience strongly influence developers when selecting a language for a project. Language features such as performance, reliability, and simple semantics do not. Third, developers will steadily learn and forget languages, and the overall number of languages developers are familiar with is independent of age. Developers select more varied languages if their education exposed them to different language families. Finally, when considering intrinsic aspects of languages, developers prioritize expressivity over correctness. They perceive static types as more valuable for properties such as the former rather than for correctness checking.Other authorsSee publication -
Parallel schedule synthesis for attribute grammars
Principles and Practice of Parallel Computing (PPOPP)
We examine how to synthesize a parallel schedule of structured traversals over trees. In our system, programs are declaratively specified as attribute grammars and parallel traversals for GPUs and multicore CPUs are defined by a compiler. Our synthesizer automatically, correctly, and quickly schedules the attribute grammar.
Scheduling impacts performance and software integration. We therefore introduce a declarative language of schedules where programmers may sketch any part of the…We examine how to synthesize a parallel schedule of structured traversals over trees. In our system, programs are declaratively specified as attribute grammars and parallel traversals for GPUs and multicore CPUs are defined by a compiler. Our synthesizer automatically, correctly, and quickly schedules the attribute grammar.
Scheduling impacts performance and software integration. We therefore introduce a declarative language of schedules where programmers may sketch any part of the schedule and the synthesizer will complete the rest. For the same motivation, the synthesizer answers debugging queries about if and how schedules may be completed and enumerates scheduling choices for autotuning.
This paper presents our cubic-time schedule synthesizer, and its support for finding, specifying, debugging, and autotuning schedules. We evaluate our approach with two case studies. First, we created the first parallel schedule for a large fragment of CSS and report a 3X speedup on multicore hardware. Second, we created a GPU-accelerated visualization language for real-time interactive animations of over 100,000 nodes. -
Superconductor: A Language for Big Data Visualization
LASH-C
We present SUPERCONDUCTOR: a high-level visualization lan- guage for interacting with large data sets. It has three design goals that we distilled from popular visualization languages:
• Scale. Visualizations should support thousands or even millions of data points. For example, Matlab and Circos1 are used for static visualizations of large data sets.
• Interactivity. Interactions should be within 100ms and anima- tion should achieve 30fps. For example, JavaScript and its li- braries such…We present SUPERCONDUCTOR: a high-level visualization lan- guage for interacting with large data sets. It has three design goals that we distilled from popular visualization languages:
• Scale. Visualizations should support thousands or even millions of data points. For example, Matlab and Circos1 are used for static visualizations of large data sets.
• Interactivity. Interactions should be within 100ms and anima- tion should achieve 30fps. For example, JavaScript and its li- braries such as D3 [2] are used for animating data and orches- trating interactions with users.
• Productivity. Programming should be at least as high-level as JavaScript. Designers invoke and customize visualizations in the above systems, and even create new ones from scratch. They less frequently do so with C++ and OpenGL.
Visualization languages support one or two of the above goals, but only SUPERCONDUCTOR seeks to address all three. -
How not to survey developers and repositories: experiences analyzing language adoption
Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU)
We present cross-sectional analyses of programming language use and reflect upon our experience in doing so. In particular, we directly analyze groups of 1,500-13,000 developers by using questionnaires and 260,000 developers indirectly so by mining 210,000 software repositories. Our analysis reveals programming language adoption phenomena surrounding developer age, birth year, workplace, and software repository preference.
We find that survey methods are increasingly accessible and…We present cross-sectional analyses of programming language use and reflect upon our experience in doing so. In particular, we directly analyze groups of 1,500-13,000 developers by using questionnaires and 260,000 developers indirectly so by mining 210,000 software repositories. Our analysis reveals programming language adoption phenomena surrounding developer age, birth year, workplace, and software repository preference.
We find that survey methods are increasingly accessible and relevant, but there are distinctive problems in examining developers and code repositories. We show that analyzing software repositories suffers from sample bias problems similar to those encountered when directly polling developers. Such bias limits the general validity of research claims based on analysis of software repositories. We aid future empirical researchers by describing concrete practices and opportunities to improve the results of developer and software repository surveys.Other authorsSee publication -
Socio-PLT: principles for programming language adoption
Onwards
Why do some programming languages fail and others succeed? What does the answer tell us about programming language design, implementation, and principles? To help answer these and other questions, we argue for a sociologically-grounded programming language theory: socio-PLT.
Researchers in the social sciences have studied adoption in many contexts. We show how their findings are applicable to programming language design. For example, many programming language features provide benefits…Why do some programming languages fail and others succeed? What does the answer tell us about programming language design, implementation, and principles? To help answer these and other questions, we argue for a sociologically-grounded programming language theory: socio-PLT.
Researchers in the social sciences have studied adoption in many contexts. We show how their findings are applicable to programming language design. For example, many programming language features provide benefits that programmers cannot directly or immediately observe and therefore may not find compelling. From clean water to safe sex, the health community has long examined how to surmount similar observability barriers. We use such results from outside of programming language theory to frame a research agenda that should help us understand the social foundations of languages. Finally, we examine implications of our approach, such as for the design space of language features and the assessment of scientific research into programming languages.Other authorsSee publication -
Data parallel programming for irregular tree computations
USENIX Workshop on Hot Topics in Parallelism (HotPar)
The adoption of data parallel primitives to increase multicore utilization presents an opportunity for aggressive compiler optimization. We examine computations over the tree abstract datatype (ADT) in particular.
For better utilization than approaches like flattening, we argue that transformations should specialize for common data and computation regularities. For example, we demonstrate a novel pattern that exploits regularity in node labeling as a SIMD parallelism opportunity, which…The adoption of data parallel primitives to increase multicore utilization presents an opportunity for aggressive compiler optimization. We examine computations over the tree abstract datatype (ADT) in particular.
For better utilization than approaches like flattening, we argue that transformations should specialize for common data and computation regularities. For example, we demonstrate a novel pattern that exploits regularity in node labeling as a SIMD parallelism opportunity, which we call SIMTask parallelism. For better applicability, we argue for better linguistic support of irregularity. For example, we show how the future primitive might be used to tolerate occasional data dependencies in an otherwise associative computation.
We validate our approach on two tree computations: RepMin, popular in the functional programming community, and \benchmark{intrinsic widths}, a stage of webpage layout in a prototype web browser. We show speedups over traditional versions of these computations of 124X and 10X, respectively. -
Conscript: Specifying and enforcing fine-grained security policies for javascript in the browser
Security and Privacy (Oakland S&P)
Much of the power of modern Web comes from the ability of a Web page to combine contents and JavaScript code from disparate servers on the same page. While the ability to create such mash-ups is attractive for both the user and the developer because of extra functionality, because of code inclusion, the hosting site effectively opens itself up for attacks and poor programming practices within every JavaScript library or API it chooses to use. In other words, expressiveness comes at the price of…
Much of the power of modern Web comes from the ability of a Web page to combine contents and JavaScript code from disparate servers on the same page. While the ability to create such mash-ups is attractive for both the user and the developer because of extra functionality, because of code inclusion, the hosting site effectively opens itself up for attacks and poor programming practices within every JavaScript library or API it chooses to use. In other words, expressiveness comes at the price of losing control. To regain the control, it is therefore valuable to provide means for the hosting page to restrict the behavior of the code that it may include.
This paper presents ConScript, an client-side advice implementation for security, built on top of Internet Explorer 8. ConScript allows the hosting page to express fine-grained application-specific security policies that are enforced at runtime. In addition to presenting 17 widely-ranging security and reliability policies that ConScript enables, we also show how policies can be generated automatically through static analysis of server-side code or runtime analysis of client-side code. We also present a type system that helps ensure correctness of ConScript policies. To show the practicality of ConScript in a range of settings, we compare the overhead of ConScript enforcement and conclude that it is significantly lower than that of other systems proposed in the literature, both on micro-benchmarks as well as large, widely-used applications such as MSN, GMail, Google Maps, and Live Desktop. -
Fast and parallel webpage layout
World Wide Web Conference (WWW)
The web browser is a CPU-intensive program. Especially on mobile devices, loading of webpages is too slow, spending much of its time in processing a document's appearance. Due to power constraints, most hardware improvements will come in the form of parallel architectures. This is also true of mobile devices such as phones. Current browsers, however, do not yet fully exploit hardware parallelism, so we are designing a parallel mobile browser. In this paper, we introduce new algorithms for CSS…
The web browser is a CPU-intensive program. Especially on mobile devices, loading of webpages is too slow, spending much of its time in processing a document's appearance. Due to power constraints, most hardware improvements will come in the form of parallel architectures. This is also true of mobile devices such as phones. Current browsers, however, do not yet fully exploit hardware parallelism, so we are designing a parallel mobile browser. In this paper, we introduce new algorithms for CSS selector matching, layout solving, and font rendering, which represent key components for a fast layout engine. Evaluation on popular sites shows speedups as high as 80x. We also formulate layout solving with attribute grammars, enabling us to not only parallelize our algorithm but prove that it computes in O(log) time and without reflow.
-
Object views: Fine-grained sharing in browsers
World Wide Web Conference (WWW)
Browsers do not currently support the secure sharing of JavaScript objects between principals. We present this problem as the need for object views, which are consistent and controllable versions of objects. Multiple views can be made for the same object and customized for the recipients. We implement object views with a JavaScript library that wraps shared objects and interposes on all access attempts. The security challenge is to fully mediate access to objects shared through a view and…
Browsers do not currently support the secure sharing of JavaScript objects between principals. We present this problem as the need for object views, which are consistent and controllable versions of objects. Multiple views can be made for the same object and customized for the recipients. We implement object views with a JavaScript library that wraps shared objects and interposes on all access attempts. The security challenge is to fully mediate access to objects shared through a view and prevent privilege escalation. We discuss how object views can be deployed in two settings: same-origin sharing with rewriting-based JavaScript isolation systems like Google Caja, and inter-origin sharing between browser frames over a message-passing channel.
To facilitate simple document sharing, we build a policy system for declaratively defining policies for document object views. Notably, our document policy system makes it possible to hide elements without breaking document structure invariants. We discuss how object views can be deployed in two settings: same-origin sharing with rewriting-based JavaScript isolation systems like Google Caja, and inter-origin sharing between browser frames over a message-passing channel. -
Secure cooperative sharing of JavaScript, browser, and physical resources
Web 2.0 Security & Privacy (W2SP)
For better application-level controls on mashups, we advocate extending the Single Origin Policy and associated primitives to support a cooperative model that allows applications to express explicit sharing policies over browser, Javascript, and physical resources.
First, we introduce an isolation model for content loading that is more complete than those of surveyed browser proposals. Second, we present new primitives to enable an application to secure its use of untrusted content by…For better application-level controls on mashups, we advocate extending the Single Origin Policy and associated primitives to support a cooperative model that allows applications to express explicit sharing policies over browser, Javascript, and physical resources.
First, we introduce an isolation model for content loading that is more complete than those of surveyed browser proposals. Second, we present new primitives to enable an application to secure its use of untrusted content by delegating browser, JavaScript, and physical resources in a fine-grained and reliable manner. Finally, essential to adoption, we propose an architecture based on designs for related abstractions with low performance and implementation costs. -
Flapjax: a programming language for Ajax applications
Object-Oriented Programming, Systems, Languages & Applications (OOPSLA)
This paper presents Flapjax, a language designed for contemporary Web applications. These applications communicate with servers and have rich, interactive interfaces. Flapjax provides two key features that simplify writing these applications. First, it provides event streams, a uniform abstraction for communication within a program as well as with external Web services. Second, the language itself is reactive: it automatically tracks data dependencies and propagates updates along those…
This paper presents Flapjax, a language designed for contemporary Web applications. These applications communicate with servers and have rich, interactive interfaces. Flapjax provides two key features that simplify writing these applications. First, it provides event streams, a uniform abstraction for communication within a program as well as with external Web services. Second, the language itself is reactive: it automatically tracks data dependencies and propagates updates along those dataflows. This allows developers to write reactive interfaces in a declarative and compositional style.
Flapjax is built on top of JavaScript. It runs on unmodified browsers and readily interoperates with existing JavaScript code. It is usable as either a programming language (that is compiled to JavaScript) or as a JavaScript library, and is designed for both uses. This paper presents the language, its design decisions, and illustrative examples drawn from several working Flapjax applications. -
Parallelizing the web browser
USENIX Workshop on Hot Topics in Parallelism (HotPar)
We argue that the transition from laptops to handheld computers will happen only if we rethink the design of web browsers. Web browsers are an indispensable part of the end-user software stack but they are too inefficient for handhelds. While the laptop reused the software stack of its desktop ancestor, solid-state device trends suggest that today's browser designs will not become sufficiently (1) responsive and (2) energy-efficient. We argue that browser improvements must go beyond JavaScript…
We argue that the transition from laptops to handheld computers will happen only if we rethink the design of web browsers. Web browsers are an indispensable part of the end-user software stack but they are too inefficient for handhelds. While the laptop reused the software stack of its desktop ancestor, solid-state device trends suggest that today's browser designs will not become sufficiently (1) responsive and (2) energy-efficient. We argue that browser improvements must go beyond JavaScript JIT compilation and discuss how parallelism may help achieve these two goals. Motivated by a future browser-based application, we describe the preliminary design of our parallel browser, its work-efficient parallel algorithms, and an actor-based scripting language.
-
Verification and change-impact analysis of access-control policies
International Conference on Software Engineering (ICSE)
Sensitive data are increasingly available on-line through the Web and other distributed protocols. This heightens the need to carefully control access to data. Control means not only preventing the leakage of data but also permitting access to necessary information. Indeed, the same datum is often treated differently depending on context.
System designers create policies to express conditions on the access to data. To reduce source clutter and improve maintenance, developers…Sensitive data are increasingly available on-line through the Web and other distributed protocols. This heightens the need to carefully control access to data. Control means not only preventing the leakage of data but also permitting access to necessary information. Indeed, the same datum is often treated differently depending on context.
System designers create policies to express conditions on the access to data. To reduce source clutter and improve maintenance, developers increasingly use domain-specific, declarative languages to express these policies. In turn, administrators need to analyze policies relative to properties, and to understand the effect of policy changes even in the absence of properties.
This paper presents Margrave, a software suite for analyzing role-based access-control policies. Margrave includes a verifier that analyzes policies written in the xacml lan- guage, translating them into a form of decision-diagram to answer queries. It also provides semantic differencing information between versions of policies. We have implemented these techniques and applied them to policies from a working software application.
Honors & Awards
-
Most Influential Paper (10yr) - OOPSLA
ACM
The OOPSLA’13 paper “Empirical Analysis of Programming Language Adoption” by Leo A. Meyerovich and Ariel S. Rabkin has been selected as the OOPSLA’13 Most Influential Paper Award.
Some programming languages become wildly popular while others fade away. This paper seeks to answer why by performing an empirical study spanning hundreds of thousands of open-source software projects and interviews with thousands of programmers. The methodology used in the paper is thorough, and the paper…The OOPSLA’13 paper “Empirical Analysis of Programming Language Adoption” by Leo A. Meyerovich and Ariel S. Rabkin has been selected as the OOPSLA’13 Most Influential Paper Award.
Some programming languages become wildly popular while others fade away. This paper seeks to answer why by performing an empirical study spanning hundreds of thousands of open-source software projects and interviews with thousands of programmers. The methodology used in the paper is thorough, and the paper provides insights of interest to the broader Programming Languages community. Overall, this paper is a role model for large-scale empirical and sociological studies of programming languages, making it worthy of the OOPSLA 2013 Most Influential Paper Award.
--
https://www.sigplan.org/Awards/OOPSLA/
Presented annually to the author(s) of a paper presented at the OOPSLA held 10 years prior to the award year. The papers are judged by their influence over the past decade.
Selection Committee The award given in year N is for the most influential paper presented at the conference held in year N-10. The selection committee consists of the following members:
the current SIGPLAN Chair, ex officio,
a member of the SIGPLAN EC appointed as committee Chair by the SIGPLAN Chair,
the General Chair and Program Chair for OOPSLA N-10,
the General Chair and Program Chair for OOPSLA N-1, and
a member of the SIGPLAN EC appointed by the committee Chair.
The SIGPLAN Chair shall adjudicate conflicts of interest, appointing substitutes to the committee as necessary. -
Graphies Award - Data4Good: Curbing Misinformation
Neo4j
The annual GraphConnect Awards, otherwise known as "The Neo4j Graphies," recognize excellence in connected data across a variety of categories.
--
https://neo4j.com/videos/6-project-domino-fighting-covid-misinformation-at-scale-with-citizen-data-science/ -
Most Influential Paper (10yr) - OOPSLA
SIGPLAN / OOPSLA
Flapjax reimagines how to program client-based web applications by using abstractions dedicated to facilitating communication intensive applications with interactive interfaces. There are two central such abstractions in Flapjax, which were adopted from functional reactive programming: Event streams and so-called behaviors, with the latter modeling computations that bring themselves automatically up-to-date whenever data and computations they depend on change. This lets callbacks that are…
Flapjax reimagines how to program client-based web applications by using abstractions dedicated to facilitating communication intensive applications with interactive interfaces. There are two central such abstractions in Flapjax, which were adopted from functional reactive programming: Event streams and so-called behaviors, with the latter modeling computations that bring themselves automatically up-to-date whenever data and computations they depend on change. This lets callbacks that are typically used in applications with interactive interfaces disappear from their designs … and with them also the hell of complexity they cause. Flapjax seamlessly builds on top of JavaScript without requiring a dedicated runtime and thus interoperates with existing applications written in JavaScript. This design choice lowers the barrier to entry and makes the language approachable to novice users. In terms of modern usage, the reactive style and event stream abstraction advocated by Flapjax have been adopted widely, both in mobile apps and on the web. Moreover, recent research has shown that beyond interactivity, behavior abstractions also facilitate correct-by-design distributed applications in presence of concurrency as well as crash and communication faults.
---
https://www.sigplan.org/Awards/OOPSLA/
Presented annually to the author(s) of a paper presented at the OOPSLA held 10 years prior to the award year. The papers are judged by their influence over the past decade.
Selection Committee The award given in year N is for the most influential paper presented at the conference held in year N-10. -
SIGPLAN Research Highlight 2014
ACM
For "Empirical Analysis of Programming Language Adoption", one of the three selected programming language research papers at the end of 2014.
"SIGPLAN has selected papers from its sponsored conferences that are of high quality and broad appeal. These papers, called SIGPLAN Research Highlights, are selected by a committee representing SIGPLAN’s major conferences and elected officials." -
Best Paper Award
OOPSLA
For our paper on the Empirical Analysis of Programming Language Adoption
-
PLDI Student Research Competition
PLDI / ECOOP
For the parallel program synthesis project (as part of the parallel browser) later published in PPOPP 2013.
-
Best Paper Award
OOPSLA
For our paper on the Flapjax language.
-
Qualcomm Innovation Fellowship
Qualcomm
Winner of a competition between 50 teams from Berkeley and Stanford. (First year that this fellowship was awarded.)
-
First Year Fellowship
UC Berkeley
Award for first year of studies.
-
NSF Graduate Research Fellowship
National Science Foundation
3 year fellowship
-
Outstanding Undergraduate (Honorable Mention)
Computing Research Association
Competition across all major universities for the best undergraduate computer science researchers.
-
UTRA
Brown
Undergraduate Teaching and Research Award
Languages
-
Russian
-
-
Spanish
-
More activity by Leo
-
Curious: We are doing some vector embedding model fine-tuning to help scale our real-time AI KG work, and shrunk from standard modern 384-1K dim…
Curious: We are doing some vector embedding model fine-tuning to help scale our real-time AI KG work, and shrunk from standard modern 384-1K dim…
Posted by Leo Meyerovich
Explore collaborative articles
We’re unlocking community knowledge in a new way. Experts add insights directly into each article, started with the help of AI.
Explore More