Feed icon 28x28
Small mwjs 2015 hill original

MountainWest JavaScript 2015 Schedule

March 3 - 4, 2015

( 20 available presentations )
D1 jafar thumb
Rating: Everyone
Viewed 373 times
Recorded at: March 3, 2015
Date Posted: March 27, 2015

Many web developers are already familiar with JavaScript 6. Maybe you are already using a transpiler and have gotten a glimpse of how much easier JavaScript development can be with features like arrow functions, generators, and destructuring. You may be surprised to learn that JavaScript 6 is only the beginning. The committee is already hard at work on JavaScript 7, and it’s not too early to get a glimpse of some of the features being proposed. While version 6 brought JavaScript to parity with other popular scripting languages, version 7 may introduce powerful new features never seen in a popular programming language. Imagine building an entire JavaScript program without a single callback, and being able to build asynchronous programs with simple primitives like loops.
Some of these features have already appeared in modern browsers, and it’s not too early to start playing with them. Come glimpse into the future and start thinking about how to write forward compatible JavaScript applications today.

D1 steve thumb
Rating: Everyone
Viewed 387 times
Recorded at: March 3, 2015
Date Posted: March 27, 2015

We’ve all been sold the tale that with one codebase we can support almost any platform you can imagine. After years of using these tools, nothing has really seemed to solve this problem well. Even when applications are built with tools like Phonegap, they never really “feel” right and fail to live up to native user experience expectations. Is this a fundamental failure of the idea “Write Once, Run Everywhere” or a failure of tooling?
In this talk I will discuss the future of building real mobile applications using web technologies, and the alternate idea “Learn Once, Write Everywhere”. You will hear about react-native, UX, Phonegap, Titanium, Trigger.io, and the future of mobile web applications.

D1 john brown thumb
Rating: Everyone
Viewed 211 times
Recorded at: March 3, 2015
Date Posted: March 27, 2015

The formula for a Bezier curve is beautiful. Using sine and cosine to create orbiting objects is dazzling. L-systems create fractals through elegant simplicity. Developers, as a group, may be losing site of the beauty that code can create. Designers by the bunch are picking up a keyboard and creating amazing pieces, but it’s happening the other way very slowly. That’s a shame, because the computer lets otherwise unexpressed ideas go unexplored.
Javascript developers, in particular, have the ability to embrace the art of programming and the art of art because of the myriad frameworks available. Use Node and JS to make some art, whether it’s in the browser or in the physical realm. Walk away with the confidence and the inspiration to put down the work for a minute and pick up a digital paintbrush.

D1 gord thumb
Rating: Everyone
Viewed 122 times
Recorded at: March 3, 2015
Date Posted: April 1, 2015

bitHound is a JavaScript shop. We have been working with JavaScript for a few years and have a major appreciation for the power and speed of which we can build in nodeJS. When we set out to start building bitHound, we made sure that we were able to use it to analyze itself to hone the tools.
JavaScript is a great language but doesn’t come without it’s challenges. We will cover the lessons learned on our path to developing our distributed compute platform.
Specific topics that will be covered throughout include:
Brokerless / brokered messaging
Designing for a generic compute note architecture
Limitations of node and JavaScript for parallel tasks
Using non-blocking io to speed up large jobs
When and how to split long running tasks
Handling failure
Using metrics to improve architecture and performance

D1 dave smith thumb
Rating: Everyone
Viewed 246 times
Recorded at: March 3, 2015
Date Posted: March 27, 2015

What every JavaScript developer should know about Big O notation. Computer science can be intimidating, and Big O is no exception. Let’s break it down. Understanding the time complexity of common JavaScript operations can make your code faster and make you smarter. Not to mention, who doesn’t want to toss around words like “linearithmic” and “amortized logarithmic” in dinner conversation?

D1 jonathan martin thumb
Rating: Everyone
Viewed 145 times
Recorded at: March 3, 2015
Date Posted: March 27, 2015

Closures are undoubtedly the most powerful feature JavaScript inherited from its Lisp forbears. But would JS be so powerful… without them?
We’ll reimplement closures entirely from scratch without the convenience of native local variables or function parameters. Entirely in JavaScript. Using prototypal inheritance, some clever hat-tips from graphics programming, amnesic function bodies, and this one weird global variable.

D1 cameron matheson thumb
Rating: Everyone
Viewed 183 times
Recorded at: March 3, 2015
Date Posted: March 27, 2015

The JS world is rich in gradually typed programming languages (TypeScript, Flow, and even ActionScript (sort of)). This talk will give some motivation for gradual typing and a brief history. Also a comparison of the kind of errors TypeScript and Flow will catch.

D1 tyler mcginnis thumb
Rating: Everyone
Viewed 153 times
Recorded at: March 3, 2015
Date Posted: March 27, 2015

If you’re a front-end developer and you hate learning, you’re going to have a bad time. Over the past few years I’ve taught hundreds of people to learn to code. Along the way I’ve gathered invaluable insights into the way we learn and what helps us to learn most effectively. In this talk I’ll be discussing these insights and how you can more effectively keep up with the quickly changing front-end developer landscape.

D1 whitney williams thumb
Rating: Everyone
Viewed 646 times
Recorded at: March 3, 2015
Date Posted: March 27, 2015

The belief that design and development have competing interests can stand in the way of successful collaboration. In reality, the principles of good design often mirror those of good development.
In this talk, we’ll take a look at design skills that translate well into development, encouraging effective communication among members of both teams. By throwing away stereotypes and working together, we can harness the unique skillsets of designers and developers to push the boundaries of technology.

D1 jeremy lund thumb
Rating: Everyone
Viewed 182 times
Recorded at: March 3, 2015
Date Posted: March 27, 2015

While there have been JavaScript module loaders available for some time now, none of them are quite like Webpack. I will talk about what Webpack is, how it can help you in your web projects, and demonstrate all of the powerful ways you can package your code for the front end using Webpack. Finally, I’ll demonstrate some ways to consume third-party modules using Webpack.

D2 brad thumb
Rating: Everyone
Viewed 82 times
Recorded at: March 4, 2015
Date Posted: April 1, 2015

We need to turn the page on the idea that kids should learn programming by building flow charts. But this will typically be their first exposure if they start out in robotics.
Robotics is an exciting place to try out a programming idea because the surface area of your app, the part that interacts with the world, becomes immense. An idea that could be written off as passable UI or workable modeling might literally crash and burn when faced with interacting in an unforgiving world.
Let’s chat about why the correct model for programming bots and for modeling behavior is a hierarchical state machine. It sounds complicated but everyone can understand when it’s related to how we think about solving problems as people in the world. This opens doors for fun concepts like machine learning and genetic programming. Plus we can build this in javascript and put it to work in the field to find out right away what works and what doesn’t.
I’ll demonstrate this running in a javascript framework running on the FirefoxOS phone. This is a phone that makes you code and love doing things with only javascript.

D2 justin searls thumb
Rating: Everyone
Viewed 158 times
Recorded at: March 4, 2015
Date Posted: March 31, 2015

Social coding revolutionized how we share useful code with others. Bundler, npm, and Github made publishing and consuming code so convenient that our dependencies have become smaller and more numerous. Nowadays, most projects quickly resemble a Jenga tower, with layer upon layer of poorly understood single points of failure.
Despite our progress, we’d benefit from pausing to reflect on our relationship with open source. Convenience and ego drive most open source adoption, but these shortsighted motivations raise long-term problems we need to clearly identify if we can ever hope to solve them.

D2 merrick thumb
Rating: Everyone
Viewed 246 times
Recorded at: March 4, 2015
Date Posted: April 1, 2015

The web as a platform has historically made sharing code very difficult. However, thanks to ES6 modules this is a problem of the past allowing us to combine toolsets in ways we never could before. What happens when you take Backbone’s Models, Angular 2’s DI, React, maybe even some Ember Router then leverage them together in a project? The Frankenstein Framework. The time of “choosing a framework” is dead, compose your own frameworks today thanks to the power of ES6. (Webpack until ES6 is around for reals.)

D2 zean thumb
Rating: Everyone
Viewed 206 times
Recorded at: March 4, 2015
Date Posted: April 1, 2015

React is heralded for its use in beautiful and intuitive user interfaces. It’s most commonly invoked as a pure view layer, where data management and business logic is handled by other means. However, when React is extended to encompass the facets of both the client-side model and controller, the result can be faster and more scalable than using React for the view layer alone.
At reddit, our front-end stack integrates React with JavaScript abstractions to create a powerful and flexible MVC. It’s fast, scalable, and exposes positive side-effects that are made possible when React is appreciated as being more than “just the view”.

D2 jason dobry thumb
Rating: Everyone
Viewed 833 times
Recorded at: March 4, 2015
Date Posted: March 27, 2015

Your data is one of your most valuable assets, and it deserves your respect. The JSData project (https://github.com/js-data) brings a robust, framework-agnostic data layer to the masses. Forget fleets of boilerplate services and dissatisfactory (read buggy) data management, JSData supercharges your RESTful (and not so RESTful) data and makes handling it a breeze. Primed to grant any JavaScript app wisdom beyond its youth, JSData employs various adapters to talk to HTTP, localStorage, Firebase and . An in-memory store gives you a slick interface for interacting with your data, regardless of where it came from or where it's going. Switch frameworks while leaving your data layer intact! For ages 3 and up and those who above all else, desire power (over their data).

D2 bret thumb
Rating: Everyone
Viewed 133 times
Recorded at: March 4, 2015
Date Posted: March 28, 2015

One of the main reasons native apps are often chosen over web apps is that the web totally sucks in providing a decent offline experience. Come learn about the next step forward in the evolution of web app development where I will introduce the service worker and cache APIs which allow for creating robust offline (and concurrent) web applications.

D2 kyle thumb
Rating: Everyone
Viewed 143 times
Recorded at: March 4, 2015
Date Posted: March 28, 2015

In the early days of my career, things were simple. When it came to streaming media, real-time communications, and all things peer-to-peer, there was really only one choice: Flash. And as someone who knew how to wield Flash, life was pretty good! That is until HTML5, and its’ little buddy CSS3 came around. Suddenly there were options. Options that allowed developers to create a single application that would run on multiple devices. The whispers started. Flash is dying. Flash is dead. And then came WebRTC…
In this retrospective, we’ll look back at the beginnings of real-time communications on the web. We’ll discuss HTML5, and how it took Flash from being the King of the interactive web to near extinction. Finally, and most importantly, we’ll take a look at WebRTC, getting you up to speed on the very tools that put the final nail in Flash’s coffin, and ensuring you’re ready for whatever comes next!

D2 gleb thumb
Rating: Everyone
Viewed 151 times
Recorded at: March 4, 2015
Date Posted: March 28, 2015

JavaScript is an interesting language. It can mimic almost any style you want: procedural, object-oriented, functional, etc. In this presentation I will take a simple problem and will solve it using different approaches. With each step we will see the power of each approach to take the complexity away, while still being the JavaScript we all love to hate. The following topics will be shown: procedural (imperative) style object-oriented functional point-free lazy evaluation immutable data async processing using promises async processing using event emitters reactive programming using event streams
Any team looking to improve its code should attend this presentation. Making a leap from object-oriented approach to reactive programming is too difficult, but you can make it step by step.

D2 josh robertson thumb
Rating: Everyone
Viewed 126 times
Recorded at: March 4, 2015
Date Posted: March 28, 2015

The browser provides a lot of low level APIs. Unfortunately wanting to write JavaScript for hardware can be a hassle if the libraries only exist in certain languages. This can be solved by writing your own APIs, and wrappers. Write high level code to communicate with hardware.

D2 abraham thumb
Rating: Everyone
Viewed 185 times
Recorded at: March 4, 2015
Date Posted: March 28, 2015

Web development pushes us to our limits, not only of cognition, but, perhaps surprisingly, of character. Using the cardinal virtues as a framework, we can see that developers need courage to learn, temperance to prioritize goals, a sense of justice by which to discern, and wisdom to act. By being honest about where we lack virtue, implementing steps to develop character, and resisting shame, we can perform TDD on ourselves. This process can help us grow not only as coders, but as human beings.