Functional programming is a great way of managing complexity in user interfaces. User interfaces are very difficult to build due to the difficulty in determining if they’re “correct” or not. In this talk I’ll go into some ways that functional programming techniques like referential transparency and immutability can lead to easier-to-build user interfaces.
Macros allow you to extend a language with new syntax and semantics, just like you would build new APIs on top of native ones. There’s no reason the language itself shouldn’t be extensible, which allows it to grow naturally.
What’s does a mouse drag event have in common with an Array of numbers?
Declaratively build complex events out of simple events (ex. drag n’ drop)
Coordinate and sequence multiple Ajax requests
Reactively update UI’s in response to data changes
Eliminate memory leaks caused by neglecting to unsubscribe from events
Gracefully propagate and handle asynchronous exceptions
Focusing on how we use RXJS at Netflix, this session will show attendees how to use the 5 pillars of Functional programming: map, mergeAll, filter, reduce, and zip and how they are superior to their imperative counterparts. Attendees will then learn how to use Observable objects to put the “reactive” into their functional code to write code that will react to asynchronous calls and events using the RXJS library.
You have it in your codebase. You’ve tried to clean it up. Heck, you may have written it. It’s the Ball of Mud.
It didn’t start out that way. You just wanted to add some nice interactive functionality to your website. But then one jQuery plugin turns to three, you add a dash of statefulness, some AJAX error handling, and here you are, unable to sleep at night.
But your client-side ball of mud can be tamed! We’ll walk through test-driving a refactor until the code is understandable, usable, and extensible.
We’ll use Ember Components, though the pattern holds for the framework (or no framework) of your choice. It’s time to get excited, not exasperated, when asked to add advanced client-side interactions to your website.
In this session, I will present a walkthrough of Ember.js core features. I will showcase a test-driven development of Ember.js application using Jasmine. I will also explain Ember.js’ data bindings that allow for creation of views that update automatically in response to model changes. I will demo ease of Ember.js and Rails integration. Finally, I will utilize Ember.js components to create reusable UI elements.
In summary, Ember.js is a great framework for creating complex single-page applications. Attendees will leave the talk with a solid understanding of Ember.js test-driven development process.
And benchmarks for all!
Its the ’90s and you’re blind. The internet shows up, and as it has for everybody else, the world has at once gotten much bigger and closer to you. The content is inspiring and the interfaces simple.
It’s 2014 and you’re a web developer. You add alt tags to images and order your headings but have never heard of aria-labelledby or closed your eyes and used a screenreader. It is time for you to level up and bring the web back to the blind.
Join me and my screenreader in a dark room as we talk about fundamental accessibility strategies and learning resources.
We still don’t have a sensible package management workflow for the browser. Instead we have various pieces of package management tooling that may or may not play well together. The main reason for this is the lack of agreement on a module system and module loader for the browser.
With the ES6 module specification getting very close to completion, we now have a module format and dynamic loader that are specified natively for the browser. The hope is that this will provide the stability we need to move us closer towards agreement on methods allowing module management in the browser to be as easy as using npm on the server.
The ES6 Module Loader polyfill enables these ES6 module loading methods in browsers today, and with builds the polyfill is suitable for production use. The loader can also be customized to support dynamically loading AMD, CommonJS and global scripts directly in the browser, providing an upgrade path for legacy modules.
This talk will provide an overview of ES6 modules and the module loader, as well as providing examples of these techniques in action.
In addition to APIs, high-quality animation requires effective workflows and tooling. With animation being such a visual craft, text-based workflows will only get us so far. In this session, we will explore some of the visual tools to help us build better animations more easily than ever before.
Building things that interact with the physical world can be profoundly satisfying. However, if you work high up the abstraction ladder hardware hacking can seem a scary place full of scary things like assembly, microcontrollers, C, solder fumes, and the risk of death by electrocution. Fear not! None of those things are actually scary. Okay, death is scary, but highly unlikely!
If names are spelled wrong or are the incorrect name please let us know. Not everyone said their name or had it in their slides for the lightning talks. firstname.lastname@example.org
00:00:25:04 - Nick Howard
00:02:42:03 - Rob Martin
00:08:58:02 - Eric Berry
00:13:57:13 - Murphy Randle
00:18:07:19 - Brad Midgley
Lots of code. Lots of real life examples. Should be useful to anyone working with a large team on a large node code base.
Let’s fix our bugs!
Build systems play a crucial role in every developers life. Why do we settle for subpar processes when we can have it all? I’ll talk about grunt, gulp, and a little about the philosophy of builds.
Have you ever wondered how to make awesome canvas animations? This is where you can come learn about: Briefly talk about the Drawing API Basic Trigonometry for animation Basic motion (Velocity & Acceleration) Learn about radians & degrees. Just basically explain them and how to convert them. Learn about sine waves and how to animate using sine waves. The fun part will be motion. I will explain velocity, acceleration and show tons of code and demos. This talk will be more fun to you if you have a laptop and pull up my slides. I have a couple of demos that are interactive with the keypad. Do you want to animate awesome stuff? Then see you there!
This talk is about pursuing a dumb idea to its extremes. In this case, the dumb idea was to scrape GIFs off Tumblr, play them back fullscreen, and beat-match them to music from Rdio. An instant GIF party, if you will. It’s been my hobby project for over a year, and covers a huge range of web technologies.
We’ll explore some of the things I’ve learned along the way. Such as:
How inflexible, inefficient the GIF format is, but how ubiquitous and beautiful GIFs themselves are
Writing a binary GIF parser in JS vs using Emscripten to compile existing C code
Different ways of detecting a GIFs pacing, rhythm and mood
Repurposing CloudFront to circumvent same-origin policy problems and proxy someone else’s CDN
Synchronising audio, metadata, GIFs and resources from 3 external APIs within a requestAnimationFrame loop
The incredible depth of audio analysis information available from the EchoNest API
Using Heroku and a few lines of NodeJS to refactor an external API
The potential of using a computer’s microphone to do ambient beat detection of music playing elsewhere in the room
I hope you learn something along the way too.