jsconfeu-googleplus jsconfeu-heart jsconfeu-logomarkjsconfeu-map-marker jsconfeu-smilie jsconfeu-twitter jsconfeu-youtube
site url:http://2015.jsconf.eu
page url:/speakers/
page id:
page date:
node url:
twitter name: jsconfeu
page pattern:


Denis Radin:
Rendering HTML via WebGL

In the recent time Web development community had a big discussion on “DOM is slow” topic. This thesis is truthful. DOM is a quite complex model which starts a ripple of events or chain reaction over document on every modification. HTML GL solves “the slow DOM problem” by creating WebGL representations of DOM elements and hiding actual DOM after. This speeds up HTML/CSS animations and transformations by using 3D hardware acceleration and allows to apply OpenGL effects as modern 3D games have.

In this talk:

  • The “Slow DOM problem”;
  • Solutions possible
  • DOM optimization vs alternative rendering approaches(React-canvas, Netflix methodology);
  • Seeking for an ideal solution;
  • Rendering content via WebGL using HTML GL
  • Limitations, recommendations
  • Where to go further?

Lewis Cowper:
Forklift Driver to Developer in 9 Months

Moving up the ladder from forklift driver and general labourer, to front end developer, with a stint in manual testing, was a big challenge. However it’s exactly what I did, and I couldn’t have done it without following a few core principles.

Getting up the nerve to go to local usergroups, and conferences, and discovering a new found love of public speaking, was a huge leap from labouring. Similarly, I discovered contributing to open source wasn’t that big a deal, and some things certain projects did made it really easy! Also, learning about things like source control was super integral to being where I am today.

Marijn Haverbeke:
Salvaging contentEditable: Building a Robust WYSIWYM Editor

Web-based WYSIWYG editors are notorious for spitting out a distasteful HTML soup. In this talk I’ll show how I implemented an editor that, instead of trying to filter and clean this soup, takes control away from the browser’s contentEditable implementation, and reinterpret user actions as operations on our own semantic document model (i.e. not HTML). The result is a WYSIWYM (what you see is what you mean) editor, more predictable than classic WYSIWYG, and just as user friendly.

Ola Adedoyin:
Applying 3D Engineering Drawing Techniques To Web App Diagrams

Web app technical diagrams fall into the trap of over simplifying complexity. And so diagrams which are meant to represent 1,000s or even 10,000s of hours of the large scale multidisciplinary construction effort that is a web app project is reduced to sticks-and-clouds architecture drawings, coarse wire frames and/or detailed UI mockups or screenshots.

What’s missing from these representations ? Usually a lot - like code volume, 3rd party dependencies, environments, delivery processes and so much more. This talk presents a new vision of web app technology diagrams using the structural engineering drawing technique of isometric projections to provide much better perspective of the multi dimensional nature of web app programming projects.

A taste of this new style of diagraming of web apps can be seen, today, at the speaker’s site stackynotes.com but diagrams with much more depth and breadth will be explored in the actual conference talk.

Stefanie Schirmer:
Functional programming and curry cooking in JS

Are you interested in learning about functional programming? Are you reaching the limits of abstraction when programming in JavaScript? Do you sometimes find yourself lost in a forest of callbacks? In this talk we explore functional programming concepts, which help us create powerful abstractions to master complex problems and create more simple and elegant programs.

JavaScript allows us to ease into the functional programming style, letting us focus just on the concepts, without the distraction of learning a specific functional programming language.

To make the dry functional programming concepts more digestible, we use cooking as an analogy. And since the logician Haskell Curry invented functional programming, we combine our journey in JavaScript with examples and recipes for tasty curry dishes. So even if you get stuck on concepts like higher order functions, continuation passing style or monads, you will at least not go home hungry.

Curtis Lassam:
Horse Drawing Tycoon: The World's Best Horse Drawing Simulator

After a local VanJS meetup, my friends and I were tossing around project ideas. Someone referenced a website that would procedurally generate terrible ideas for video games. “A tycoon game where you draw horses indefinitely”.

What a wonderful, terrible, awful idea for a game.

In this presentation, we go through the 1000 lines of Javascript and two weeks of drunken after-work coding required to produce the world’s only horse drawing tycoon simulator, with Canvas, Twitter integration, the legendary HorseHash™ algorithm, HorseCurrency™, and HorseStamps®!

You’ll pay for the whole seat but you’ll only need the edge.

Mathias Bynens:

User input and string manipulation are central to development, but many engineers and even popular libraries struggle with Unicode. And ECMAScript 5 doesn’t help, with many built-in string manipulation functions offering puzzling results. Security and the need for internationalization both throw these issues into stark relief. This talk highlights the many problems related to Unicode in JavaScript regular expressions, demonstrates how ES6 (aka. ECMAScript 2015) helps solve these issues, and explains how to polyfill in the mean time.

You’ll walk away from this presentation knowing how to create Unicode-aware regular expressions in JavaScript with ease.

Patricia Garcia:
Good Tech for Hard Places: Fighting Ebola with Javascript Offline Apps

On 23rd July 2014, the first case of Ebola was reported in Nigeria, home to a small NGO working at the intersection of tech and public health. By then over 1000 cases had been reported in Guinea, Sierra Leone and Liberia. This is a story of how we use JavaScript to fight the Ebola outbreak. It’s also a story of building good tech for hard places, where a stable internet connection is rare and emergencies are real. There are a lot of awesome technologies (e.g. CouchDB and PouchDB) out there to help you build offline applications. There is also no shortage of beginner level online tutorials to show you how to do a quick and nice first prototype, but as in any new field there is not so much documentation available to help you solve the problems you’ll find when deploying your offline applications to be used in the “real” world. This talk will present some of these problems as well as the solutions we came up with, including some open source tools developed by ourselves.

Pawel Szymczykowski:
JavaScript in (Near) Space

Near space is a region of the Earth’s atmosphere starting at 20 km, high enough to boil water at body temperature. With a little bit of preparation, you can launch a ballon carrying a payload of sensors and cameras driven by JavaScript into near space at twice the height that commercial airlines can fly. I will guide you through the hardware, software and red tape you should be familiar with to create your own high altitude experiments. Let’s take back cloud computing!

Thomas Gorissen:
The year of the peer-to-peer web

2015 is when WebRTC broke through. Barely a standard it already has its own conferences, yet is mostly known for it’s ability to do video calling. It is time the web developer community becomes aware of all the powers of WebRTC and a browser-to-browser web that can be faster, more resilient and safer. This talk wants to open minds, through the power of code and demos, showing incredibly useful, fun and even ridiculous use-cases (from WebTorrent to Karaoke to Selfies) cut through the complexity of WebRTC and inspire what could become the democratisation of the web.

Etiene da Cruz Dalcol:
What I learned teaching programming to 150 beginners

A few months ago I was invited to give a workshop at Women’s International Leadership Conference on Introduction to Programming. That was an amazing experience that taught me incredible things and motivated me to open source all the steps. Some of the topics I’ll cover on this talk are:

  • Why Javascript is an appropriate introductory language to programming, versus popular teaching choices such as Python

  • What is feasible in a short length workshop

  • How programming workshops empower and inspire learners

  • How this experience contributed to my own learning, as well as personal and professional growth

  • The materials to reproduce this workshop

Olga Madejska:
Breaking Bad - Web Components in production, what worked for us

Imagine many teams distributed over the globe working on different services. Each team is small enough to be fed with two large pizzas. Got that? Welcome to AWS! This is what makes us successful, but it also brings its own challenges. One of them is ensuring accessibility, performance, and consistency across all our UIs. Because of this we chose to explore Web Components in the last year and I want to share what we have learned. I will go over the current state and support of all Web Components building blocks. It will get technical fast as I tell you why polyfills did not work for us. We continued to investigate the underlying technology and wrote our own library that I want to share with you. As no goal can be achieved by ‘only’ producing code, I will also explain what I did in addition.

Razvan Caliman:
Disconnected Networking

There was a time when data connections like WiFi and Bluetooth didn’t exist, yet people still managed to send information over long distances using clever encodings like Morse Code, sound waves and visual impulses.

What can we learn from that?

This talk looks at ways to use web platform capabilities, like the Web Audio API, Ambient Light Events and Touch Events, to revisit old data transmission techniques and apply them in new contexts. We’ll use demos to explore ultrasonic networking between air-gapped devices, indoor positioning without GPS and sending data through touch.

Finally, we’ll look at the privacy implications these unconventional networking capabilities bring.

Bryan Hughes:
The Risks and Rewards of Getting Involved and How to Do It

Does it seem like everyone else knows more than you? Do you see people on stage or organizing events and think, “I could never do what they do”? Have you felt marginalized by the tech industry? Getting involved can be a daunting prospect, especially if you’re from a marginalized group. But there are a few decent and kind communities out there, and getting involved can be highly rewarding. It’s also a lot easier than you think!

In this talk, I will discuss how I got involved as a not straight male, how you can do it too, and how we can make our communities better and more welcoming for everyone.

Franziska Hinkelmann:
A Trip to the Zoo: SpiderMonkey, SquirrelFish, Nashorn, and V8*

Do you know how JavaScript engines work and why they are so blazingly fast?

Learn about the fundamentals like abstract syntax tree, opcodes, and just-in-time compilation. JavaScript code can be almost as fast as native C++ code. How do engines accomplish this? Lets look into optimization techniques including hidden classes, ahead-of-time compilation, and single instruction multiple data computations, which, if applied correctly, will give your code a turbo boost.

Understand the inner workings of JavaScript engines and learn by examples how to write faster code.

*SpiderMonkey, SquirrelFish (Nitro), Nashorn, and V8 are JavaScript engines for Firefox, Safari, JVM, and Chrome.

Stephan Bönnemann:
Dependency Hell Just Froze Over

If extensive libraries and even the tiniest module followed SemVer strictly, dependency hell would be a thing of the past … but humans weren’t made to follow rules.

There are way more than 150.000 packages on npm today – the most of any registry. Using the right packages in your own modules and applications makes JavaScript the joy to develop it is today. But if even immensely popular libraries fail to properly declare breaking changes, how can we trust the over 50.000 strangers who developed all these modules? Currently we can’t. Let me show you how to write confidence-inspiring modules with breaking change detection and fully automated, tested releases including changelogs. Machines do a way better job with this than buggy humans.

Suz Hinton:
Refactoring the dinosaur

The hardware world has historically been a mysterious, fragmented land of cryptic code. By leveraging the strengths of NodeJS, decade-old stagnant tools and libraries can be greatly improved when rewritten in JavaScript. Keeping this in mind, how do you even go about refactoring a fossilized piece of software while still preserving your sanity?

To answer this question, we’ll dig into an example of how you can create a modern, JavaScript-powered interface for users to program your device. You’ll take away lessons on how to ensure the tools you create can deliver a delightful user experience to both end users and fellow developers. Preferably without bricking any microchips along the way!

Todd Gardner:
JavaScript Forensics

Something terrible happened here. Traces of errors litter the floor; memory leaking from cracks in the ceiling. Someone lost their object context in the corner. Everything reeks of jank. In this session, a JavaScript error tracking expert breaks down a series of common and complex crimes against web applications. You’ll leave the session armed with techniques and tools to detect, diagnose, and fix your JavaScript web applications. Bring your bugs and let’s fix up our web.

Anand Vemuri:
What Your Scanner Doesn’t Tell You CAN Hurt You

Modern JavaScript libraries and frameworks have become the de facto standard in web application development. However, the great strides in innovation have created framework-specific security vulnerabilities that most modern JavaScript security scanners are not programmed to search for. Personal research with intentionally vulnerable applications as well as live production code has shown that many popular scanners do not detect common application vulnerabilities.

This talk will discuss some common security pitfalls developers make when working with popular client-side JavaScript frameworks. Intentionally vulnerable applications developed with Backbone.js, Angular.js, Ember.js, and Meteor,js will be attacked and exploited live. Github links to the vulnerable applications used in this presentation will be released after the presentation. Through strengthening the security posture of JavaScript applications, we can take strides towards creating a more secure Internet.

Cate Huston:
Some Things I’ve Learned About Color

Burnout saps the joy from creating and leaves the world in shades of grey. What do you do when you realise your work is meaningless and you dread going in every day? As an engineer, you can analyse the system, determine what is missing, and inject some much needed color.

Lieke Boon:
Unconscious Bias: we're all guilty

We probably all know that diverse teams are effective teams. Teams with more gender diversity have been proven to be more creative, productive, innovative. Nevertheless, the technology industry, has been showing a recent and steady decline regarding women who find and pursue degrees in what should be a growing pool of opportunity. In this talk we’ll examine the reasons behind the gender­gap in IT by going on a small trip and we’ll figure out what we can do to make our community better in only a couple days!

Sam Richard:
Domo Arigato Mr. Roboto

How would your message change if your email client told you your phrasing is likely to be perceived as negative? What would you cook if you could explore ingredient and culinary style pairings you’ve never encountered? How could your research improve if answers came with confidence levels and supporting evidence you can explore?

Welcome to the world of Cognitive Computing, the next wave of computing technology bridging the gap between computers and humans. While these possibilities may seem far off, you can build all of these today! Let’s explore.

The Power Of Small Abstractions

Every time we solve an everyday programming problem we learn from its solution. When we come across a similar problem later on, we think “aha! I’ve seen this before! I know how to solve it!”. Many of us are also familiar with design patterns, which aim to solve entire classes of problems.

There also exists, however, a different kind of pattern. But, as opposed to help you structure a whole compiler or application, these patterns love hiding in small things like methods or functions, or even binary operations. They whisper to you when you concatenate two strings or map over a list.

These abstractions have superpowers, too. They can separate the what from the when, or from the how. They can add together things other than numbers. They can control time. In this talk you will discover the amazing power of small abstractions. After, you’ll start hearing their whispers and seeing their breadcrumb trails. Only then you will be ready to let them unfold their full potential in your programs.

Brenna O'Brien:
JavaScript Community: The Good Parts

As front-end dev educator, my heart broke every time a student proclaimed “I hate JavaScript.”

I’ve found the JavaScript community to be extremely positive and welcoming, but we can do better, especially if our newest colleagues aren’t feeling the love. Let’s talk about barriers to entry for new JS devs, both technical and non-technical, and let’s talk about how we can help alleviate them. Learn how to be supportive and inspiring in your daily work, how to teach and explain JS concepts effectively, and how you, esteemed JS community member, can help end the laments of “I hate JavaScript.”

Jennifer Wong:
I Think I Know What You’re Talking About, But I’m Not Sure

Recursion, instantiate, lexical scope - where do these words come from?! If you’ve ever been in conversation with other developers and thought, “I think I know what they’re talking about, but I’m not sure…”, you’re not alone. Let’s delve into the weird and wonderful parlance that computer scientists and developers have created for themselves. Whether the words are borrowed or just plain made up, I’ll uncover how they made their way into the vocabulary of the modern programmer.

In this session, you’ll learn everything from etymology to history to broader definitions, all of which can help you understand what the heck that person’s rambling about. So, the next time you’re in conversation, you’ll be the one discussing dependency injection versus inversion of control with ease.

Panos Astithas:
Write once, debug everywhere, from Firefox

Remember the old joke about how the Java slogan “write once, run everywhere” was more like “write once, debug everywhere”? Good one. Actually, many people say this about the Web, too. In fact, it would be more accurate in our case to state it as “write once, debug everywhere, each time with different tools”. But does it have to be that way?

A new Firefox feature called Valence allows you to debug your web app in any target environment: Firefox, Chrome, iOS, Android, you name it. Does it actually work? How does it work? Can we expect more from it? How can other browsers use it? In this talk we will find the answers to these questions and discuss the accuracy of the tentative slogan “write once, debug everywhere, from Firefox” (or lack thereof).

Peter Müller:
Transpiling Recomposed

Modern web developers have become heavily dependent on abstractions like jade, sass or ES6. These are powerful tools, but to themselves require new abstractions, wrappers and runners. The rate at which new tools, workflows and even languages are appearing is staggering. Each iteration adds more complexity and less interoperability.

So how do we expect newcomers to be able to enter our field when we can hardly keep up ourself?

This will be an exploration of our tool chains with a focus on transpilers. The mission: To identify moving parts, recompose and simplify for the good of the current and future generation of developers.

Surma Surma:
The Mobile Web is a Contender

This talk will focus on the new generation of APIs which make the web a more capable platform for applications. Push Notifications, Offline Storage with Service Workers, and responsive UIs built in Web Components. These are the building blocks of the future. We will also look at the kinds of sites which excel as mobile web apps (backed with actual data!), and make the case for why you should be investing more in your mobile web experience.

Denys Mishunov:
Illusion of Time. When 60 seconds is not 1 minute

What is common for Walt Disney World, airports and magicians? All of these are distorting user’s perception to build illusions that make us feel good even though we don’t notice them so easily. Those are time illusions. Developers, as magicians, can use the same techniques to distort users’ perception of time to deliver fast and competitive products. The talk is about psychology, perception, time and, of course, illusions.

Gilmore Davidson:
Time zone of your life

Time zones – the undoing of many developers’ sense of sanity. Get them right and most likely your users won’t even notice. Get them wrong and you can end up increasing racial tensions in the Middle East. As we embed ourselves further into this Brave New World of JS Everywhere, let us not forget the basic lessons from before JS existed. This talk will explain the oddities, pitfalls, and ever-changing nature of time zones, so that you may learn from my mistakes (I wasn’t kidding about the Middle East bit).

Stefanie Grewenig:
OnConnectionLost: The life of an offline web application

Can you use HTML5 technologies to build a web application which works offline? Without a reliable internet connection? Let’s say for two weeks?

That is what our client asked us to build. Their people will use the application on the road; reading documents, entering results and uploading pictures. And then they come home, connect to the internet and sync their results with their colleagues’.

Szymon Nowak:
How to grow your own Babel fish

In “The Hitchhiker’s Guide to the Galaxy” the Babel fish is an animal, which “if you stick one in your ear, you can instantly understand anything said to you in any form of language”. In this talk I’ll show you how easy it is to write a web app that does exactly that. I’ll also discuss some of the current Web Speech API limitations that hopefully will be removed in the near future to make the web even more powerful platform for real-time communication. And you won’t have to stick anything into your ear!

Thomas Watson:
AirPlay protocol hacking

Reverse engineering of the AirPlay protocol and a complete JavaScript implementation

Carina C. Zona:
Consequences of an Insightful Algorithm

We have ethical responsibilities when coding. We’re able to extract remarkably precise intuitions about an individual. But do we have a right to know what they didn’t consent to share, even when they willingly shared the data that leads us there? A major retailer’s data-driven marketing accidentally revealed to a teen’s family that she was pregnant. Eek.

What are our obligations to people who did not expect themselves to be so intimately known without sharing directly? How do we mitigate against unintended outcomes? For instance, an activity tracker carelessly revealed users’ sexual activity data to search engines. A social network’s algorithm accidentally triggered painful memories for grieving families who’d recently experienced death of their child and other loved ones.

We design software for humans. Balancing human needs and business specs can be tough. It’s crucial that we learn how to build in systematic empathy.

David Valdman:
Functional Layout - Updating the DOM at 60FPS

We present a functional take on front-end data-binding. MVC, MVP, MVVM, just the V – there are many useful architectures for data binding when data changes in discrete chunks. For data that changes continuously in time (animations, gesture controlled UI, responsive layout, etc), these are not the best tools. By treating continuously changing layout data in a functional way, and updating discrete changes to a model’s data in an MV* way, we can split the data-binding problem into two cleanly separated problems. In so doing we make all our tools better at what they do best.

Dmitry Baranovskiy:
Zen of JavaScript

Long time passed since JavaScript become mainstream. And despite multiple attempts, there is still no right single way to write code in this language. Everybody is using it in their own special way and most people still fill that they are failing to tame the language.

In this talk I will try to show you what language is trying to tell us for all these years, where is real path to enlightenment or at least we could have fun and look at things we know (or pretending to ;) from unorthodox point of view. ;)

Prepare to meet JavaScript… again.

Joa Ebert:

Compiling Java bytecode to JavaScript is an interesting problem to solve and many things can be learned from this challenge.

  • The difference of JSVMs and performance implications
  • The state of WebIDL and why it matters
  • Types and optimizing compilers: an AOT love story

Technology is always just a means to an end. That’s why we’ll also look at self-optimizing display lists, WebGL and the WebAudio API in real-world apps.

Marija Selakovic:
Let’s make JavaScript programs faster

Despite the large improvements of JavaScript engines in recent years, developers still apply many optimizations to improve performance of their code. Many of these optimizations are caused by misuse of popular APIs or statements that disable compiler optimizations. Moreover, most optimizations affect only a small number of statements.

Ryan Seddon:
So how does the browser actually render a website

We all take for granted that when we push enter in the browsers address bar, magic happens. The browser gets our HTML, that intern requests all the dependencies, insert magic, other things happen and then we have our site rendered. Simple, right, right…

Like many people as I’ve progressed in my career, building for the web, I’ve become curious as to how the browser does what it does. What makes it tick, how it turns a string of HTML into a data structure, how CSS & JavaScript come into play. Things like render tree, style recalculation, paints, reflows, all alien words will start to make sense by the end of this talk.

Suddenly you’ll understand why people recommend you place script tags at the bottom of the document, inlining critical CSS & all sorts of other performance techniques.

Alejandro Oviedo:
A fifth of century

This last May JavaScript turned 20 years old. I want to look at how we are used to code with the current standard (ES5) and how it would be to use JavaScript’s first version in retrospective. We’re going to talk about the path through Mocha, LiveScript, JavaScript, ECMAScript 1, 2,3,5 and the latest ECMAScript 2015 and 2016.

Artur Janc:
Security in the world of JS frameworks

In the recent years high-level frameworks have become the de facto standard for writing client-side webapp code. Angular, Polymer, or Dart all provide extremely useful abstractions for building applications, but also indirectly expose rough edges of the web platform which often lead to vulnerabilities (e.g. XSS).

In my talk I will provide a security engineer’s perspective on some of the common pitfalls which tend to affect code written using such frameworks based on real examples of bugs in Google apps. I will also explain why security reviews of such apps are often more difficult to conduct than those of “bare metal” JS code, what could be done to fix this, and why framework designers should care about it.

Martin Schuhfuß:
Let there be light!

It is long known that the quality and setting of the light in our environment influences our moods and minds in a near-infinite number of ways. Yet the lights in most homes and work places are still restricted to the ever present on-/and off-switches (and maybe some dimming).

Enough of that. Take some of the modern lighting-solutions today, add a healthy dose of JavaScript and sprinkle with some other web technologies to create and control your own lights to suit any of your moods and ideas – directly from within your browser. In a very colorful talk full of practical examples I will demonstrate a number of those possibilities.

Can we use these tricks to even control professional light-equipment on stage? You’ll see.

Nick Hehr:
The Other Side of Empathy

In an industry that is so focused frameworks & tooling, we tend to lose sight of the people behind the products and how we work with them. I’ve found empathy to be a powerful resource while collaborating with teams inside companies and across the open source community. By breaking down The Other Side of Empathy, I will demonstrate how applying its principles to your development process will benefit the community and the products they create.

Sarah Meyer:
Life in the Wilderness: How to Pioneer Tech Culture

A lot of us are engineers at companies that don’t enshrine technology as their core product, or that employ significantly more non-technical than technical people. Others of us work completely alone as freelancers. If you’re in that position, how do you create a place for technological transformation in the organization, or communicate with non-technical clients?

I’ll cover how to - evaluate what your project needs - maintain your productivity - create understanding of technical issues - keep learning without anyone around to teach you new stuff.

Whitney Williams:
If Walter Gropius was a JavaScripter

The Bauhaus school’s emphasis on the importance of simplicity, the belief that form follows function, and the reconciliation of the fine and applied arts mirrors the development community’s struggles to reconcile code with design. We’ll examine how the ideas of Walter Gropius and other leading minds at the Bauhaus remain relevant nearly a century later, and focus on how these fundamental tenets can guide the way we structure our JavaScript.

Tim Slatcher:
Interactive Visualisations at Scale

As data scale increases and browser capabilities grow, it’s becoming increasingly possible to build rich, interactive visualisations on the web. Join us as we explore some of our powerful browser-based analytic tools designed to visualise time-series data and network graphs. In this session we’ll talk about how to use the DOM, Canvas and some smart Javascript tricks to build interactive user experiences designed to scale with the data.

Christoph Pojer:
Evolving Complex Systems Incrementally

JavaScript that writes JavaScript: Christoph will give an intro to jscodeshift and the underlying tools like recast and ast-types that help rewrite and modernize a lot of Facebook’s JavaScript code day-to-day. We’ll explore why these tools become increasingly important and how they change how we think about open source and breaking API changes at Facebook. At the end of the talk everyone will be able to run their own code transformations across all of their projects safely and efficiently.

Kai Jäger:
What it’s like to live on the Edge

This is the story of a new browser with a complicated legacy. It’s a story about making new friends without alienating old acquaintances. Most of all, it’s a story about innovating without breaking the Web. This is the story of Microsoft Edge, the new browser in Windows 10, how it came to be, what separates it from Internet Explorer and what that means for web developers. It’s a tale of epic proportions with a happy ending that is really only the beginning.