by Juan Caicedo
Streams provide the tools for building powerful and efficient web applications that scale to handling large amounts of data effortlessly. However, knowing how to leverage them in your web applications can be daunting!
This talk will introduce an architecture that uses streaming as its main means of communication. It will explore three frontiers of streaming: how to stream from module to module in the back end, sending a stream response from the server to the client, and receiving/processing a stream response on the client. By the end, you will learn the basics of UNIX streams, how to use them with Node.js scripts, and how to write web applications that profit from all the benefits of streams.
Smart watches, wireless earphones, even flying robots... the availability of Bluetooth Low Energy in your smartphone is driving a 'connected devices' revolution. You can use your favourite language JavaScript to jump on board, with technologies like React Native, Cordova and the all-new Web Bluetooth API.
Peter will share how to use Bluetooth to start controlling the real world around us. You'll have a programmable drone at your disposal in no time!
React provides a great foundation for building and implementing reusable components, that whole team (and community) could greatly benefit from. But to make the code actually reusable, it should be properly presented and documented. Robert will guide you through the key patterns of building React components library with proper navigation, rendered components sandbox and API description.
by Gary Short
During this talk Gary will take you on a journey through probability and predictive analytics, starting with the basics and ending with advanced machine learning. Instead of just presenting you with one topic after another, however, you'll explore this through the medium of predicting the result of a horse race, with each topic refining our predictive model.
by Maurice
Most React-Redux applications just store the work in progress as is in a database. It is fine to treat data in a simple CRUD fashion like this with a smaller application. But yet this is not optimal when applications get more complex. Use the Command Query Responsibility Segregation (CQRS) design pattern for more complex applications. More so, combining this with Event-Sourcing (ES) is an even more powerful solution. Further, Event-Sourcing ensures that every action, which led up to the current state, is stored as a separate domain event.
This collection of domain events is then used as the write model in the CQRS model. These same events are then launched into a secondary database to build the read model for the application. During this session, Maurice de Beijer explains why you might want to use Event-Sourcing. He further explains how to get started with this design in your React and Flux applications.
by Matt Zeunert
Tracing a bug in a complex application can be a frustrating experience. Luckily the tools available for debugging JavaScript code have improved tremendously over the last few years.
This talk demonstrates how the advanced features of Chromeâs JavaScript debugger can be used to find, understand, and fix code more effectively.
Handling asynchronous code with callbacks forces you to build an unmanageable stacks of function calls, which often leave you buried beneath them. Is there a better way to handle this? Yes, with Promises, Cogenerators and new async/await keywords. You will discover the core of those tools, as well as how to break apart common Callback Hell scenarios into beautiful method chains and a sync-style code.
Firebase is an amazing service that allows you to create real time data sharing in JS between multiple clients. Phaser.io is a javascript library for making games. Opher will be live coding to show you how to use Firebase & Phaser.io to create a multi-player game experience in the browser. Your participation is both mandatory and fun!
by Jason Green
JSON Schema is a powerful tool for validating deep, complex data structures and is a godsend for those of you who miss the most comprehensive solutions some of the more mature languages had to this problem.
In this talk you'll discover that with JSON Schema, and a good validator library, you can do so much more. Automatic form generation, recursive data transformation, data generation and basically any other operations you would like to do over a deeply nested data structure. You can even do business process automation with schemas.
In the talk Jason will kick off with an introduction into some of the concepts involved before exploring 2-3 unexpected but useful examples of JSON Schema use.
After two years of using ECMAScript 2015 features in live applications, Scott has come to recognize a few areas that developers can find confusing. There are also features with the potential to hurt the maintainability of the code for other developers, and degrade the performance of the application at runtime. In this session you'll explore features like string templates, arrow functions, promises and modules in a different light.
by Yehuda Katz
More info coming soon!
by Shaun Dunne
Unless you've been hiding under a rock for the past few years you've probably heard of this little piece of retro technology called VR, but VR is just for Games, right?
Let Shaun introduce you to WebVR. Yes. VR on the Web, in your browser and it works right now. Its early days yet but specs are being written and things are being built with it - not only is it awesome to experience its super fun to build with and experiment new ideas with and has a very low barrier to entry. You need a decent smartphone with a browser, a cardboard VR headset and a little bit of Code and you're rolling.
by Mark Drew
Web applications went from being a static site with a single form and perl script to full on AJAX implementations and RIA stacks. In this session Mark shall present the METEOR stack!
A superb way to create super responsive and fast applications that are a delight to use and develop. Using one language (to rule them all), JavaScript, for both the front and back end, in this session you will see how you can:
- Build modern web applications that feel like desktop apps not a bunch of lose pages strung together
- Make a great experience for both the browser and mobile
- Learn how Meteor applications are super fast and see live data updates (puppies and unicorns!)
- Use one language both in the back end and the front end
- Deploy your applications to mobile and web instantly (ok, in a few seconds at least!)
PLEASE NOTE - You should have some knowledge in building web dynamic applications, whether it is just one form or a fully dynamic web application.
by Komal Jain
The world of web is screwed up in a big way - huge chunks of HTML copy pasted everywhere, libraries conflicting with each other and messing up styling etc. The final choice of who wins in this war of libraries and pasted HTML ultimately depends on one thing - does it get the work done? But the core question everyone needs to ask is - why does it need to be so difficult?
Polymer project was introduced with one thing in mind - making reusable components that just work out of the box without too much hassle. And that they work the same way irrespective of where they are. It tackles this problem by allowing you to create complex UI widgets which are extensible as well. This revolution is powered by a new set of standards being pioneered by Google called âWeb Componentsâ.
This session will guide you through the pain areas in front-end web development and introduce everyone to the world of Polymer. Youâll take a quick look at how to create and use custom/pre-built web components, the mystery of shadow DOM and all the hoopla surrounding Polymer.
by Rajiv Bose, Eric John Juta and Julia Mitchelmore
Youâve chosen React to build your web app, and added in Redux to create your store. But now youâre staring down the barrel of your project, realising that you need to optimise for millions of users and search-engine robots. Is your flashbang new stack up to the challenge? How will you handle authentication and session management in an isomorphic app? Can you ensure immutability? Will Redux rise above it all, or crumble in the face of the humble scroll event?
These are all questions we faced while building a new mobile e-commerce experience for a global audience. With each sprint came new decisions to be made, new learnings about what approaches work, and new discoveries about which libraries wreck havoc with everything in their path. Wading through the gotchas and facing an immovable deadline, we answered the question - will Redux scale?
Join us for session exploring the ins and outs of Redux at scale, and discover how you could implement it in your own next project.
by Gregory Wild-Smith
Over the last year and a half Bleacher Report has moved from a monolithic Rails application to a micro-service based system with a front-end powered by an isomorphic React & Redux app running on NodeJS. This is the story of how Blacher Report incrementally moved their front-end tech stack to this system, the challenges they encountered along the way, and some of their design solutions for this stack - in JavaScript, CSS, and much more.
Complex React applications require deep thinking about State, Stying, Asynchronous Communication, and application structure. Not only that but developer tooling and using sensible modern workflows (like SASS, Browserfiy, ES6/Babel, Promises, etc) can create a codebase that is not only easy to reason about - but a pleasure to maintain.
The team learned a lot doing this, and Gregory wants to share that with you.
by Joubran
Learn AngularJS using ES2015. ES2015 introduces many new features that you can benefit from when writing Angular apps.
A prior knowledge of Angular is required to attend this talk.
Load balancing is something most of you assume is a solved problem. But the idea that load balancing is "solved" could not be further from the truth. If you use multiple load balancers, the problem is even worse. Most of you use "random" or "round-robin" techniques, which have certain advantages but are highly inefficient. Others use more complex algorithms like "least-conns," which can be more efficient but have horrific edge cases. "Consistent hashing" is a very useful technique, but only applies to certain problems. T
here are several factors that exist both in theory and practice that make efficient load balancing an exceptionally hard problem. For instance:
- Poisson request arrival times;
- Exponentially distributed response latency;
- Oscillations when sharing data between multiple load balancers .
You will explore techniques and algorithms such as Randomized Least-conns, Join-Idle-Queue, and Load Interpretation. Load balancing perfectly may be impossible in the real world, but you can do better than ârandom,â âround-robin,â and naive âleast-connsâ.
You will walk away with an understanding of why traditional load balancing techniques are sub-optimal, practical techniques for improving it, as well as longer term theoretical approaches. You will also learn what makes load balancing such a difficult problem and why it's impossible to solve precisely.
by Ben Lambert
Ben will talk about how the team at BBC is able to support millions of concurrent users and deliver realtime updates to clients in the way of Live Pages and the football pages in BBC Sport. The Euro's have just happened (Hopefully without problems) :)
You will also discover how they scale their systems using AWS, using React to deliver fast documents and websockets to simultaneously push to all connected clients.
Security - the elephant in the room. Everyone agrees that it is very important but few takes it seriously: in the recent past a huge number of companies leaked massive amounts of user data. Let's take a look how you can survive web security - from an application developer's point of view.
In this talk you will explore web security issues and how to fix them when using Node.js. Some of these issues are among the OWASP Top 10 and pose serious risk for web applications.
by Ian Spiro and Sam Headrick
Gartner has estimated that 21 billion internet-connected devices will be in the hands of consumers by 2020. As the Internet of Things becomes more ubiquitous, you see âdumbâ devices becoming âsmartâ as they call for internet connectivity as part of normal day-to-day use.
As internet-connected versions of devices like thermostats, syringe pumps, and centrifuges become commercially successful, youâre finding that little thought has gone into securing the data collected or controlled by them. When considering everyday objects like refrigerators and toasters, the risk is arguably limited. But consider the ramifications when products that bear the keys to our life & livelihood, devices like cars and pacemakers, are compromised. How âsmartâ are these devices if they are more often than not susceptible to potentially lethal attacks?
In this talk you will explore:
- Recent, successful IoT attacks
- A first-hand account working with an early-stage company to identify potentially dangerous vulnerabilities
- How to take a proactive approach to security: what you can do moving forward to keep yourself safe from âsmartâ devices?
JavaScript Web Applications are shipping increasing amounts of logic to the browser. This logic interacts with critical data such as user credentials, personally identifiable information, credit card numbers, etc. JavaScript is a highly dynamic language and it's very easy to interfere with the client-side application logic and with its execution environment. In this talk Pedro will share with you what is the current state of the art regarding Client-side Web Application integrity and show some attack scenarios.
by Phil Nash
Service Workers are the biggest thing to hit the browser since XMLHttpRequest. You'll explore what the Service Worker can do for your app and more importantly, your users. You'll learn the surprisingly small amount of code you need to get started with a Service Worker and finally you'll discover the Progressive Web Apps and how the Service Worker will take part in a revolution for web applications.
by Ashley Nolan
Front-end development tools and techniques move forward at a blistering pace. Project dependencies can often be out-dated within months, while picking up a legacy codebase can feel like entering a time-warp.
So how do you build websites and applications with the future in mind?
Ashley will share with you his insights on how heâs addressed these issues during the redevelopment of the JUST EAT International Platform. Heâll relive the tears he shed when being faced with a monolithic legacy codebase, what the team has changed to make its development process far easier to work with and how these principles can be applied to websites or applications of any scale.
by Mark Wubben
Servers in distributed systems need to agree with each other on their state. You could use the Raft Consensus Algorithm to build reliable distributed systems. Google does! This talk covers how Raft works, how to implement a synchronous algorithm in asynchronous Node without blocking the event loop and how to use fuzz testing to increase confidence in the implementation.
Mark is exploring the construction of distributed systems in Node.js with a set of reliable, non-prescriptive building blocks. The goal is to make it easier to build systems that fit your needs without having to maintain separate infrastructure.
As a first step Mark is writing Buoyant, a framework for implementing servers using the Raft Consensus Algorithm. It's designed to be a reliable Raft implementation without requiring a particular network protocol or storage mechanism.
You will discover why Raft is important and, and Mark will offer a basic explanation of how it works. You will also learn how Buoyant orchestrates its actions to avoid interleaving (this, though counter-intuitive, is necessary as Raft assumes synchronous behavior). Finally Mark will cover how fuzz testing is used to increase confidence in the implementation.
Sometimes video is not just video. Part of the video experience on the web is letting people interact with it. Whether it's simply pausing and seeking, jumping to other videos or creating full interactive experience - one aspect is always important: The GUI. So how can you layout amazing interfaces on top of video with web technologies, and make it work across devices and platforms without affecting video performance? Opher will present several methods of achieving just that, discussing best practices and highlighting the advantages and disadvantages of each.
by Mark Rendle and Dylan Beattie
âThe comedy quiz show about software, programming, the internet and technology. You've seen it at BuildStuff, you've seen it at NDC; now, join Mark Rendle, Dylan Beattie and their guests as "Have I Got Nodes For You!" returns to SkillsMatter's CodeNode for an hour of technology, trivia, bizarre programming facts, missing words and Twitter bots.
by Todd Motto
More info soon!
by Raanan Weber
Babylon.js is a WebGL game engine, written in TypeScript. One of its strong points was always the integration with external physics engines to increase the realism of a game implemented with it.
For the upcoming version (2.4) the physics engine was completely rewritten, to allow an easy integration of other physics engines.
Raanan will discuss how he used TypeScript to implement the new physics engine and its new plugins architecture. He will show how he selected the functionality to be implemented and how to keep power-users satisfied with low-level access to the external engine.