Schedule

7:30am - 9:00am

Registration

9:00am - 9:15am

Opening and Announcements

9:30am - 10:30am

GraphQL to the rescue

Jay Hogan
Blue Ridge DE
Description

Front-end developers, are you frustrated by complex or course API's that require you to make multiple requests to render a simple view? Are you tired of heavy response objects that contain a multitude of fields when all you needed were a few? Are you constantly referring to the API documentation to determine how to use a particular end point? Server developers, are you tired of creating custom end points or tacking on extra fields to support an seemingly esoteric need in the UI? Are you having a hard time managing changes to your API over time and determining the best versioning strategy of your REST or Ad Hoc end points? Are you struggling to keep your API documentation up-to-date? Does any of this ring true for you? If so, you should consider adopting GraphQL. In this talk, Jay Hogan will introduce you to the core concepts of GraphQL, present the key benefits of GraphQL over REST or ad hoc endpoints and perform a code walkthrough of a simple web-based NodeJS app that leverages GraphQL.

HTML5 Web Components State of the Union

Kito Mann
Blue Ridge C
Description

Several years ago, Web Components was announced as a powerful way to build applications using reusable widgets. They key difference between Web Components and other approaches is that it’s actually part of HTML5, so it’s built into the browser itself. The promise is that we will have reusable components that can be used with different JavaScript frameworks or without any framework at all.

So, have they lived up to the hype? What is the status of the Web Components specs? Which browsers implement them? Do they really work with different JavaScript frameworks? Come to this session to answer these and other questions.

Server-side rendering of React components using ASP.NET MVC

Jared Lotti
Blue Ridge AB
Description

Join Engineers from the CarMax team as they discuss their journey to transform the search capability on carmax.com to Universal React rendered via ASP.NET MVC and Nodejs. We will discuss the business case, demonstrate the technology, and the business impact of this new technology.

10:45am - 11:45am

Some Assembly Required: A Tour of WebAssembly

John Feminella
Blue Ridge DE
Description

WebAssembly is a way to run code on the web that's not JavaScript, so that your existing and future JavaScript code can be better. If you've ever written non-JS code somewhere else, sometimes you may wish that this code could run on the web. The promise of WebAssembly is that now it can -- effectively, efficiently, and compactly.

In this talk, we'll discuss what WebAssembly is, how it works, and how it can team up with your JS to make your applications much more powerful. By the end of the talk you should feel confident enough to try it yourself and see where it might be applicable to your needs.

Skip The Line: Handling RFID Media at a Theme Park using Rxjs Observables with React, Redux, and WebSockets

Josh Stickles
Blue Ridge C
Description

During this talk you will create a Web Application that will manage the line for a new ride at a Theme Park. It will handle the queueing of guests waiting in line for the newest ride in your park, and will allow for VIPs to skip to the front of the line when they arrive.

The application will interact with a USB RFID scanner that is exposed via a local WebSocket. A demo WebSocket application will be provided for download as well. You will learn how you can handle a guest tapping their RFID media and how you can observe those actions and respond in React + Redux; allowing the guest to skip to the front of the line for the new ride at your Theme Park.

As you build the application you will learn of the different approaches to handling of real time events in JavaScript, some of the benefits of the Observer design pattern, and the specifics of Rxjs' implementation of Observable.

Evolution of Angular, from 2 to jHipster

Leigha Wilson
Blue Ridge AB
Description

Angular 4 comes at the development world with a great combination of what we loved about Angular, mixed with some great pieces of React! We’ll talk about the benefits, as well as how we can utilize this platform. With the help of our yeoman generator jHipster, you will be embedded in the open source world with all the resources needed to build the web, mobile and tablet application you’ve been envisioning!

First we will cover the changes from Angular 2 to 4, why we skipped 3, and why React has anything to do with an Angular application. Then we will jump into the ease of creating the application you want with jHipster! You can have not only the Angular within your code, but also Spring Boot and Bootstrap in just a few clicks of your mouse.

11:45am - 1:00pm

Lunch

Chesapeake

1:15pm - 2:15pm

Getting Started Building Serverless Apps with Node

Scott Radcliff
Blue Ridge DE
Description

Serverless architecture suffers from an unfortunate name. While not actually serverless, the technology still serves a valuable purpose in computing. In this talk you will learn the following:
* Why serverless is an unfortunate name
* How serverless applications work
* Where you would use a serverless application
* How to build them on Amazon Web Services with Node

Stream And Observe : Reactive Programming in JavaScript

Tim Roberts
Blue Ridge C
Description

What if we could describe to our component the data it needs?

Stateless Components in React are a pleasure to test and debug: testing is `does this prop render this markup` and debugging is `what prop is wrong?`. We can create building blocks upon other components to use, creating larger and larger abstractions. And for a static prop tree, one might grok how the data can flow from parent to child, but as the interactions grow and more actions/events are fired that update the global prop/state tree, it becomes difficult to keep those connections and relations in ones head.

Stateful Components or Redux/Flux store management offer ways to handle those connections but in a somewhat awkward fashion when it comes to asynchronous `actions`. We also end up having to find ways to connect those asynchronous actions into our synchronous render. How can we use the idea of a single source of truth between the state of our UI components and the state of our data ( database )?

Enter `RxJS`. Using familiar Array#extras methods like `map`, `filter`, and `reduce`, we can create a single source of truth with clear, direct, explicit updates, dependencies, and code. We can also use `WebSockets` and hook actions on the server into the state of the client to have an in-sync `store`, shared between client and server.

Reactive Programming, with its ideas of streams and Observables, offers an elegant solution to the mess that is asynchronous events.

Components All the Way Down: Style Organization Tips for Bewildered JS Devs

Christine Bryant-Ryback
Blue Ridge AB
Description

For certain kinds of application or product development, many JavaScript developers can end up avoiding writing CSS at scale. Once they run into a situation that calls for it, they often don't have a good idea of where to start. Working on a client services team where I wear both hats, it has been helpful to introduce a vocabulary where we can talk about styles–either metaphorically or literally–the way we talk about JavaScript. If you know a bit about modularity and data flows in JavaScript, you'd be surprised how much you may already know about style organization systems. Whether you're working on small freelance projects or large applications, let's improve your understanding of CSS strategies.

2:15pm - 2:45pm

Afternoon Break and Networking

Hallway

2:45pm - 3:45pm

7 Best Practices for serverless Microservices

Bob Larrick
Blue Ridge DE
Description

Serverless Microservices are small (micro) programs run on ephemeral cloud (serverless) hardware. They definitely do have some benefits or there wouldn't be ten zillion blog posts and companies promoting them, but they have some pitfalls too.

* Smaller programs have fewer responsibilities and are easier to reason about in isolation.
* Not having to manage your own hardware is 👌 *chef kissing fingers* 👌
* Coordination becomes tricky, and you sacrifice your ability to control your environment.

Learn how to stitch together many small programs to achieve big results, and how to do it all independently, in parallel, with confidence.

Strategies for learning React

Ryan Lanciaux
Blue Ridge C
Description

In this talk, we will consider some strategies for learning React and some of React’s core principles. From there, we will discuss how taking a component-based view of our front-end can help us build an application architecture that scales over time. Finally, we’ll examine some important libraries in the React ecosystem and what problems they are working to solve.

Service Workers Overtime

Matt Clough
Blue Ridge AB
Description

JavaScript has come a long way in recent years and, in the process, has elevated the web as a platform for apps. Modern APIs have given web apps access to data like touch events, device orientation, geolocation, and media streams, but few innovations have taken such broad strides towards a native mobile experience as service workers. With capabilities like fetch event handling, resource caching, push notifications, and background sync, service workers bring the promise of installable progressive web apps (PWAs) that are nearly indistinguishable from native apps. Despite this relative miracle, service workers have a lot to offer the web, on _and_ off a mobile device. In this talk we'll take a look at service workers, how to use them, and explore their possibilities.

4:00pm - 5:00pm

Everything you need to know about JavaScript accessibility

Karl Groves
Blue Ridge DE
Description

Accessibility is often seen as nebulous by designers and developers. It is particularly difficult if you don't know anyone with disabilities or have never watched anyone with disabilities use a computer. In this talk, Karl Groves uses a live coding example to walk through the high level requirements for an accessible user experience that relies on JavaScript.

The Variable Crimes We Commit Against JavaScript

Julka Grodel
Blue Ridge C
Description

Have you ever put a value into a JavaScript variable, and then been unable to use it where you needed it? Or created it and unintentionally overridden something you thought wouldn't be effected? JavaScript has an unusual way of handling where variables are available, we call this 'where' a scope. In this talk, we'll go over how JavaScript variables 'bubble' up into higher scopes, how to restrict them to just where you want them, and how this effects variables in your functions.

Depending on time, this might just talk about ES5 scopes, or I might be able to go into ES6 and TypeScript.

Scopes in JavaScript are a misunderstood aspect by many developers and can create frustration when troubleshooting code. This talk doesn't require any knowledge of JavaScript specifically, but a proficiency in some programming language is helpful.

Nicolas Cage: The Path to Programming

Paul Chin Jr.
Blue Ridge AB
Description

Come join me at the intersection of Nicolas Cage, JavaScript, and hardware hacks. I had zero programming knowledge and within a year I was able to create a Node.js and Arduino powered Nicholas Cage worshiping tool.

I was once lost, I thought that I would never be able to code or build a robot ... and then I was lifted out of the darkness! It was all thanks to the the positive impact that the developer community had on me. The talk is very interactive and includes a LIVE demo of the hardware. It is also a great starting point for those who wants to learn about using JavaScript to control hardware. Long time coding veterans should also attend if they find themselves stuck trying to find the perfect side project or feeling like they can't build anything new. I invite people to open their minds and realize that they are capable of building anything they want, no matter how silly it may seem.