Sessions 2013

ColdFusion

 

Websockets and ColdFusion
by Chandan Kumar

ColdFusion 10 added support for many HTML5 features including websockets which is a light weight, full-duplex single socket connection over which messages can be sent between client and server. It is the next evolutionary step in web communication compared to Comet and Ajax and provide an enormous reduction in unnecessary network traffic and latency.

In this session we will talk about:

  • What are WebSockets
  • WebSocket and ColdFusion
  • Developing a realtime application with CFWEBSOCKET
  • Deploying it on AWS (CF AMI)
  • What's next in ColdFusion 11

 

 

BETTER (AND CHEAPER!) CONTENT MANAGEMENT WITH AMAZON S3, CLOUDFRONT, AND COLDFUSION
by Brian Klaas

Almost every Web and mobile application today is faced with the problem with ever-increasing demands for the upload and storage of user content. You could spend a lot of time and money building out storage systems, or you could take advantage of the power and low cost of Amazon's storage service, S3, and its content delivery system, CloudFront. In this session, you'll learn just how easy it is to use S3 with Adobe ColdFusion and Railo. You'll also learn how to do more advanced S3 work using ColdFusion and Java, including protecting content with access control lists or digital signatures, and changing file properties on a per-request basis. We'll also look at how you can easily leverage S3 and ColdFusion to tap into the speed and power of Amazon's global content delivery network, CloudFront.

CONTINUOUS INTEGRATION AND DEPLOYMENT
by Rolando Lopez

Learn how you can setup a continuous integration server to automatically test, build and package applications each time new code is integrated. In addition you will see how an application can be deployed to multiple servers with the click of a button, as well as how to rollback the code to any version in seconds.

CREATING SERVICES FOR MODERN WEB APPLICATIONS
by Mike Nimer

Building sites & applications with the Request / Response (server rendering) model is the old way of building applications. Modern web applications use services to power their rich clients. This session will discuss this new trend and how to design and develop a service layer for your application. We will cover REST services, caching, stateless services, performance, and other best practices.

FROM "WHERE DO I BEGIN" TO "WHAT CAN WE DO NEXT"?: TURNING LEGACY SPAGHETTI CODE INTO A DELICIOUS LASAGNA
by Christopher Laning

For both beginning and intermediate levels. Using a case_x000D_ study, we will look at how to attack crazy complicated, and often legacy, code in a layered_x000D_ approach. Includes discussion of organization, CFCs, object oriented programming, MVC, frameworks, AJAX, JSON, and jQuery.


Hands On Classes

 

DEVELOPING MOBILE APPS WITH SENCHA TOUCH
by Steve Drucker

Building mobile web apps is surprisingly easy with Sencha Touch and Sencha Architect. In this hands-on workshop, I'll show you how to quickly and visually build a mobile app that works on iOS, Android, Blackberry, and Windows Mobile device. You'll leave this workshop armed with the knowledge of how to leverage what's arguably the most popular mobile web app framework today, HTML 5, and how to write an app that runs on the broadest range of mobile devices.

MEET THE NEW KID ON THE JAVASCRIPT MVC FRAMEWORK BLOCK: HANDS ON WITH EMBER
by Ryan Anklam

"Ember is a JavaScript MVC framework that bills itself as ""A framework for creating ambitious web applications"". One of the knocks on Ember is that the learning curve can be quite steep, however once you are up and running Ember applications can be quite easy to build and maintain.

This session will be a hands-on, session where students will build a complete Ember.js application from the ground up and get familiar with using all of Ember's main components.

PHONEGAP TIPS, TRICKS & TRAPS
by Dean Peters

More than a simple 'hello world' app, this presentation will take you through some of the tips, tricks and traps in using technologies such as Twitter Boostrap, iScroll, Zepto.js and Eclipse to get the most out of your responsively designed HTML5 solution.

PUT SOME BACKBONE.JS IN YOUR APPS
by Sidney Maestre

When developing HTML5 application, your code is bound to get more complex over time. Employing design patterns like MVC are important for separating concerns and creating more modular and reusable code. Backbone.js is one of the more popular JavaScript frameworks to help you do this.

In this hands on lab, we will work through a series of examples that build on each other as I show how the moving parts work together. We'll add the StackMob JavaScript SDK to extend backbone.js and persist your data in the cloud. We'll wrap up our session looking at how require.js allows you to break your backbone.js code into discrete modules during development. Once you are ready to deploy you can use require.js to build an optimized version of your javascript for production.


JavaScript / jQuery

ADDING ANGULARJS TO EXISTING APPS
by Sharon DiOrio

AngularJS is the rising star of the front-end Javascript frameworks. There are plenty of demos out there, but almost all of them assume that you're starting from scratch instead of dealing with the steaming pile of...ahem..."legacy code" that you're stuck maintaining and improving. This session will go over setting-up and bootstrapping Angular, the app components: modules, controllers, services, routes, and how to get legacy data into Angular. We'll also have a case study or two where Angular made an old application over into something very cool.

CREATING A DRAG 'N' DROP USER INTERFACE
by Jay Buie

Easy-to-use applications like Netflix's video queue have made it very simple for users to organize items by dragging and dropping them into place. Using jQueryUI, the same tools are available to web developers everywhere.

This presentation will start with a high-level overview of how jQueryUI can make objects "draggable" and "droppable" (and the difference between the two). From there, I will present a simple application that allows the user to drag elements around on a page to order them, and then save that new order to a central server.

GET CONTROL OF YOUR ASYNCHRONOUS JAVASCRIPT
by Bucky Schwarz

JavaScript is getting more complex and more asynchronous. I personally am relying less and less on the traditional HTTP server side rendering and more on asynchronously fetching data and assembling it using JavaScript. If you've ever done more than a trivial amount of this, you probably know how quickly this kind of methodology can spiral out of control into an unintelligible mess. Fortunately there are techniques and tools we can use to make our lives much easier.

I'll show you how to get control of your asynchronous JavaScript, how to write maintainable and testable code and how to have a good time doing it. This talk will use jQuery for asynch code and underscore as a template library, but the concepts introduced here can be applied to most libraries.

HANDS ON WITH THE NEW KID ON THE JAVASCRIPT MVC FRAMEWORK BLOCK: EMBERJS
by Ryan Anklam

Ember is a JavaScript MVC framework that bills itself as "A framework for creating ambitious web applications". One of the common barriers to using EmberJS is that the learning curve can be quite steep, however once you are up and running Ember applications become much easier to build and maintain.

This session will be a BYOL, hands-on, session where students will build an Ember application from the ground up and get familiar with using all of Ember's parts such as Models, Controllers, Routers, and the Handlebars Templating language.

I LIKE MY JQUERY PLUGINS WARM AND TOASTY
by John Paul

With Backbone, don't leave your jQuery plugins shivering out in the cold production air. We can keep them warm and toasty in a coat of Backbone view goodness. Gone are the days when we just copy and paste plugin files and start hacking in our script tags. Now that we have the expressiveness and modularity of Backbone views to manage our application behavior we can build a reusable facade for jQuery plugins. I'm going to provide a guide to wrapping our jQuery plugins cozily in Backbone views.

I'll be giving you an alternative to large spaghetti .render() methods that make every jQuery plugin initialization call. I'll walk you through the key tactics in decomposing a plugin into it's core functionality and explain how to flexibly build your backbone view. We will also discuss the best patterns and styles for wrapping different kinds of jQuery plugins. Most notably, I'll be going through the process of wrapping jCarousel in a Backbone view that can be reused in many different situations.

JAVASCRIPT - THE REAL BAD PARTS
by John Paul

Douglas Crockford's book "JavaScript: The Good Parts," is one of the best selling JavaScript books of all time and is only 176 pages long. For most developers, there's an tacit belief that the rest of JavaScript falls under "bad," especially when comparing that to the 900 pages of "JavaScript: The Definitive Guide" There are websites dedicated to these list of language mis-features and anti-patterns, and dozens of blog posts about how to avoid the "bad" in your own code.

I don't think that these most of these things are actually "bad". In their day to day, developers don't need to worry about all of these smaller issues. Chances are, a JavaScript developer has encountered these difficult issues, learned the solution, and then immediately absorbed the concepts.

I'm going to explain to you, the real "bad" parts of the language. These are at least three JavaScript language features that are the most likely to trip up a JavaScript developer. Once you innately understand these three issues, you will become significantly more productive in JavaScript, and will be a lot less confused when reading through large JavaScript code bases.

I'll be walking you through at least three concepts within JavaScript language semantics:

  1. What on earth does "this" mean, and in what context does its meaning change?
  2. How does prototypal inheritance work?
  3. What is hoisting? Why do I care what a function expression or function declaration is?

JAVASCRIPT THE STACK
by Adrian Pomilio

This session will cover the core basics of JavaScript as an entire stack. From the server side to the front-end, as well as tools.

General areas covered:

  • Node
  • npm
  • Grunt
  • Less
  • Testing
  • Client side JavaScript Framework
  • We will also discuss Yeoman in a high level as well. We will walk through an actual application that leverages these tools and how they all fit together to create a JavaScript stack. The goal is for attendees to see the various pieces of a JavaScript stack all put together and to decide what features might work for them.

    PROMISES, PROMISES: UNLOCKING THE POWER OF JQUERY'S DEFERREDS
    by Brian Klaas

    Managing the order in which asynchronous callbacks in JavaScript occur can be a nasty business. Without a lot of overhead and management, you're never quite sure that a certain callback has succeeded or failed. One technique for handling this problem that has gained a lot of traction in the past year is to use deferreds and promises. In fact, if you're using jQuery 1.6 or later and making Ajax calls, you're already using deferreds and promises. In this session, we'll look at how deferreds and promises bring order to the chaos of multiple asynchronous JavaScript calls -- often known as "callback hell." We'll look at how you can leverage promises when making network requests, loading content on the fly, caching resources, performing serial transactions, and building a publish/subscribe model for browser or server-based applications.

    STOP MAKING EXCUSES AND START TESTING YOUR JAVASCRIPT!
    by Ryan Anklam

    Most developers know that it's important to test their JavaScript, however there are a plethora of reasons why they don't test their JavaScript. "I don't know where to start.", "I don't know how", "My code isn't testable", and "I don't have the time" are all excuses that are commonly used. This session aims to give developers the tools to solve these common problems. Attendees will learn how to setup a testing framework, how to get started writing unit tests, including advanced techniques like mocking and stubbing, learn how to write testable JavaScript code, and how to save time by automating running tests with tools like The Intern, Grunt, and Karma.

     

    STYLE, STANDARDS, SANITY
    by Bilal Soylu

    We write a lot of code as developers, many times without paying too much attention to the elements of Style such as indentation, formatting, placement of syntax elements, etc. We got it down pat after all. We are good at this coding stuff! Why worry? However, could how we write code, for example a simple decision about moving a semicolon or how we place a curly brace, impact our code quality ? our error rates? By the same token, can elements of coding style be sufficiently standardized to help us read our code, our colleagues' code more accurately, faster, and with less stress? In other words, can we use coding style to reduce the drag on the constant pull of the looming insanity of hunting errors and debugging which by far consume the most amount of time, though we profess to be coders of excellence?

    This talk will attempt to answer those and some other questions, though focus will be on JavaScript and ColdFusion examples. We will learn shared recipes that are applicable across syntax and platforms. We will also learn common pitfalls from JavaScript syntax choices, best practices for JavaScript, debugging issues based on style for JavaScript and debugging issues based on coding style in ColdFusion.

     

    WHY DO YOU DO THAT WITH YOUR JAVASCRIPT
    by Adrian Pomilio

    This session is focused on asking "why" in regards to JavaScript and how we use it in and the strategies we take advantage of. From minification to common design patterns, from performance improvements to JSDocs.

    Learn a few tips and tricks as well as asking yourself the question "why" as it pertains to how we use JavaScript


    Mobile

    BUILDING MOBILE APPLICATIONS
    by Peter Traeg

    It really is all about the apps in mobility today- along with mobile operating systems, Web technologies, development tools and techniques, information management, and much more. This session will present an overview of today's app development landscape, considering local operating environments, development best practices, and the debate over cloud-based apps vs. local apps.

    DESIGNING AN ELEGANT MOBILE USER EXPERIENCE ACROSS MULTIPLE DEVICES AND PLATFORMS
    by Joe Johnston

    The biggest challenge in developing mobile apps is how to design for both elegance and usability, and do this across all the various devices, platforms and technologies and while still maintaining the brand feel. In this session, Universal Mind's Director of UX and R&D, Joe Johnston, can discuss the key challenges around creating an app that runs on iOS, Android, smartphones, tablets and web, and the latest thinking on how to deal with HTML5 vs. Native vs Flash.

     

    DEVELOPING CROSS-PLATFORM APPS USING MOBILE SERVICES
    by Brian Hitney

    Storing data, handling authentication, and sending mobile/push notifications to one platform are difficult enough for a single platform. In this presentation, we’ll take a look at Windows Azure Mobile Services, a cross-platform SaaS that makes it easy to develop a back-end for an application that supports multiple platforms using node.js. This will be a technical presentation where we’ll build out a prototype app. Windows Azure Mobile Services is part of the Windows Azure cloud platform, and includes free and paid tiers based on usage.

    GROWING UP AS A DESKTOP APP IN A MOBILE WORLD
    by Joe Johnston

    Let's face it, not everyone has the luxury of starting their app from scratch and being able to build it for the multiple devices and contexts that it needs to be in, to successfully reach their users. Most companies have found themselves having to step back and look at how they can turn their desktop designed experience into a mobile application. Universal Mind discusses their experiences in turning desktop apps into mobile magic. They review the options out there for peeling back the layers of complexity built into desktop-based services, and how to successfully transition those into a mobile experiences.

    MOBILE DEVELOPMENT FRAMEWORK SHOOTOUT!
    by Steve Drucker

    During this briefing for developers and I.T. managers, you'll get an in-depth review of the three most popular javascript-based mobile application development platforms - jQuery Mobile, Sencha Touch, and Appcelerator Titanium! You'll review the development tools, hear about the developer and debugging experience, and participate in a brief code review in order to determine which framework is the most appropriate for your next mobile project! We'll demonstrate how each framework can be used to develop the same mobile app, highlighting the strengths and weaknesses of each.

    MOBILE SECURITY: THE NEXT FRONTIER
    by Bilal Soylu

    HTML5 has become the primary stack used in cross-platform mobile development for enterprise applications, but mobile app security is still unmapped territory for many developers. In this session, you’ll learn about leading mobile app security strategies and tactics. We’ll discuss ways to effectively mediate the top ten security risks including insecure data storage, weak server-side controls, insufficient transport layer protection, client-side injection, and poor authorization and authentication. You will become a more security aware developer and you’ll leave this session fully prepared to journey to the Next Frontier.


    Tools / Techniques

    A BRIEF INTRODUCTION TO CRYPTOGRAPHY
    by Jason Dean

    In this presentation we will look at the basics of cryptography. We will discuss how encryption and decryption work and some of the basic principles of cryptography. We will cover the basics of symmetric and asymmetric cryptography, cryptographic keys and key management, cryptographic modes of operation, and the uses of cryptography. We will briefly look at code samples in a few server-side languages to see how crypto is handled in each.

    BUILDING THE MODERN WEB USING FAST AND SCALABLE OPEN SOURCE TECHNOLOGIES
    by Colton Myers

    New cloud factories and Internet assembly lines need to be fast and easily scalable. Unfortunately, much of the software traditionally used to build and manage data centers in decades past were never designed for the new speed and scale of the modern infrastructure. Fortunately, SaltStack and other open source tools are now available to provide real-time data center automation and to help deploy and manage the entire enterprise application stack. Colton Myers, a SaltStack core engineer, will show how these new open source tools are being used by infrastructure and DevOps teams at Web-scale organizations like LinkedIn, WikiMedia and Hulu.

    Session attendees will learn how to build and maintain Internet, cloud and Web-scale applications using open source software. SysAdmins, cloud architects and anybody with DevOps leanings will appreciate new, easier ways to automate data center infrastructure management and application configuration.

    CLIENTS FROM HELL
    by Tami Burke

    How to Avoid 6 Common Client Driven Project Pitfalls

    once had a family member tell me "You're lucky. You don't have a boss to work for". Ha! Every client I have ever had has been "my boss". Some were great, some got fired, but most are somewhere in between. Still, in the 20 years as a free lancer, there are common client behaviors that will tend to sabotage a web design project. Here's how to spot those qualities and behaviors and tips on how to avoid complete project collapse.

    1. Clients lie. Always.
    2. Clients haven't done their homework.
    3. Clients have ADD.
    4. Clients Have ADD. Again.
    5. Clients Creep.
    6. Clients are afraid of commitment.
    7. Clients undermine you.

       

    HOW MOZILLA USES SELENIUM/WEBDRIVER TO KEEP THEIR WEB SITES HEALTHY
    by Bob Silverberg

    In this talk Bob Silverberg, QA Engineer with Mozilla's Web QA team, will discuss Mozilla's approach to using open source tools to monitor and maintain the quality of their many web properties. This will include a brief introduction to Selenium/WebDriver and an overview of Mozilla's open source and freely available framework for writing and running functional tests. Attendees will leave the session with a good idea of how Selenium/WebDriver can be used to perform functional tests for web sites, as well as information on how to get started using Mozilla's open source tools.

    MONGODB
    by Nathan Ellenfield

    Big Data. Web Scale. What does that even mean?

    You have work to do, so why should you learn this new technology? I will show you how to develop an app that is painful and non-performant using a traditional SQL database and how to begin approaching problems using MongoDB.

    SolrJ API AND COLDFUSION
    by Rolando Lopez

    Still running expensive queries to your database for data searches? Learn how to leverage the power of Apache Solr to perform blazing fast searches on large sets of data.

    In this talk I will demonstrate how to configure Solr and interact with it by using the SolrJ API. Using the Java API directly brings some advantages over using the ColdFusion built-in tags, including the ability to integrate earlier versions of CF (pre-version 9) with Solr, more control over your search filters, indexing of different data-types and more.

    SPEAK REST
    by Matthew Eash

    ALearn to speak the language of REST - a frontier land where there seems little uniformity or agreement on how to implement beyond the original W3C HTTP/1.1 spec. We'll cover the best practices and the nuances of the HTTP methods and responses, plus discuss the differences of opinion on how to best structure your API.

     

    USING BRACKETS TO AWESOME-IFY YOUR WEB DEVELOPMENT
    by Raymond Camden

    In this talk I'll discuss the open source Brackets project and what it provides for web developers. Along with covering basic features I'll also demonstrate and discuss the extensibility layer.

    WEB HACKING TOOLS
    by David Epler

    Most security presentation to developers are a dry rehashing of OWASP Top Ten; do this and don't do that with terse snippets of code.

    This session aims to be different in that the tools that are available to hackers will be demonstrated to show how a web application is attacked. Using the OWASP Top Ten as a guide, a combination of vulnerabilities will be used to attack a demonstration application. Two tools that will be highlighted are sqlmap, BeEF (Browser Exploitation Framework), Metasploit, and just a web browser.

    • Recent events in security and hacking
    • Overview of OWASP 2013 Top Ten
    • Show how attacks are never a single issue, but combination of vulnerabilities
    • See what SQL Injection and password compromise really look like
    • See why XSS is a serious vulnerability
    • See authentication bypass in action
    • Quick overview of Web Application Firewalls and Web Vulnerability Scanners

       


    Web / HTML5 / CSS

    BETTER UI/UX WITH BOOTSTRAP: A DEVELOPER'S PRIMER
    by Steve Keator

    Oftentimes, we as developers are tasked with creating ways to administer application data. From simple, one-page forms to massive data-altering systems, our primary focus is on creating tools for functionality. The user experience, however, takes a back seat in many cases. When you're done, you're stuck with a visually-displeasing application that users find difficult to manage. Bootstrap offers developers a great "starting point" for making your apps look and feel better on both desktop and mobile devices. In this presentation, we'll talk about why UI/UX is important, what Bootstrap offers, and cover practical examples of how you can start using it in your applications right away with little effort.

    DATA DISTANCE
    by Mike Brunt

    Irrespective of what end device there is or what source there is, dedicated, virtual machine, The Cloud etc; we are still handling and manipulating data. Here we will discuss the best methods to efficiently handle, store and update data including advanced caching strategies.

    NATIVE HTML5 APPS ON WINDOWS
    by Brian Hitney

    Windows development has evolved, and developing true native HMTL 5 applications in Windows 8.x has made developing applications easier and more accessible. Use the JavaScript frameworks of your choice -- like jQuery, KnockoutJS, ImpactJS -- or use tools that generate cross platform HTML/JS like Construct2, GameMaker, and PhoneGap to develop killer apps. In this session, we'll dive into a few real world examples of applications currently in-store and see what makes them tick, and discuss tips and tricks to make your applications successful.

    OFFLINE-FIRST: AN APPROACH TO MODERN WEBAPPS
    by Calvin Spealman

    Offline-first is the backwards seeming approach of building a web app under the assumption that there is no network. This is a paradoxical assumption for the web. It pushes us to solve problems posed by offline, cached, and packaged apps first, when they are much easier problems to solve. This helps us build an application that provides a solid experience in every environment and situation. Offline-first begins with this dependable core of functionality. On top of this, we’ll explore reintroducing Online features: updating the app, utilizing remote APIs, bringing in new content, and taking advantage of data and sync services. The end of this process gives us a very flexible application we can fit into the many new roles we find the web filling today.

    OPTIMIZING BROWSER DOM RENDERING
    by Michael Labriola

    Join Michael Labriola, Senior Consultant at Digital Primates, for a discussion of modern web browsers. More than just tips and techniques, this talk will help you understand the browser's methodologies for rendering DOM content and teach you to how to optimize your visuals and code for any screen.

    The session will cover:

    • Learning the approach browsers take to parsing HTML and CSS
    • Understanding layout flow and reflow
    • Maintaining efficiency with CSS
    • Debugging performance problems

    PRACTICAL HTML5
    by Raymond Camden

    AKA the No-Canvas Talk. HTML5 offers many exciting possibilities for developers. However, many HTML5 demos focus on things that are flashy (pun intended) but with little to no practical use. There are plenty of good HTML5-based features that are not only useful for "real" web development but also have great support (and fallback). In this presentation I'll focus on: Forms (90% of what we do involve forms!) Client-side Storage techniques XHR2 and I'll wrap with a few additional tips and tricks. For everything discussed I'll cover both the support and the fall back plan.

    REACHING FOR THE FUTURE WITH WEB COMPONENTS AND POLYMER
    by Michael Labriola

    Web Components allow us to view web applications as a set of encapsulated, maintainable and reusable components. This approach is necessary for scalability and hence large applications. However, they rely on the use of emerging web platform features such as the Shadow DOM, HTML Imports and Custom elements, which have limited browser support currently. However, thanks to the Polymer project, which is a set of polyfills and an application framework using these principles, we can use web components today. They are bleeding edge, likely to change a bit and simultaneously insanely cool and undeniably useful. Come learn how to integrate these pieces into your process today and how to bring sanity and reuse to your world.

    RESPONSIVE WEBSITES - DO I NEED IT? HOW DO I BUILT IT?
    by Peter Traeg

    This session will cover a new trend in modern web applications, responsive websites and applications. We will discuss the question of why spend the extra time making a site responsive. How to build it - with an overview of the different frameworks and techniques. And as many other tips and gotchas as we can squeeze in.

    SUCCESSFUL HTML 5 & BLACKBERRY 10 DEVELOPMENT
    by Jarvis Brown

    This presentation will give an overview of how to use HTML 5 to develop for the BlackBerry 10 Platform. BlackBerry 10 through the power of it's WebWorks SDK allows existing web developers to utilize there current skill sets to make powerful mobile applications.

    In addition we will touch on how to use the HTML 5 and the WebWorks SDK to interact with live data and the hardware features of the device. At the end of the presentation attendees will have a basic understanding and pathway of how to use existing HTML 5 skill set to build mobile apps for the BlackBerry 10 platform.

    WIREFRAMING WITH HTML PROTOTYPES
    by Dee Sadler

    Wireframes use to be the thing to create for clients to see the interaction between pages or between components. Website, app or mobile. With HTML progressing the way it has it is now easier to create wireframes as prototypes with HTML5. Either with just or in combination with JavaScript. In this session we'll look at some easy alternatives to creating the prototypes and show how easy it is and you'll be that much close to a final design.