Check our summary video of last year:
Jeff Harrell @juxtajeff · Paypal
Release the Kraken at 10:00 - 10:40 on Day 1 (Thursday)
Daniel Steigerwald @steida
New optimizations of Google Chrome's V8 at 11:40 - 12:20 on Day 1 (Thursday)
Eddy Bruel @ejpbruel · Mozilla
I'm a platform hacker for Mozilla. I aspire to be one day as great as the people I get to work with.
In this talk, we will take a look at how SpiderMonkey implements objects internally. In particular, we uses two data structures, known as shape trees and slot vectors, to minimize the memory footprint of our objects. This representation also allows property access in the JIT to be optimized, using a technique called inline caching.
Arrays are treated somewhat differently from other objects, so we will take a look at them as well. Array elements are stored separately from named properties, and don't require the use of a shape tree. This is true even if the array has holes in it. There are exceptions, however, where we store elements as ordinary properties.
Because of the way objects are represented, certain operations, such as property deletion, can adversely affect the performance of your code. As we go along, we will explain how each of these operations is implemented, and under what circumstances you should avoid them.
Maxime Chevalier-Boisvert @Love2Code · Université de Montréal
Maxime Chevalier-Boisvert holds a master's degree from McGill University and is currently pursuing a PhD at Université de Montréal as part of the Dynamic Language Team. Her area of study is compiler design and optimization, with a focus on dynamic programming languages, JIT compilers and type analysis.
JIT compilation techniques at 14:20 - 15:00 on Day 1 (Thursday)
I develop interactive maps for the touristic branch. I like code generation for performance, math, UX, API design and implementation, and caring about developers and users.
JS optimization techniques at 16:00 - 16:40 on Day 1 (Thursday)
Shriram Krishnamurthi @ShriramKMurthi · Brown University
Domenic Denicola @domenic · Lab49
I do Node.js servers, HTML5 Windows 8 apps, and other JS. I like promises, ES6, and maintaining other peoples' libraries. I work at @lab49.
Streams for the Web at 10:00 - 10:40 on Day 2 (Friday)
Streams are a fundamental programming primitive for representing the flow of data through your system. It's time we brought this powerful tool to the web. What if we could stream data from a HTTP request, through a web worker that transforms it, and then into a
<video>` tag? Over the last year, I've been working on the WHATWG streams specification, which builds upon the lessons learned in Node.js, to provide a suitable abstraction for needs of the extensible web.
I'll discuss briefly why streams are important, what they enable, and the role we envision them playing in the future of the web platform. Mostly, though, I want to help you understand streams, at a deep level. In the course of writing this specification, I've learned a lot about streams, and I want to share that knowledge with you. At the core, they are a very simple and beautiful abstraction. I think we've done a good job capturing that abstraction, and producing an API the web can be proud of. I'd love to tell you all about it.
Stoyan Stefanov @stoyanstefanov · Facebook
Introduction to React at 10:40 - 11:20 on Day 2 (Friday)
React is a new, open source library from Facebook and Instagram. It's a library for building user interfaces for web applications. Let's talk about how React addresses the performance challenges (DOM manipulations, event handling) when building highly dynamic web interfaces.
I'm a PhD student with the functional programming group at Chalmers University of Technology, with a particular interest in compilers. I also like natural languages, psychology, anthropology, history and other subjects relating to human interaction.
Hastily Paving the Way for Diversity at 11:40 - 12:20 on Day 2 (Friday)
A rich flora of programming languages is important for any platform; one language does not fit all applications, and the cross pollination of ideas enabled by a diverse language environment is highly beneficial in advancing the platform as a whole. From this, it follows that anyone involved in the browser as a platform should be quite interested in making it an attractive environment where a diverse set of languages can thrive.
Alexander Fritze @alexfritze · OniLabs
Alessandro Pignotti @alexpignotti · Leaning Technologies Ltd.
Co-founder and chief developer @leaningtech. I work on duetto, a C++ compiler for the Web. I am a huge fan of C++ and open-source.
Duetto: C++ as the platform language for the Web at 14:20 - 15:00 on Day 2 (Friday)
At Leaning Technologies, we believe that the Web will be the media of choice to deliver applications and games to users in next future. Our vision is that the Web should be considered as a platform, with HTML5 APIs as its system calls and JS as its machine language. In this talk, we will present Duetto, our C++ compiler designed to expose all the capabilities and limitations of this platform to the programmer. Duetto allows to write full client-server Web applications in standard C++, and to port existing C++ codebases to the Web.
David Galeano @davidgaleano · Turbulenz
Co-founder of Turbulenz Limited. Technical Director of EA Tech Graphics at Electronics Arts. Team leader of RenderWare Graphics at Criterion Software.
I will present games that are possible today and the problems that Turbulenz and its partners found and solved during their development. The talk will also introduce what new language features and APIs are required in order to take browser games to the next quality level.
I will show you a viewpoint on planning such a Vanilla architecture as a whole, including quality assurance, code documentation without too much effort, deployment, and also proper architectural planning and task delegation.
This is your last chance. After this, there is no turning back. You take the blue pill – the story ends, you wake up in your bed and believe whatever you want to believe. You take the red pill – you stay in Wonderland, and I show you how deep the rabbit hole goes. Remember, all I'm offering is the truth – nothing more.
Day 1 - Thursday
|09:00 - 9:50||Registration & breakfast|
|09:50 - 10:00||Welcome|
|10:00 - 10:40||Release the Kraken|
|11:20 - 11:40||Break|
|11:40 - 12:20||New optimizations of Google Chrome's V8|
|13:00 - 14:20||Lunch|
|14:20 - 15:00||JIT compilation techniques|
|15:40 - 16:00||Break|
|16:00 - 16:40||JS optimization techniques|
|17:20 - 17:40||Closing|
Day 2 - Friday
|09:00 - 10:00||Lightning talks / arrival coffee|
|10:00 - 10:40||Streams for the Web|
|10:40 - 11:20||Introduction to React|
|11:20 - 11:40||Break|
|11:40 - 12:20||Hastily Paving the Way for Diversity|
|13:00 - 14:20||Lunch|
|14:20 - 15:00||Duetto: C++ as the platform language for the Web|
|15:40 - 16:00||Break|
|16:40 - 16:55||Goodbye|
Medea Baccifava @Medea_Baccifava
I am an innovative professional working in advisory and international marketing positions in Europe and Asia. In current position at Prezi, I deliver small- and large-scale projects, from optimization to communication, handling international events like mloc.js, RAMP and Stretch.
András Bártházi @ba78
Attila Szabó @szaboat
Gergely Hodicska @felhobacsi
I am the Senior Engineering Manager at Ustream and I oversee all site, streaming, and infrastructure teams. Early on, I specialized in building and operating large scale web applications, including the design and development of several Alexa Top 100 sites. Nowadays I focus on improving the way we develop at Ustream, creating effective processes and building a culture where our engineers can not just continuously deliver but also continuously improve. I strongly believe in teamwork, devops and lifelong learning.
José Enrique D'Arnaude
I am a C++ developer who has interest in any technology that helps cross platform development. Passionated about computer graphics, performance and football.
Contact us if you have a question, or you believe you would have a story to share: firstname.lastname@example.org
Code of Conduct
We stand for a welcoming community.
At our conferences we encourage respectful smart conversations that help improvement and inspire innovation. Sexism, racism, and being an asshole in general is not appreciated. If you do so, get prepared to be challenged by conference staff, who will probably ask what's wrong with you.