In this one-day intensive course, we will dive deep into core mechanisms of the JS language, probably more than you ever have before. Our goal is to not merely understand what these things do, but how and why. We will cover: • nested lexical scope • hoisting • closures • modules • 'this' keyword • common oo patterns • object prototypes • delegation vs inheritance
Does caching object properties in for-loops really make your application faster? What about serving assets from multiple subdomains? Or using dynamic script insertion? In this talk, we revisit some common web performance best practices and discover how well they fare in 2015's browser and connectivity landscape. Spoiler alert: not well.
Static site engines (or generators) are incredibly powerful and popular tools for building web sites. However, there are currently almost 400 options available. In this session, we'll cover what types of sites static site engines are good for, the commonalities of all static site engines and then review several of the most popular options to compare features and differentiators.
If you think CSS is just for designers who tinker with pixels and colors, think again. It takes both sides of your brain to write CSS. If you are a left-brain thinker, come see why CSS is for you, too.
With the latest Windows 10 offering that includes Microsoft Edge, Dolby Audio is now available for playback through the web. In this session, Eric Ang, Head of the Dolby Developer Program will demo and provide the steps for Dolby Digital Plus playback online. He will also show how to take a existing piece of content, encode it, include it, and feature detect for Dolby playback since not all browsers are alike. Be sure to attend this session if you’re interested to hear the difference good audio can make in your web project.
"Did you really think you could make changes to the database by editing the schema file? Who are you, Amelia Bedelia?" The silly mistakes we all made when first learning Rails may be funny to us now, but we should remember how we felt at the time. New developers don't always realize senior developers were once beginners too and may assume they are the first and last developer to mix up when to use the rails and rake commands. This talk, presented in a storybook style, will be a lighthearted examination of some of the common mistakes (and causes of those mistakes) made by beginner Rails developers.
When we want to offer customizability to the users of our applications, things can get tricky. How do we allow users to customize the look of the user interface while reusing the static CSS we’ve already designed? There is a way, but it is fraught with many dangers. Learn about the power of dynamically generating CSS from Sass files in Rails. Tackle the foes of dynamic content injection, rendering, caching, and background processing. In the end, we will look triumphantly at our ability to reuse our application styles to create customizable interfaces for our end users.
When you want to talk to someone, where do you turn? Skype? Slack or HipChat? Maybe even an old-fashioned telephone? As great (or not) as these are, they all fail in one important way: Context. As developers, why don’t we enable our users to communicate where they are doing everything else, right inside the browser or mobile app? The technology to create contextual communications is evolving quickly with exciting technologies like WebRTC. This talk is about how to use WebRTC with Rails to enhance almost any application with voice, video & text. We will cover some of the ways communications can be best employed, including design considerations, as well as available Open Source projects. We will feature a recently released Rails Engine called Talking Stick that makes adding WebRTC to any Rails app a snap.
Patterns are not just for programs; we also see them in people and processes. In this presentation, we will explore patterns found in popular hero(ine) stories like Star Wars, Princess Bride, Tron, The Matrix, Star Trek, The Hunger Games, The Last Airbender, Harry Potter. We will then use those lessons to work through some patterns in the workplace, including the people you meet and the organizations they belong to, with an emphasis on how to work effectively with them.
When Facebook debuted Flux, they were not only introducing a new pattern for UI development, but also presenting lessons learned of their problems encountered with <abbr title="Model View Controller and its derivatives">MVC</abbr> implementations. Additionally, following its announcement, there has been a wave of flux implementations and it's easy to get lost trying to understand the core motivations behind the pattern. We'll cover problems intrinsic to <abbr title="Model View Controller and its derivatives">MVC</abbr> and the motivating factors that led to the creation of Flux.
Flux Architecture is quickly becoming the widely accepted standard for building scalable frontends that are easy to understand and test. The main issue is that there is no single Flux framework nor a prescribed way to organize and test very large codebases. In this talk you will see real examples of flux directory structure, architecture patterns built to scale and learn about a very opinionated way of thoroughly testing Flux applications.
We all know that React works, but being functional implies so much more than the typical dictionary definition would imply. Using React and Om as an example, I’d like to walk you through some tenets of functional programming. A win much bigger than the words ‘virtual dom’ exists in React, and through my examples, you’ll see what makes reasoning about functional systems such a treat.
Code-heavy demonstration that shows how to unit-test Node.js using Mocha, Chai, and Sinon. The focus will be on using Sinon stubs for functions that contain external dependencies such as ExpressJS and MongooseJS.
Writing the code for your applications is loads of fun, but often deploying your application and then scaling it to match your load can be hard and frustrating. The new world of software containers such as Docker can provide you with standard and repeatable ways to solve these problems, and manage a large chunk of your application deployment and scaling needs. In this talk we will take a simple Node.js application, and use it look at some of the basics of Docker, such as writing Dockerfiles, building images and pushing to registries. Finally we will deploy our code to the open source Kubernetes project so we can then scale our application across multiple running containers and machines.
Testing is the essential bedrock of software, and we can all agree it's a must-have. There are many testing tools for the front end, but most (if not all) suffer from some crippling problems. We’ll explore these problems and the solutions Cypress.io offers to take the pain out of testing.
You know you should write tests, but do you? Testing your client side code is more important (and more complex) than ever. This session will discuss why you should test your code and what your test suite should include. Using an Ember.js application, we will also cover best practices, tips for how to implement testing using a TDD approach, and lessons we have learned along the way.
Join me as we talk about the foundation of great UX and how to scale our methods. Subtle shifts in thinking can help us continually improve our work for the benefit of everyone it touches, because every great UX method is based in the humanity that surrounds us.
What’s in an online community? It’s more than you think. From sharing knowledge to organizing events, “lurking” to influencing, everyone wants to be heard online — and no one wants to be left behind.
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. By throwing away stereotypes and allowing both designers and developers to contribute at each step, we can harness the skill sets of each team member to push the boundaries of technology.
User Experience strategy, design, and development are intertwined more than ever. New workflows are emerging, and most companies are un-prepared for the change. This talk will delve into the collaboration methodologies which combine Creative and Development resources into patterns which increase collaboration and communication, speed delivery, and ultimately lead to better user experiences.
Information Architecture has changed. We no longer design in pages, we design in systems, and more specifically, in objects. Tree-like site maps are rarely relevant or helpful anymore, instead we need to design webs of interlocking, nesting, Rubik's cubing, intertwingling objects.
Interfaces that move and react in life-like ways to human behavior used to be the stuff of movies and science fiction. But as devices and software have improved, animation in the UI has quickly become a user expectation. In this talk, Angie Terrell will walk through essential interaction design principles to consider when designing animation for user interfaces. She will also discuss how designers can create animated prototypes to test and deliver their ideas.
"Callback hell" has little to do with callbacks. Are promises delivering on the promise of better async flow control, or muddying the waters? Generating general generators, WAT? Let's wade through the world of async in JS to find order in the chaos.
There's no better tool than D3.js for creating advanced, interactive data visualizations. This talk explores that library by dissecting an advanced, custom visualization. In addition to learning about many of D3's advanced capabilities, we'll cover important visualization principles such as structuring data, color theory, and animation.
Titanium, Native Script, React Native, and others promise cross platform mobile applications from a common code base. Let's take a closer look at each platform's advantages and disadvantages to find out what is the best option for you and your project.
Intro to Mobile Development with IOS and Swift
Intro to Mobile Development with IOS and Swift
Functional programming isn't a language, but a powerful approach to problem solving. And it's fully available to us in PHP! Let's see what functional programming is, and how PHP developers can leverage it to develop robust and comprehensible programs.
This talk covers the basics of creating a web application in Go and shows how to do things like session handling, templating and posting forms that you're used to doing in PHP.
Using Model-View-Controller as a pattern to describe stateless HTTP interactions has always been a bit of a kludge. There simply hasn't been a better pattern web applications -- until now. ADR (Action-Domain-Responder) represents a refinement of generic MVC as an application architecture specifically tuned to the web. In this talk, we will discuss various patterns of overall application architecture, including MVC, MVP, PAC, DCI, RMR, and others. We will find out how the ADR pattern arises from generic MVC, and how it provides a better description of how web applications actually work. Finally, we will go over examples of how to architect an ADR application, as well as how to convert from an MVC architcture to an ADR one.
When Node.js made its first appearance in 2009 many declared that to be the end of PHP. Yet today, about 6 years later, both environments are very much alive and kicking! Even better: Combining the two may very well be the answer to the needs of the next generation of web applications.
When dealing with databases, developers frequently run into the N+1 problem, in which they populate domain objects via queries in loops. This causes terrible performance drags. There is a solution in plain PHP that makes the number of queries constant to increase performance overall. The talk shows typical PHP code involving the N+1 problem, then shows how to solve the problem in plain PHP (that is, without a framework or ORM), and includes editorializing about the origins of the N+1 problem in the developer mindset.
Facebook has a large portfolio of open source projects, each from the company's own production stack, and in areas as diverse as native mobile tools, big data systems, client-side web libraries, backend runtimes, infrastructure, and even hardware designs. Getting to this point has been a journey! - and this keynote will discuss how we got to the point at which Facebook is able to ship new open source projects twice a week, maintain the quality, pace, and community interactions on the existing portfolio, and even a few other lessons and war stories from along the way.
Building large apps in Angular can be tricky. If we’re not careful, we can still build monolithic applications even with the wonderful magic of Angular. We still need the principles of modularity and separation of concerns. Learn how we can get behind the reusable component movement and compose directives to build applications.
There are many a ways in which developers can model, and request data from a REST-ful endpoint in Angular. With so many choices how we do we determine the best option for our applications? In this session we will explore a few of the options that are available to us, including built-in as well as third-party libraries. We will compare and contrast them to see how they compare in terms of ease of use, power, and configurability.
We've learned many lessons with TypeScript and ES2015 in working on Dojo 2.
You’ve been programming for a while now. You’re beginning to feel that you’ve got a handle on things but at the same time can’t escape the feeling that you’ve somehow plateaued in your growth as a software developer. In this talk Yitzchok, a rabbinic scholar and software developer, shares the “wisdom of the sages” as practical, actionable advice – strategies and tactics – that you can use to reinvigorate your growth as a software developer.
<a href="http://getbootstrap.com/">Bootstrap</a> is a bonafide sales and marketing term for selling cheap design for a good-looking prototype or minimum viable product. This will be an introduction to navigating the toolset, documentation, and adding the Bootstrap UI library to your workflow. I will cover basic components, variables, tooling implementation, and my workflow to customize the components with Sass.
Built-in browser development tools are excellent for speeding up webapp development and debugging common issues. But when it comes to the more specific needs of you and your application, you're often on your own. Learn how to create custom, in-browser tools that help you save time developing and supporting your application.
The goal of this talk is to introduce flexbox. This talk will briefly cover CSS float, the original layout design method, and its counterpart, the "clear:both" fix. A review of the history and continued revisions of flexbox will also be included. Examples of why flexbox became a staple in Autotrader's mobile rewrite and suggestions on incorporating flexbox into your core website will be provided along with graceful degradation techniques.
Adding a WebSocket service to an application is often misunderstood to be high performance by default, however there are many more considerations that must be made, both on the client and server, before the best performance can be achieved.
<p>Have you been building applications in Ruby on Rails? Been wanting to take that leap in Node.js? Wait no longer! <br>In this talk, we will cover how Ruby and Node.js compare, why I loved Rails, and how to build a complete CRUD application with all the REST baked in using MongoDB, Express.js, and Node.js.<p>
At one time or another, every developer will be faced with having to handle some technical aspects of product management - whether it's dealing with scheduling issues, negotiating project scope, prioritizing bug fixes, or even helping to analyze the cost structure for a new feature. I'll give you some hands-on tips and tricks you can immediately put to use to help you be a more well-rounded developer and contribute to technical product management.
The codebase at work is absolutely terrible. It's a mess of spaghetti that has been around for years and is and completely untestable. Any time you fix a bug right here, a new bug appears over there. In this talk, we will find out why the code is so bad, and go through some practical steps on how you can start digging your way out of the legacy hole while keeping the system running the whole time.
Spaghetti jQuery code, DOM selectors everywhere, and a pyramid of object soup are the best ways to describe Optimizely’s front-end codebase in early 2014. So we made a decision to refactor from jQuery spaghetti code to UI components and Flux Architecture. But with a new architecture came a new challenge. This session will present the unique challenges faced with UI components and how we have leverage Flux Architecture and Immutability to solve them!
Come hear a down-to-earth walkthrough of lessons learned from a first-time React.js user who decided to use React to replace his Backbone views and templates.
D3 is a powerful visualization library. However, it can be challenging to build reusable charts quickly. Luckily React is the perfect tool for the job. In this talk you'll learn how to harness the powers of React and D3 in order to rapidly prototype and build reusable visualizations.
ECMAScript 6 has been approved, and now we are ready to use it in all things React, or are we? Let's explore not only what you can and can't do, but also what you should.
The trick to building apps that leverage the new LeapMotion Controller is staying responsive in the face of a continuous stream containing tons of data. I found that ReactJS and Flux are a natural fit to solving for this problem.
The Internet of Things, hand-crafted goods, and cats. Presented by Big Nerd Ranch.
Learn how to easily support a flexible data model, designed to scale, using Couchbase Server and the Node.js Couchbase SDK. Come ready to read code and see some of the great things you can accomplish with Couchbase NoSQL and Node.js.
While everyone is talking about the new features of the newly minted ECMAScript specification, there are few mentions of using it for more than trivial functions. Join me in walking through the story of porting a major project (Appium, the award-winning open-source mobile automation framework) to the new language.
This session explores why choosing a good responsive framework, while assisting in development and ensuring a consistent look-and-feel, is just one piece of the much larger process of creating a truly engaging website or web application. Topics include why using the latest swiping motion du jour may not immediately make sense to all users, how a site's layout and content must truly be thought of as an architecture project to get the most "bang for the buck", and what problems that interactivity in the form of form entry can result in driving potential users and customers away, never to be seen again.
Small UX teams have unique challenges, however knowing what those are only part of the battle — how you then deal with having fewer resources and possibly feeling creative isolation, or worse organizational ignorance and/or hostility is the fun part. This workshop will explore some real life team situations that small teams and solo UX practitioners work in, walk you through a UX Strategy blueprint thats small and agile enough to not feel like you're bringing 'process in for process sake', but powerful enough to actually track, measure and learn how to continuing building great products. The goal of this talk is to arm every attendee with better tools and knowledge by creating a personalized plan for their UX practice. This workshop is less about generating design artifacts, and instead focused on ensuring the problems, assumptions and success criteria have been outlined that would then lead feed into how the designs would be created & iterated on.
<p>Making responsive websites is hard. Throw a bunch of opinionated people in the mix and it can feel nearly impossible. Let’s dig into what it takes to handle the pixels and the people really well. From beginning to end, we’ll walk through a solid, designer-focused process to make your next project a success.</p>
Matt D. Smith is the owner and Design Director at Studio Mds, a small independent design studio in Athens, GA.
Power, flexibility, and usability: where do we draw the lines? Learn about refining complexity, working with users, when to compromise, and how to effectively design usable, complex, and highly featured interfaces.
It’s amazing what the physical world can teach us about the digital landscape. Good (and lasting) design is all around us, even in things we take for granted. The classic and ubiquitous design of road signs, for example. This talk draws on the lessons learned during the creation of the road sign system in the 1950s and how those decades-old lessons can be applied to web design in 2015.
Mozilla continues to improve Firefox Developer Tools — recently Firefox Developer Edition saw the addition of many new performance-related features to help developers troubleshoot and fix poorly behaving HTML5 apps. These include new tools for pinpointing frame rate problems, JavasScript bottlenecks, processor-intensive CSS, and memory issues. In this talk the new performance tools will be demonstrated, with practical examples.
This session will delve deep into the technical trade-offs and selection process involved in choosing the underlying architecture for the data warehouse that is to contain the real user beacon data that is collected from web & mobile users by the billions every second of every day. This beacon data can then be used for marketing campaigns, performance enhancements and any other types of data analysis required by a business to use the information to increase bottom line revenue.
I am the founder and head of Whitehall Technologies (proprietary and open source software development), as well as Whitehall Studios (agency). I am also the founder and maintainer of the Atlanta Ionic Developers group.
There's been a lot going on with the Titanium SDK this year. Come find out about improvements to Titanium and all the new features available.
Mobile Apps with JS from configuring to development to deployment, with real world tips on performance and UX.
One day you discover WebViews are a thing that make cross-platform development possible. OMG YAY - develop once, ship everywhere. Then because you’re a good coder, you’re going to test drive your development all the way through. . You start setting things up… and then find yourself absolutely mired in emulation mud. Welcome to the swamp that is TDD-ing WebViews on a Hybrid App. Never fear though because together we can navigate out of this swamp, and turn it into a beautiful garden of TDD-ness.
The current speed of Mobile app development is fast and furious. Development shops are happy to crank out apps at this pace, but in the Enterprise world, the unfortunate carnage is an embarrassing product and a mess of crappy unmaintainable code. This talk will guide you towards quality and usability, and ultimately show you the steps to produce your most excellent kickass apps! Awesomeness will prevail!
What happens when your mobile device does not have a network connection? That device will have no content, no experience and the amazing application that you spent so much effort to build just simply will not work. This talk would be around the implementation story of creating offline and online applications on Mobile. With offline mobile apps, you are able to have a full experience without relying on network connectivity.
A Simple Introduction into Hybrid Mobile App Development Using Ionic, AngularJS, PhoneGap Build
This is not the PHP of old. Learn what's changed in the PHP world over the last few years. Classes, objects, statics, traits, unit testing, composer, password hashing; it's a whole new ballgame. Learn what has changed in the PHP world over the last several years. We'll cover The newest PHP language features. Community efforts such as the PHP Framework Interoperability Group, Composer, and PHP the Right Way. How to secure your application using up to date techniques.
Cross Site Scripting - or short XSS - is a security vulnerability as old as the web. Despite continuous efforts to educate developers to properly escape values before outputting though XSS are still a common problem. To mitigate XSS attacks at the browser level the Content Security Policy (CSP) have been developed.
Google's infrastructure powers our crazy ideas, like Gmail, Google Maps, or Android. The same infrastructure that powers us can power you on Google Cloud Platform. However, the different ways that you can host your PHP apps on Google Cloud Platform can be daunting. This session will show you the commands and code to get your crazy idea running next to ours.
Databases are often difficult for developers as they are trying to use a Descriptive Language (SQL) with a procedural or object orientated language. This session will cover the basics of SQL design, thinking in sets (avoid N+1 problems), and code for using databases.
This talk will look into how one can get started in building php applications that run them on devices like the raspberry PI and Arduino among others.
Mental disorders are the largest contributor to disease burden in North America, but the developer community and those who employ us are afraid to face the problem head-on. In this talk, we'll examine the state of mental health awareness in the developer workplace, why most developers feel it isn't safe to talk about mental health, and what we can do to change the culture and save lives. Attendees will leave with 5 things they can do to make their workplace safer for those dealing with mental health disorders.
Let’s take a look how we can use TDD for building web applications with TypeScript on the client side (with AngularJS) and server side (with NodeJS).
Javan Makhmali and Sam Stephenson will unveil Trix, the rich text editing system featured in the next generation of Basecamp. An open-source release will immediately follow the presentation.
In the software profession, learning is an integral part of our job. I will describe a few techniques - which, taken together, comprise a loose framework for learning any new complex piece of technology, whether it be a new framework, library, platform, or programming language - using resources you can readily find on the internet.
Becoming an expert coder involves much more than learning the coolest new framework or becoming a design pattern ninja. Becoming an expert coder is about passion and craftsmanship.