Session Schedule

Tuesday - November 27


The Rich Web Experience Continuous Delivery Experience
  Oceanside II Atlantic I Atlantic II Atlantic III Atlantic IV Atlantic V Atlantic VI Bonnet Himmarshee Rio Vista I Rio Vista II
8:00 - 9:00 AM EARLY REGISTRATION: ONE DAY WORKSHOPS ATTENDEES ONLY
9:00 - 6:00 PM

iOS Workshop

Christopher Judd

Android Workshop

James Harmon

Taming JavaScript—A Hands on Workshop

Venkat Subramaniam

jQuery Workshop

Brian Sam-Bodden

Web Security Workshop

Ken Sipe

Appcelerator Titanium Workshop

Pratik Patel

HTML5 Workshop

Nathaniel Schutta

Workshop: Grails from start to finish

Kenneth Kousen

Git Bootcamp - An All-Day Workshop

Matthew McCullough
   
5:00 - 6:30 PM MAIN RICH WEB/CONTINUOUS DELIVERY REGISTRATION
6:30 - 8:30 PM DINNER/KEYNOTE
7:30 - 8:30 PM Keynote: The Elusive Truth and False Dichotomies in a Broken Reality by Ken Sipe
8:30 - 10:30 PM OPENING NIGHT OUTDOOR RECEPTION - TERRACE

Wednesday - November 28


The Rich Web Experience Continuous Delivery Experience
  Oceanside II Atlantic I Atlantic II Atlantic III Atlantic IV Atlantic V Atlantic VI Bonnet Himmarshee Rio Vista I Rio Vista II
7:30 - 8:30 AM BREAKFAST & LATE REGISTRATION
8:30 - 10:00 AM

Building Next Generation Apps Workshop

Craig Walls

Developer guide to the cloud

Pratik Patel

Continuous Delivery All-day Workshop, Pt. 1: Deployment Pipelines

Neal Ford

Mobile Design Workshop

Nathaniel Schutta

Programming with HTML 5

Venkat Subramaniam

Intro to Application Security

Les Hazlewood

Unit & Component Testing: Accelerating the Feedback Cycle

Andy Painter

Build Lifecycle Craftsmanship Tools

Matthew McCullough
10:00 - 10:30 AM MORNING BREAK
10:30 - 12:00 PM

Building Next Generation Apps Workshop

(continued)
Craig Walls

Better Web Applications With Brunch.io

Pete Campbell

Practicing Continuous Delivery on the Cloud

John Simone

The Browser as a Platform

Wesley Hales

Continuous Delivery All-day Workshop, Pt. 1: Deployment Pipelines

(continued)
Neal Ford

HTML 5 Animations - building true richness on the web

Venkat Subramaniam

Inspections & Technical Metrics: Accelerating Change by Measurement

Andy Painter

Jenkins 3/4 Day Workshop - bring a laptop! (See Notes)

Brent Laster
12:00 - 1:00 PM LUNCH
1:00 - 1:30 PM NURU INTERNATIONAL KEYNOTE
1:30 - 3:00 PM

Mobile Web Development with jQuery Mobile

Brian Sam-Bodden

HTTP, WebSocket and SPDY: Evolution of Web Protocols

Simone Bordet

WebGL

Brian Sletten

JavaScript Workshop, part I

Pratik Patel

Continuous Delivery All-day Workshop Pt 2: Agile Infrastructure

Neal Ford

Automated Acceptance Testing: Redefining the Users Role in Acceptance Testing

Andy Painter

Jenkins 3/4 Day Workshop - bring a laptop! (See Notes)

(continued)
Brent Laster
3:00 - 3:15 PM BREAK
3:15 - 4:45 PM

JavaScript Workshop, part II

Pratik Patel

MOBILE CROSS PLATFORM DECISIONS

Christopher Judd

Continuous Delivery All-day Workshop Pt 2: Agile Infrastructure

(continued)
Neal Ford

Making Your UI Scream (not your users)

Wesley Hales

Neo4j Workshop - Getting started with a graph database

(continued)
Peter Bell

Testing the 4th Quadrant: When things go Non-Functional

Andy Painter

Jenkins 3/4 Day Workshop - bring a laptop! (See Notes)

(continued)
Brent Laster
4:45 - 5:00 PM BREAK
5:00 - 6:30 PM

My web app beat up your 5 star native app - a WebAPI rundown

Gabriel Dayley

The Importance of Storytelling in Web Design

Denise Jacobs

Using Vagrant

Jerry Gulla

I Got 99 Problems, but REST Ain’t One

Adrian Cole

Elements of Modern Applications: Spine and Spine Mobile

Craig Walls

Ratpack Workshop (bring a laptop)

Tim Berglund

Java DevOps on a Budget

Christopher Judd

Glu-ing the last Mile

Ken Sipe
6:30 - 8:30 PM DINNER/PANEL
8:30 - 10:00 PM

Complexity of Complexity

Ken Sipe

Visualizing Data on the Web

Brian Sletten

Leading Technical Change

Nathaniel Schutta
tbd
tbd
tbd

Thursday - November 29


The Rich Web Experience Continuous Delivery Experience
  Oceanside II Atlantic I Atlantic II Atlantic III Atlantic IV Atlantic V Atlantic VI Bonnet Himmarshee Rio Vista I Rio Vista II
8:00 - 9:00 AM BREAKFAST
9:00 - 10:30 AM

Backbone Workshop

Nathaniel Schutta

Gradle Workshop (Bring a Laptop)

Tim Berglund

REST Workshop : I

Brian Sletten

What's new in jclouds 1.5

Adrian Cole

Hacking Workshop

Ken Sipe

Reducing Technical Debt with Sonar

Andy Painter

DIY 3/4 Day DIY Infrastructure Workshop - bring a laptop! (See Notes)

Brent Laster
10:30 - 11:00 AM MORNING BREAK
11:00 - 12:30 PM

Mobile Performance Tips n' Tricks

Pratik Patel

Backbone Workshop

(continued)
Nathaniel Schutta

Gradle Workshop (Bring a Laptop)

(continued)
Tim Berglund

REST Workshop : I

(continued)
Brian Sletten

Lessons learned building cloud services using AWS, elasticsearch and MongoDB

Adrian Cole

Managing JavaScript with Gradle

Luke Daley

Hacking Workshop

(continued)
Ken Sipe

Extending the Range of Sonar

Andy Painter

DIY 3/4 Day DIY Infrastructure Workshop - bring a laptop! (See Notes)

(continued)
Brent Laster
12:30 - 1:30 PM LUNCH
1:30 - 3:00 PM

Master of Puppet

Matt Stine

The Mobile App Smackdown: Native Apps vs. The Mobile Web

Nathaniel Schutta

Managing Complexity (The Project Integrity Series)

David Bock

DIY 3/4 Day DIY Infrastructure Workshop - bring a laptop! (See Notes)

(continued)
Brent Laster
3:00 - 6:00 PM BEACH BREAK
6:00 - 7:30 PM DINNER
7:30 - 9:00 PM

Out of the Zone: Getting Comfortable being out of your Comfort Zone

Brent Laster

The Executable Specification: an Agile Team's Best Friend

Andy Painter

Android for Tablets

James Harmon

Practical Technology Selection and Adoption

Peter Bell

Creating Websites using Noir

Raju Gandhi

I can haz C? A dive into Chrome Native Client

Aaron Frost

Developer Productivity Power Ups on Mac OSX

Matthew McCullough

Drop the angled brackets. Discover the zen of writing (Ascii)Docs.

Dan Allen

Maintaining Source Code Quality (The Project Integrity Series)

David Bock

Deployment with Capistrano

David Bock

Friday - November 30


The Rich Web Experience Continuous Delivery Experience
  Oceanside II Atlantic I Atlantic II Atlantic III Atlantic IV Atlantic V Atlantic VI Bonnet Himmarshee Rio Vista I Rio Vista II
8:00 - 9:00 AM BREAKFAST
9:00 - 10:30 AM

Bling with CSS3: Effect and Animations

Pratik Patel

Vert.x vs. Node.js

Tom Valletta

Gradle: Pushing automation to the limits

Luke Daley

Designing a Beautiful REST+JSON API

Les Hazlewood

Star Search: Dojo Nano

Dylan Schiemann

Continuous Delivery All-day Workshop, Pt. 1: Deployment Pipelines

(continued)
Neal Ford

Applying Git: 10 Power Tips

Matthew McCullough

Introduction to Solr

Erik Hatcher
10:30 - 10:45 AM MORNING BREAK
10:45 - 12:15 PM

The Browser as a Platform

(continued)
Wesley Hales

Gradle - the Innovation continues

Luke Daley

Extreme Web Messaging with CometD

Simone Bordet

Continuous Delivery All-day Workshop, Pt. 1: Deployment Pipelines

(continued)
Neal Ford

The Guts of Git: Graphs, Hashes, and Compression, Oh My!

Matthew McCullough

Solr Recipes

Erik Hatcher
12:15 - 1:30 PM LUNCH
1:30 - 3:00 PM

HTML5 on the Frontline

Wesley Hales

Mobile Design Workshop

(continued)
Nathaniel Schutta

Patterns for Efficient Build Promotion

Hans Dockter

Semantic Web Workshop

Brian Sletten

Tmux/Vim Workshop (Bring a Laptop!)

Matt Stine

Continuous Delivery All-day Workshop Pt 2: Agile Infrastructure

(continued)
Neal Ford

Git Advanced (1/2 Day Workshop)

Matthew McCullough

Solr Recipes

(continued)
Erik Hatcher
3:00 - 3:15 PM AFTERNOON BREAK
3:15 - 4:45 PM

Put some Backbone.js or Ember.js into your app

Pratik Patel

Mobile Design Workshop

(continued)
Nathaniel Schutta

Managing JavaScript with Gradle

(continued)
Luke Daley

Semantic Web Workshop

(continued)
Brian Sletten

Tmux/Vim Workshop (Bring a Laptop!)

(continued)
Matt Stine

RIAs using the ZK plugin for Grails

Kenneth Kousen

ClojureScript

Tim Berglund

On Prototypal Inheritance

Raju Gandhi

Continuous Delivery All-day Workshop Pt 2: Agile Infrastructure

(continued)
Neal Ford

Git Advanced (1/2 Day Workshop)

(continued)
Matthew McCullough

Power Solr: Performance, Scaling, and Relevancy

Erik Hatcher
4:45 - 5:00 PM CONCLUSION OF RICH WEB/CONTINUOUS DELIVERY 2012

Neo4j Workshop - Getting started with a graph database

close
Peter Bell

By Peter Bell

Neo4j is a NoSQL, graph database built specifically for enterprise Java projects (although you can also use the RESTful API from any language). In this workshop, we'll start by installing neo4j and looking at the the use cases for graph databases. We'll then look at the fundamentals of neo4j - what it is and how it's architected. We will then go through the core neo4j API and then start working with the traverser API to see how to write declarative queries.

Join us for this action packed half day workshop!



Neo4j Workshop - Getting started with a graph database

close
Peter Bell

By Peter Bell

Neo4j is a NoSQL, graph database built specifically for enterprise Java projects (although you can also use the RESTful API from any language). In this workshop, we'll start by installing neo4j and looking at the the use cases for graph databases. We'll then look at the fundamentals of neo4j - what it is and how it's architected. We will then go through the core neo4j API and then start working with the traverser API to see how to write declarative queries.

Join us for this action packed half day workshop!



Practical Technology Selection and Adoption

close
Peter Bell

By Peter Bell

What's the point attending a conference unless you do something with the knowledge you gain?

In this session we look at practical strategies for selecting new technologies and proven approaches for driving adoption back at the office.



NoSQL data modeling with Mongo and Neo4j

close
Peter Bell

By Peter Bell

With NoSQL data stores you need to completely rethink how to model your data.

In this session we'll look at the very different approaches to data modeling required for MongoDB and Neo4j.



NoSQL Smackdown 2012

close
Tim Berglund

By Tim Berglund

Alternative databases continue to establish their role in the technology stack of the future—and for many, the technology stack of the present. Making mature engineering decisions about when to adopt new products is not easy, and requires that we learn about them both from an abstract perspective and from a very concrete one as well. If you are going to recommend a NoSQL database for a new project, you're going to have to look at code.

In this talk, we'll examine three important contenders in the NoSQL space: Cassandra, MongoDB, and Neo4J. We'll review their data models, scaling paradigms, and query idioms. Most importantly, we'll work through the exercise of modeling a real-world problem with each database, and look at the code and queries we'd use to implement real product features. Come to this session for a thorough and thoroughly practical smackdown between three important NoSQL products.



Ratpack Workshop (bring a laptop)

close
Tim Berglund

By Tim Berglund

The only thing better than talking about Ratpack is hacking with Ratpack. Come to this workshop for 90 minutes of directed web development using the latest un-framework for Groovy-based web apps.

The instructor will lead you in coding features in a simple web app, but you are free to hack on your own ideas as well. You will leave the session having become famliar with Ratpack and ready to start building your own small apps with it.

Prerequisite: Ratpack: the Un-Framework for Groovy Web Apps



Gradle Workshop (Bring a Laptop)

close
Tim Berglund

By Tim Berglund

Gradle. Another build tool? Come on! But before you say that, take a look at the one you are already using.

Whether your current tool is Make, Rake, Ant, or Maven, Gradle has a lot to offer. It leverages a strong object model like Maven, but a mutable, not predetermined one. Gradle relies on a directed acyclic graph (DAG) lifecycle like Maven, but one that can be customized. Gradle offers imperative build scripting when you need it (like Ant), but declarative build approaches by default (like Maven). In short, Gradle believes that conventions are great -- as long as they are headed in the same direction you need to go. When you need to customize something in your build, your build tool should facilitate that with a smile, not a slap in the face. And customizations should be in a low-ceremony language like Groovy. Is all this too much to ask?

Gradle has received the attention of major open source efforts and has chalked up significant conversions by the Spring Integration, Hibernate, and Grails projects. What do these technology leaders see in this bold new build tool? They see not only a better way to build Java applications, but an extensive ecosystem of connecting to existing Ant and Maven build files while expanding the horizon of test, CI, and deployment automation in an easy manner. Join us for 90 minutes and let us take you on this same walk of discovery of the most innovative build tool you've ever seen.

Prerequisite: Knowledge of any build tool such as Ant, Maven, Rake, BuildR, Make, Leiningen, or SBT.



Gradle Workshop (Bring a Laptop)

close
Tim Berglund

By Tim Berglund

Gradle. Another build tool? Come on! But before you say that, take a look at the one you are already using.

Whether your current tool is Make, Rake, Ant, or Maven, Gradle has a lot to offer. It leverages a strong object model like Maven, but a mutable, not predetermined one. Gradle relies on a directed acyclic graph (DAG) lifecycle like Maven, but one that can be customized. Gradle offers imperative build scripting when you need it (like Ant), but declarative build approaches by default (like Maven). In short, Gradle believes that conventions are great -- as long as they are headed in the same direction you need to go. When you need to customize something in your build, your build tool should facilitate that with a smile, not a slap in the face. And customizations should be in a low-ceremony language like Groovy. Is all this too much to ask?

Gradle has received the attention of major open source efforts and has chalked up significant conversions by the Spring Integration, Hibernate, and Grails projects. What do these technology leaders see in this bold new build tool? They see not only a better way to build Java applications, but an extensive ecosystem of connecting to existing Ant and Maven build files while expanding the horizon of test, CI, and deployment automation in an easy manner. Join us for 90 minutes and let us take you on this same walk of discovery of the most innovative build tool you've ever seen.

Prerequisite: Knowledge of any build tool such as Ant, Maven, Rake, BuildR, Make, Leiningen, or SBT.



ClojureScript

close
Tim Berglund

By Tim Berglund

Clojure has recently been gaining attention as one of the most innovative languages of the JVM in current use, and it has mostly found a home on the server. In parallel, JavaScript has ascended to the position of the most important language of the web, and until recently it has lived only on the client. Few observers looked at the world of web development and predicted that these two would get together. Happily for us, they have!

ClojureScript is a dialect of Clojure that compiles to JavaScript, and targets the JavaScript runtimes of the web as a deployment environment. It offers the unparalleled expressiveness of Lisp, the performance and space efficiency of the Google Closure Compiler, interoperability with the in-browser object model, natural integration with server-side Clojure applications, and an insanely productive in-browser REPL. In a time of proliferating JavaScript extensions and client-side development frameworks, you owe it to yourself to take a look at this compelling vision of how client-side web development should be done.



Continuous Delivery All-day Workshop, Pt. 1: Deployment Pipelines

close
Neal Ford

By Neal Ford

Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.

In this workshop we take the unique approach of moving from release back through testing to development practices, analyzing at each stage how to improve collaboration and increase feedback so as to make the delivery process as fast and efficient as possible. At the heart of the workshop is a pattern called the deployment pipeline, which involves the creation of a living system that models your organization's value stream for delivering software. We spend the first half of the workshop introducing this pattern, and discussing how to incrementally automate the build, test and deployment process, culminating in continuous deployment.



Continuous Delivery All-day Workshop, Pt. 1: Deployment Pipelines

close
Neal Ford

By Neal Ford

Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.

In this workshop we take the unique approach of moving from release back through testing to development practices, analyzing at each stage how to improve collaboration and increase feedback so as to make the delivery process as fast and efficient as possible. At the heart of the workshop is a pattern called the deployment pipeline, which involves the creation of a living system that models your organization's value stream for delivering software. We spend the first half of the workshop introducing this pattern, and discussing how to incrementally automate the build, test and deployment process, culminating in continuous deployment.



Continuous Delivery All-day Workshop Pt 2: Agile Infrastructure

close
Neal Ford

By Neal Ford

Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.

In the second half of the workshop, we introduce agile infrastructure, including the use of Puppet to automate the management of testing and production environments. We'll discuss automating data management, including migrations. Development practices that enable incremental development and delivery will be covered at length, including a discussion of why branching is inimical to continuous delivery, and how practices such as branch by abstraction and componentization provide superior alternatives that enable large and distributed teams to deliver incrementally.



Continuous Delivery All-day Workshop Pt 2: Agile Infrastructure

close
Neal Ford

By Neal Ford

Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.

In the second half of the workshop, we introduce agile infrastructure, including the use of Puppet to automate the management of testing and production environments. We'll discuss automating data management, including migrations. Development practices that enable incremental development and delivery will be covered at length, including a discussion of why branching is inimical to continuous delivery, and how practices such as branch by abstraction and componentization provide superior alternatives that enable large and distributed teams to deliver incrementally.



Continuous Delivery All-day Workshop, Pt. 1: Deployment Pipelines

close
Neal Ford

By Neal Ford

Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.

In this workshop we take the unique approach of moving from release back through testing to development practices, analyzing at each stage how to improve collaboration and increase feedback so as to make the delivery process as fast and efficient as possible. At the heart of the workshop is a pattern called the deployment pipeline, which involves the creation of a living system that models your organization's value stream for delivering software. We spend the first half of the workshop introducing this pattern, and discussing how to incrementally automate the build, test and deployment process, culminating in continuous deployment.



Continuous Delivery All-day Workshop, Pt. 1: Deployment Pipelines

close
Neal Ford

By Neal Ford

Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.

In this workshop we take the unique approach of moving from release back through testing to development practices, analyzing at each stage how to improve collaboration and increase feedback so as to make the delivery process as fast and efficient as possible. At the heart of the workshop is a pattern called the deployment pipeline, which involves the creation of a living system that models your organization's value stream for delivering software. We spend the first half of the workshop introducing this pattern, and discussing how to incrementally automate the build, test and deployment process, culminating in continuous deployment.



Continuous Delivery All-day Workshop Pt 2: Agile Infrastructure

close
Neal Ford

By Neal Ford

Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.

In the second half of the workshop, we introduce agile infrastructure, including the use of Puppet to automate the management of testing and production environments. We'll discuss automating data management, including migrations. Development practices that enable incremental development and delivery will be covered at length, including a discussion of why branching is inimical to continuous delivery, and how practices such as branch by abstraction and componentization provide superior alternatives that enable large and distributed teams to deliver incrementally.



Continuous Delivery All-day Workshop Pt 2: Agile Infrastructure

close
Neal Ford

By Neal Ford

Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.

In the second half of the workshop, we introduce agile infrastructure, including the use of Puppet to automate the management of testing and production environments. We'll discuss automating data management, including migrations. Development practices that enable incremental development and delivery will be covered at length, including a discussion of why branching is inimical to continuous delivery, and how practices such as branch by abstraction and componentization provide superior alternatives that enable large and distributed teams to deliver incrementally.



Git Bootcamp - An All-Day Workshop

close
Matthew McCullough

By Matthew McCullough

Distributed version control is all the rage these days, but is it worth it? It has been transformative for the dozens of organizations and thousands of developers that I've mentored on the unique implementation called Git. But don't take my word for it. Discover the joy of a version control system that works for you, not against you, in a hands-on workshop. Bring a Windows, Mac, or Linux laptop and we'll install, set up, use and bend Git into workflows that weren't even possible with the version control systems of yesteryear. Be prepared to rethink how lightweight, fast, and refreshing source code control can be. After completing this workshop you'll be able to do practical work with Git for your day job or weekend OSS hobby

This full day workshop takes you from the ground up with Git. By the end of the day you'll be proficient enough to contribute to an open source project using Git or to leverage inside your corporate as the canonical version control system.

Prerequisite: Knowledge of a version control system, whether that be CVS, SVN, ClearCase, Perforce, StarTeam or Accurev.



Build Lifecycle Craftsmanship Tools

close
Matthew McCullough

By Matthew McCullough

You've heard a bit about Git, Gradle, Jenkins, and Sonar, but are you putting them to use? Are you maximizing what they can offer in terms of standardized project models, faster incremental compiles, automated commit-triggered builds, and rapid source code analysis? In this intense presentation, live demonstrations will be given for all of the latest versions of the aforementioned tools and what they have to offer a highly proficient Java developer.

Don't struggle to get the build out, functioning, and analyzed. Develop, build, analyze and deploy smartly and efficiently with a Build Lifecycle Craftsmanship approach and tooling.



Developer Productivity Power Ups on Mac OSX

close
Matthew McCullough

By Matthew McCullough

You're a talented coder and you apply many agile practices to your daily workflow. Still, you are looking for that next boost to better keep track of information, manage your open applications, make working with the terminal more productive, recall information quickly, manage files rapidly, and produce documentation in a portable and effective manner.

This presentation will show you how to apply DevonThink, Delicious bookmarks, RSS feeds, Pinboard.in, Pomodoro, Things, LaunchBar, Bash profiles, mind maps, markdown files and spotlight filters to become a more productive developer that has a world of information sorted and accessible at a moment's notice.

This presentation focuses on developers using the Mac platform (though a few tips are portable) since Matthew has significant experience in productivity research on this platform.

Prerequisite: Very basic developer proficiency on the Mac.



Applying Git: 10 Power Tips

close
Matthew McCullough

By Matthew McCullough

Git is a powerful content tracker and has gained acceptance by many forward leaning consultants and teams over the past several years. Those developers know that it offers the usual commit, branch, merge and tag in a distributed environment, and yet, only a few developers have explored the more powerful functions of Git. These range from searching months of history for a unit-test bug to undoing literally any mistake to splitting in-progress work into multiple commits within a single file.

This talk is targeted at developers who have dabbled with the basics of Git but are aiming to explore, gain productivity secrets, and push the very limits of this life-changing version control system.

Prerequisite: Students must have used Git use in the workplace for several months before attending this talk in addition to setting up Git according to http://teach.github.com/articles/github-class-prerequisites/



The Guts of Git: Graphs, Hashes, and Compression, Oh My!

close
Matthew McCullough

By Matthew McCullough

Git is a version control system. We can look at it from that high level. Git is a content tracking system. Some teachers advise us to look at it from that lowered elevation. But I will take you to the very bottom. The floor. The code. The algorithms. The directed acyclic graph of hashed bit sequences made efficient through LZW commpression and deferred garbage collection determined by node reachability via hash relationships.

Uber-geeks are magic-slayers. We want and need to know precisely how things work. Like a hard 50 push-up workout, this study will make working with Git at the daily developer level a fraction of the effort -- like a mere ten push-ups. Let's dig into the guts of Git.

Prerequisite: Students must have used Git use in the workplace for several months before attending this talk



Git Advanced (1/2 Day Workshop)

close
Matthew McCullough

By Matthew McCullough

Many Git classes successfully focus on the basics for those new to DVCS. However, with Git having 7 years on the street now, there is a growing desire to address the maturing users of this innovative DVCS. This class will take existing Git users and bring them to a heightened level of productivity by leveraging Git's powerful, yet under-used advanced features.

Git has established itself as an important new version control system and many progressive developers have already moved to this exciting system. After a few months of using the basics, passionate developers may begin to wonder what advanced features Git has to offer. These advanced Git usages are scarcely documented, and for the first time in a live class, they are demonstrated in an easy-to-grasp form with the use case, operation, and behavior all thoroughly explained.

Prerequisite: Students must have used Git use in the workplace for several months before attending this talk in addition to setting up Git according to http://teach.github.com/articles/github-class-prerequisites/



Git Advanced (1/2 Day Workshop)

close
Matthew McCullough

By Matthew McCullough

Many Git classes successfully focus on the basics for those new to DVCS. However, with Git having 7 years on the street now, there is a growing desire to address the maturing users of this innovative DVCS. This class will take existing Git users and bring them to a heightened level of productivity by leveraging Git's powerful, yet under-used advanced features.

Git has established itself as an important new version control system and many progressive developers have already moved to this exciting system. After a few months of using the basics, passionate developers may begin to wonder what advanced features Git has to offer. These advanced Git usages are scarcely documented, and for the first time in a live class, they are demonstrated in an easy-to-grasp form with the use case, operation, and behavior all thoroughly explained.

Prerequisite: Students must have used Git use in the workplace for several months before attending this talk in addition to setting up Git according to http://teach.github.com/articles/github-class-prerequisites/



Appcelerator Titanium Workshop

close
Pratik Patel

By Pratik Patel

Bring your laptop! Use your JavaScript skills to build native iOS and Android apps! Learn from an Appcelerator Titan!

This is a full day workshop specifically designed to get you up and running with Titanium and build feature-rich applications! We'll install the latest Titanium Developer and iOS SDK - then create a project in Titanium Developer and run it in the simulator to verify your setup. Basic JavaScript experience is necessary for this session; please complete a basic JavaScript course or book before attending.

Titanium is an open-source development tool for producing cross-platform mobile applications by Appcelerator. Using Titanium, you develop your mobile application using Javascript coded against the Titanium API's. Titanium Studio, an IDE for your mobile apps, invokes their compiler and builder to take your Javascript and build a native application for iOS and Android.

This is a full day workshop intended to teach you the basics of Titanium. We'll work on several exercises as you build up a complete, feature-rich, mobile application that you can deploy on either Android or iOS. Topics we'll cover in this workshop: * Titanium quickstart * Titanium architecture and build process * Titanium API's ** UI elements: Lists, Labels, Windows, Views, Buttons, etc ** Navigation ** Tabs ** Databases ** Network operations * How to manage app upgrades * Connecting to social media sites * Debugging Titanium Applications * Best Practices * Turbo charging with Coffeescript * Building maintainable code with platform specific plugins



Developer guide to the cloud

close
Pratik Patel

By Pratik Patel

There's a ton of options for deploying to the cloud right now. Heroku and Engineyard are among the well known Platform as a Service (PaaS) providers. What if you don't want to use these PaaS services? What if you don't know which one is better? Are they cost effective? What about private deployments into internal infrastructure? This session answers these questions with a discussion of PaaS services and setting up your own PaaS using CloudFoundry.

There's a ton of options for deploying to the cloud right now. Heroku and Engineyard are among the well known Platform as a Service (PaaS) providers. What if you don't want to use these PaaS services? What if you don't know which one is better? Are they cost effective? What about private deployments into internal infrastructure? This session answers these questions with a discussion of PaaS services and setting up your own PaaS using CloudFoundry.



JavaScript Workshop, part I

close
Pratik Patel

By Pratik Patel

Get your skills up to speed for JavaScript, the oft-misunderstood language of the web, in this 2 part workshop. We'll start from the very basics and learn the ins-and-outs of JavaScript. We'll look at the (many) quirks in JavaScript, and work through advanced features that make this language so powerful. Come with an open-mind and ready to dig into code!

This 2 part workshop requires a laptop, and assumes the attendee has ZERO knowledge of JavaScript. We'll break down your bad habits, and build upon known patterns and best practices to raise your JavaScript-fu.



JavaScript Workshop, part II

close
Pratik Patel

By Pratik Patel

JavasScript workshop part II Get your skills up to speed for JavaScript, the oft-misunderstood language of the web, in this 2 part workshop. We'll start from the very basics and learn the ins-and-outs of JavaScript. We'll look at the (many) quirks in JavaScript, and work through advanced features that make this language so powerful. Come with an open-mind and ready to dig into code!

This 2 part workshop requires a laptop, and assumes the attendee has ZERO knowledge of JavaScript. We'll break down your bad habits, and build upon known patterns and best practices to raise your JavaScript-fu.

Prerequisite: JavaScript Workshop, part I



Apponomics

close
Pratik Patel

By Pratik Patel

You've got a great idea for a mobile app. You have a team together. You're building the killer app. Do you know enough about the various app stores to know what to do next? How about pricing strategies for iOS and Android? Have you thought about the Nook Color and Amazon Fire? In this session, I'll bring my experience as CTO of TripLingo, an awesome company developing foreign language learning apps. TripLingo has been featured on the iOS store a dozen times, as well as the Android market and Nook store.

You've got a great idea for a mobile app. You have a team together. You're building the killer app. Do you know enough about the various app stores to know what to do next? How about pricing strategies for iOS and Android? Have you thought about the Nook Color and Amazon Fire? In this session, I'll bring my experience as CTO of TripLingo, an awesome company developing foreign language learning apps. TripLingo has been featured on the iOS store a dozen times, as well as the Android market and Nook store.



Mobile Development Options 2013

close
Pratik Patel

By Pratik Patel

There's a bevy of options for developing mobile apps. If you're looking at cross-platform solutions, there's a multitude of options to choose from. In this session we'll explore the three basic categories for developing mobile apps: native, cross-platform-to-native, and mobile web. We'll discuss the sweet spot for each of these three approaches and the benefits and drawbacks of each. Technologies discussed include Android, iOS, HTML5/CSS3, Phonegap, Titanium, and jQuery Mobile.

There's a bevy of options for developing mobile apps. If you're looking at cross-platform solutions, there's a multitude of options to choose from. In this session we'll explore the three basic categories for developing mobile apps: native, cross-platform-to-native, and mobile web. We'll discuss the sweet spot for each of these three approaches and the benefits and drawbacks of each. Technologies discussed include Android, iOS, HTML5/CSS3, Phonegap, Titanium, and jQuery Mobile.



Mobile Performance Tips n' Tricks

close
Pratik Patel

By Pratik Patel

Creating a web site, web app, or native app for mobile use presents a special set of challenges. Specifically, developers and designers should be zoned into the techniques for usability - and usability can be enhanced greatly by taking performance elements into consideration up-front. In this session, we explore the many performance tips and tricks you can employ to make your website or web app or native app shine on mobile devices. This is an advanced course that discusses issues such as image loading, JavaScript performance, and wireless latency.

Creating a web site, web app, or native app for mobile use presents a special set of challenges. Specifically, developers and designers should be zoned into the techniques for usability - and usability can be enhanced greatly by taking performance elements into consideration up-front. In this session, we explore the many performance tips and tricks you can employ to make your website or web app or native app shine on mobile devices. This is an advanced course that discusses issues such as image loading, JavaScript performance, and wireless latency.



Advanced JavaScript for Java Devs

close
Pratik Patel

By Pratik Patel

So you think you've picked up enough JavaScript to be dangerous, but feel like the whole prototypical language thing is still a mystery. In this session, we'll go from basic JavaScript to advanced JavaScript. We'll discuss and code modular JavaScript with CommonJS. We'll look into the details of a prototype language and discuss things like parasitic inheritance. We'll also look at JavaScript libraries that will help you get the most out of JavaScript - not jQuery, but a library like UnderscoreJS and SugarJS.

This is a fast paced session meant to bring you up to speed with the latest and greatest JavaScript techniques and tools. Whether you're building client side JavaScript with HTML5 or Appcelerator Titanium, or server-side JavaScript with node.js, you'll come away with knowledge and patterns for how the pro's use JavaScript for building real apps.



Bling with CSS3: Effect and Animations

close
Pratik Patel

By Pratik Patel

CSS3 has incorporated a large number of useful visual effects, especially for Webkit based Web browsers such as Chrome and Safari. In this session, we'll look at these effects and code up some bling. Aside from being pretty and cool, these effects can help you create awesome user interfaces and provide a natural and elegant user experience.

CSS3 has incorporated a large number of useful visual effects, especially for Webkit based Web browsers such as Chrome and Safari. In this session, we'll look at these effects and code up some bling. Aside from being pretty and cool, these effects can help you create awesome user interfaces and provide a natural and elegant user experience.



Put some Backbone.js or Ember.js into your app

close
Pratik Patel

By Pratik Patel

We've come a long way down the JavaScript road. Gone are the days of 'just hack it' for the web - architecting even a small project in JavaScript can be a challenge. Thankfully, there are several frameworks to help you; the most popular currently is Backbone.js. In this session, we'll assume you know nothing of Backbone.js, and we'll build a small application using Backbone.js as the foundation. We'll also build the same app using Ember.js, another popular JavaScript framework.

Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface. Ember.js is another popular framework that provides client-side code structure. It takes a different approach than Backbone.js, but provides more features. Ember.js came out of the SproutCore project and emphasizes bindings.

Prerequisite: Advanced JavaScript of JavaScript knowledge



HTML5 Workshop

close
Nathaniel Schutta

By Nathaniel Schutta

Interested in HTML5? Want a change to play around with the latest and greatest in web app development? This workshop is for you! We'll cover feature detection, web forms, the new HTML elements, take a spin around the canvas, audio, video and we'll finish up with offline/local storage and web sockets.

Before you can take advantage of a new HTML5 feature, you have to make sure a given browser can support it. This section will cover the basics of detection as well as getting the most out of rocking cool libraries like Modernizer. We'll also look at just what to do when a browser doesn't support a feature you're trying to leverage.

Along with a new human type-able doctype, HTML5 introduces several new semantic elements. Recognizing that nearly every website in existence has a header, a footer and some navigation divs, HTML5 gives us a header, a footer and a nav element along with a few others. HTML5 seeks to pave cowpaths, not force the web to bend to its ways...

One of the most exciting features of HTML5 is the canvas, a space you can use to draw anything from shapes to text to, well, anything! From basic drawing to graphs to full fledged games, canvas opens up a whole new world of possibility, a world sans browser plugins. Speaking of the absence of plugins, we'll look at what it takes to add video and audio to your pages.

Web apps are, in many cases, indistinguishable from their thick client brethren, at least if you're not on an airplane. OK, so many planes have wifi, but there are parts of the world that don't have reliable Internet connections! Thanks to local storage and the offline API, all is not lost - you can create a web app that works offline. We'll also take a look at the history API.

Ajax is like so many things in the web world - a simple (but very powerful) hack that isn't defined by a spec. With the advent of the web socket API, we'll finally have a native way to have bi-directional communication with the server. As we create richer and richer clients, we're writing more and more JavaScript. While the JS engines are getting faster and faster, there are cases where it'd be very handy to run scripts in the background. Web workers give us just such an opportunity. We'll also talk about the pros and cons of having a database in the browser.



Mobile Design Workshop

close
Nathaniel Schutta

By Nathaniel Schutta

The word just came down from the VP - you need a mobile app and you need it yesterday. Wait, you've never built a mobile app...it's pretty much the same thing as you've built before just smaller right? Wrong. The mobile experience is different and far less forgiving. How do you design an application for touch? How does that differ from a mouse? Should you build a mobile app or a mobile web site? This workshop will get you started on designing for a new, and exciting, platform. Whether that means iPhone, Android, Windows Phone or something else, you need a plan, this talk will help.

We'll look at some popular web sites discussing what we would do differently in a mobile context and then take a look at the actual mobile experience to see what other designers actually did. Using paper, we'll work though a design or two of our own. We'll wrap up discussing various methods of creating a mobile app - should we use the web or build something native? What about shell apps? While we might not have all the answers, at the end of this workshop you'll know what questions to ask when thinking through your own situation.



Mobile Design Workshop

close
Nathaniel Schutta

By Nathaniel Schutta

The word just came down from the VP - you need a mobile app and you need it yesterday. Wait, you've never built a mobile app...it's pretty much the same thing as you've built before just smaller right? Wrong. The mobile experience is different and far less forgiving. How do you design an application for touch? How does that differ from a mouse? Should you build a mobile app or a mobile web site? This workshop will get you started on designing for a new, and exciting, platform. Whether that means iPhone, Android, Windows Phone or something else, you need a plan, this talk will help.

We'll look at some popular web sites discussing what we would do differently in a mobile context and then take a look at the actual mobile experience to see what other designers actually did. Using paper, we'll work though a design or two of our own. We'll wrap up discussing various methods of creating a mobile app - should we use the web or build something native? What about shell apps? While we might not have all the answers, at the end of this workshop you'll know what questions to ask when thinking through your own situation.



Leading Technical Change

close
Nathaniel Schutta

By Nathaniel Schutta

Technology changes, it's a fact of life. And while many developers are attracted to the challenge of change, many organizations do a particularly poor job of adapting. We've all worked on projects with, ahem, less than new technologies even though newer approaches would better serve the business. But how do we convince those holding the purse strings to pony up the cash when things are "working" today? At a personal, how do we keep up with the change in our industry?

This talk will explore ways to stay sharp as a software professional. We'll talk about how a technology radar can help you stay marketable (and enjoying your career) and how we can use the same technique to help our companies keep abreast of important changes in the technology landscape. Of course it isn't enough to just be aware, we have to drive change - but how? This talk will consider ways we can influence others and lead change in our organizations.



Backbone Workshop

close
Nathaniel Schutta

By Nathaniel Schutta

You may have noticed today's web applications involve more than a few lines of JavaScript. You've probably also figured out JavaScript lacks certain...features...that make writing non-trivial applications more challenging. How do we resolve this conundrum? Luckily for us, we can leverage libraries like Backbone add some structure to our code. Backbone brings the concepts of the model view controller pattern we've applied to the server for years to the browser.

In this workshop, we'll introduce the idea of asynchronous user interfaces and show how Backbone helps us write that style of application. We'll work our way up from the bottom building a simple application along the way. We'll create models, we'll use a templating library (or two) and we'll also explore Underscore - a JavaScript utility belt you can use right now today without committing to building MVC style web applications.

If you're struggling to manage an increasing amount of JavaScript or you want to build more responsive web applications, this workshop can help!



Backbone Workshop

close
Nathaniel Schutta

By Nathaniel Schutta

You may have noticed today's web applications involve more than a few lines of JavaScript. You've probably also figured out JavaScript lacks certain...features...that make writing non-trivial applications more challenging. How do we resolve this conundrum? Luckily for us, we can leverage libraries like Backbone add some structure to our code. Backbone brings the concepts of the model view controller pattern we've applied to the server for years to the browser.

In this workshop, we'll introduce the idea of asynchronous user interfaces and show how Backbone helps us write that style of application. We'll work our way up from the bottom building a simple application along the way. We'll create models, we'll use a templating library (or two) and we'll also explore Underscore - a JavaScript utility belt you can use right now today without committing to building MVC style web applications.

If you're struggling to manage an increasing amount of JavaScript or you want to build more responsive web applications, this workshop can help!



The Mobile App Smackdown: Native Apps vs. The Mobile Web

close
Nathaniel Schutta

By Nathaniel Schutta

Mobile is the next big thing and your company needs to there. But what does there actually entail? Should you build a native app? On which platforms? Do you have the skills for that? What about the web? Can you deliver an awesome experience using nothing but a mobile web browser? This talk will help you navigate these treacherous waters. We'll discuss the pros and cons of the various approaches and give you a framework for choosing.

Mobile is the next big thing and your company needs to there. But what does there actually entail? Should you build a native app? On which platforms? Do you have the skills for that? What about the web? Can you deliver an awesome experience using nothing but a mobile web browser? This talk will help you navigate these treacherous waters. We'll discuss the pros and cons of the various approaches and give you a framework for choosing.



Mobile Design Workshop

close
Nathaniel Schutta

By Nathaniel Schutta

The word just came down from the VP - you need a mobile app and you need it yesterday. Wait, you've never built a mobile app...it's pretty much the same thing as you've built before just smaller right? Wrong. The mobile experience is different and far less forgiving. How do you design an application for touch? How does that differ from a mouse? Should you build a mobile app or a mobile web site? This workshop will get you started on designing for a new, and exciting, platform. Whether that means iPhone, Android, Windows Phone or something else, you need a plan, this talk will help.

We'll look at some popular web sites discussing what we would do differently in a mobile context and then take a look at the actual mobile experience to see what other designers actually did. Using paper, we'll work though a design or two of our own. We'll wrap up discussing various methods of creating a mobile app - should we use the web or build something native? What about shell apps? While we might not have all the answers, at the end of this workshop you'll know what questions to ask when thinking through your own situation.



Mobile Design Workshop

close
Nathaniel Schutta

By Nathaniel Schutta

The word just came down from the VP - you need a mobile app and you need it yesterday. Wait, you've never built a mobile app...it's pretty much the same thing as you've built before just smaller right? Wrong. The mobile experience is different and far less forgiving. How do you design an application for touch? How does that differ from a mouse? Should you build a mobile app or a mobile web site? This workshop will get you started on designing for a new, and exciting, platform. Whether that means iPhone, Android, Windows Phone or something else, you need a plan, this talk will help.

We'll look at some popular web sites discussing what we would do differently in a mobile context and then take a look at the actual mobile experience to see what other designers actually did. Using paper, we'll work though a design or two of our own. We'll wrap up discussing various methods of creating a mobile app - should we use the web or build something native? What about shell apps? While we might not have all the answers, at the end of this workshop you'll know what questions to ask when thinking through your own situation.



Web Security Workshop

close
Ken Sipe

By Ken Sipe

As a web application developer, most of the focus is on the user stories and producing business value for your company or clients. Increasingly however the world wide web is more like the wild wild web which is an increasingly hostile environment for web applications. It is absolutely necessary for web application teams to have security knowledge, a security model and to leverage proper security tools.

This training workshop on security will provide an overview of the security landscape starting with the OWASP top ten security concerns with current real world examples of each of these attack vectors. The first session will consist of a demonstration and labs using hacker tools to get an understanding of how a hacker thinks. It will include a walk through of the ESAPI toolkit as an example of how to solve a number of these security concerns including hands-on labs using the OWASP example swingset.

The workshop will include several hands on labs from the webgoat project in order to better understand the threats that are ever so common today.

Attendees will come away with the following skills / capabilities: - threat modeling - security audit plan - introduction to Pen testing - key / certificate management - fixing web application security issues

Don't be the weakest link on the web!



The Elusive Truth and False Dichotomies in a Broken Reality

close
Ken Sipe

By Ken Sipe

"To say of what is that it is not, or of what is not that it is, is false, while to say of what is that it is, and of what is not that it is not, is true" -- Aristotle

This talk is a fun look at what is true, or what we think is true... how we know what we know or think we know and what it depends on. Through the evening we will learn about every day dichotomies that can lead to black and white thinking. We will use a dichotomous key to learn such things as; is a tomato a vegetable or a fruit? Is a carrot a vegetable or a fruit? As we reveal the truth, we will see how the perceived norms of the world are broken and in what way they are broken. With this new found knowledge we will discuss how to detect it and correct it. These are the foundational skills of the master craftsman... and that's the truth!



Spock - Unit Test and Prosper

close
Ken Sipe

By Ken Sipe

Spock is a groovy based testing framework that leverages all the "best practices" of the last several years taking advantage of many of the development experience of the industry. So combine Junit, BDD, RSpec, Groovy and Vulcans... and you get Spock!

This is a significant advancement in the world of testing.

This session assumes some understanding of testing and junit and builds on it. We will introduce and dig deep into Spock as a test specification and mocking tool.

Prerequisite: junit



Glu-ing the last Mile

close
Ken Sipe

By Ken Sipe

How does your team handle release weekend? Is it the whole weekend? Is everyone on call? Is there a way to reverse the decision mid-stream?... How long would it take your company or team to push a single line code fix from dev into production? Way too many organizations handle the production release through manual and tedious labor following a lengthy to-do check list. Way too many organizations have no way to reproduce their production environment... because they have manually changed or updated configurations without version control... or they have OS or application server paths that are not under proper management.

What if you could "test" your production release before production? One of the answers to the last mile of continuous delivery is GLU. GLU is an open source project for deployment automation. It was created by one of the co-founders of LinkedIn (Yan Pujante) for automation of LinkedIn's deployment automation.

This session is a basic tutorial, walking through the configuration of a deployment out to multiple services. We will work through serial and parallel deployments, ensuring consistency and detecting problems. This session should be a sufficient introduction to walking through: 1) installation, 2) configuration, 3) multi-server deployments 4) manual updates and 5) automated updates



Complexity of Complexity

close
Ken Sipe

By Ken Sipe

Of all the non-functional requirements of software development, complexity receives the least attention and seems to be the most important from a long term standard point. This talk will look at some of forces that drive complexity at the code level and at a system level and their impact. We will discuss what causes us to over look complexity, how our perception of it changes over time and what we can do about it?

In this session we will break down the meaning of complexity and simplicity and measure the application of those means against the common software development dogma. Looking at common development trends and pressures, we'll discuss where simplify does and doesn't help. We will examine areas of development which at first glance seem to be simple (such as the creation of an equals method in Java), that end up being difficult or impossible based on normal constraints. We will example the drivers of complexity with some discussion on what you can do about it. This session will finish with a discussion around several challenges to high scale software architectures and how to keep it simple.



Hacking Workshop

close
Ken Sipe

By Ken Sipe

The net has cracks and crackers are among us. With all the news of security failures, it can be a challenge to know what is FUD and what is really at risk and to what extent. This session isn’t about hacking an application together nor is it about coding a solution. It is about looking at the network and network infrastructure and understanding some of its weaknesses. This workshop is a 50% mix of lecture / discussion and hands on attacking in order to best understand the challenges.

The labs will require the use of: - a virtual machine with BackTrack 5 - a wifi adaptor - and a laptop.

We will have ISO installations of BackTrack 5 for you to install on your VM. It is best if you have this pre-installed, it can be downloaded at http://www.backtrack-linux.org/ . In order to run backtrack, you will want to install this to a virtual machine, if this is new to you, pick up virtualbox or vmware.

The wifi adaptor needed is an Alfa AWUS036H or Alfa AWUS036NHA. You will need 1 of these external adaptors. There are ~ $30 at amazon.

Through the labs we will: - Disassociate wireless traffic - Crack a WEP key - Learn to break through a WPA device - Scan for open ports



Hacking Workshop

close
Ken Sipe

By Ken Sipe

The net has cracks and crackers are among us. With all the news of security failures, it can be a challenge to know what is FUD and what is really at risk and to what extent. This session isn’t about hacking an application together nor is it about coding a solution. It is about looking at the network and network infrastructure and understanding some of its weaknesses. This workshop is a 50% mix of lecture / discussion and hands on attacking in order to best understand the challenges.

The labs will require the use of: - a virtual machine with BackTrack 5 - a wifi adaptor - and a laptop.

We will have ISO installations of BackTrack 5 for you to install on your VM. It is best if you have this pre-installed, it can be downloaded at http://www.backtrack-linux.org/ . In order to run backtrack, you will want to install this to a virtual machine, if this is new to you, pick up virtualbox or vmware.

The wifi adaptor needed is an Alfa AWUS036H or Alfa AWUS036NHA. You will need 1 of these external adaptors. There are ~ $30 at amazon.

Through the labs we will: - Disassociate wireless traffic - Crack a WEP key - Learn to break through a WPA device - Scan for open ports



MongoDB: Scaling Web Applications

close
Ken Sipe

By Ken Sipe

Google “MongoDB is Web Scale” and prepare to laugh your tail off. With such satire, it easy to pass off MongoDB as a passing joke… but that would be a mistake. The humor is in the fact there seems to be no end to those who parrot the MongoDB benefits without a clue. This session is about getting a clue.

Get past the hype and hyperbole associated with NoSQL. This session will introduce MongoDB through live working sessions demonstrating the pros and cons of MongoDB development. The session will then focus on a recent short project focused on large scale. We’ll discuss database design to support high scale read access. Throughout this case study we will discuss the consequences of the MongoDB choice. The session will finish with a review of the production topology to support growth in scale.



WebGL

close
Brian Sletten

By Brian Sletten

HTML 5 has introduced us to the Canvas API, 2D graphics and the pleasures of plugin-free video and audio playback. One of the next hurdles we will face is native support for 3D graphics for simulations, visualizations and games.

WebGL is an early look at supporting OpenGL ES 2.0 in the canvas in most modern browsers through JavaScript APIs.

This will be an example-driven workshop that will cover the basics of 3D graphics, OpenGL and where it is going on the Web.



Visualizing Data on the Web

close
Brian Sletten

By Brian Sletten

We are far from the early days of ugly HTML. We have sophisticated visualization tools available to us now to help our users consume complex data in attractive and informative ways.

Come hear how you can adopt these visualization systems (calling them libraries is inappropriate) today.

This talk will introduce:

  • D3.js
  • RGraph
  • SVG in the Browser
  • Highcharts
  • Raphael
  • Reusable widgets from the Simile Project


REST Workshop : I

close
Brian Sletten

By Brian Sletten

Many people are drawn to the ideas of REST but aren't sure how to take the next steps. This workshop will help get you to a comfortable place by introducing the concepts and walking through a series of exercises designing REST APIs from a variety of domains.

This workshop will span two session periods but is one effort. Please plan on coming to both.

We will break up into teams and tackle the various aspects of a solid, stable, evolvable REST API design. This will not be a tutorial in particular REST implementations (Jersey, Restlet, etc.). The ideas will transcend specific technologies although we will talk about some particular choices.



REST Workshop : I

close
Brian Sletten

By Brian Sletten

Many people are drawn to the ideas of REST but aren't sure how to take the next steps. This workshop will help get you to a comfortable place by introducing the concepts and walking through a series of exercises designing REST APIs from a variety of domains.

This workshop will span two session periods but is one effort. Please plan on coming to both.

We will break up into teams and tackle the various aspects of a solid, stable, evolvable REST API design. This will not be a tutorial in particular REST implementations (Jersey, Restlet, etc.). The ideas will transcend specific technologies although we will talk about some particular choices.



Semantic Web Workshop

close
Brian Sletten

By Brian Sletten

The Web is changing faster than you can imagine and it is going to continue to do so. Webs of Documents are giving way to machine-processable Webs of Information. We no longer care about data containers, we only care about data and how it connects to what we already know.

Perhaps the concepts of the Semantic Web initiative are new to you. Or perhaps you have been hearing for years how great technologies like RDF, SPARQL, SKOS and OWL are and have yet to see anything real come out of it.

Whether you are jazzed or jaded, this workshop will provide you with the understanding of a technological tidal wave that is heading in your direction.

In this workshop, we will:

Explain the Web and Web architecture at a deeper level Apply Web and Semantic Web technologies in the Enterprise and make them work together Integrate structured and unstructured information Create good, long-lived logical names (URIs) for information and services Use the Resource Description Framework (RDF) to integrate documents, services and databases Use popular RDF vocabularies such as Dublin Core, FOAF, DOAP Query RDF and non-RDF datastores with the SPARQL query language Model and Do Inference with the Web Ontology Language (OWL)

Bring your laptops. This is a hands-on workshop.



Semantic Web Workshop

close
Brian Sletten

By Brian Sletten

The Web is changing faster than you can imagine and it is going to continue to do so. Webs of Documents are giving way to machine-processable Webs of Information. We no longer care about data containers, we only care about data and how it connects to what we already know.

Perhaps the concepts of the Semantic Web initiative are new to you. Or perhaps you have been hearing for years how great technologies like RDF, SPARQL, SKOS and OWL are and have yet to see anything real come out of it.

Whether you are jazzed or jaded, this workshop will provide you with the understanding of a technological tidal wave that is heading in your direction.

In this workshop, we will:

Explain the Web and Web architecture at a deeper level Apply Web and Semantic Web technologies in the Enterprise and make them work together Integrate structured and unstructured information Create good, long-lived logical names (URIs) for information and services Use the Resource Description Framework (RDF) to integrate documents, services and databases Use popular RDF vocabularies such as Dublin Core, FOAF, DOAP Query RDF and non-RDF datastores with the SPARQL query language Model and Do Inference with the Web Ontology Language (OWL)

Bring your laptops. This is a hands-on workshop.



Introduction to Google's Closure Tools

close
Matt Stine

By Matt Stine

Closure Tools represents the open-sourcing of many of the tools used to build many of Google's rich web applications such as Gmail, Docs, Maps and Google +. It's sweet spot is the development of large-scale, feature-rich applications that are deployed within a single page. It attempts to be a comprehensive toolset, providing a robust set of libraries, a strong dependency management system, and a sophisticated compiler. All of these features provide a productive development environment that also results in highly-performant JavaScript code.

This session will provide an overview of the Closure Tools ecosystem, including:

  • The JavaScript optimizing Closure Compiler
  • The Closure Library
  • Closure Templates, an easy templating system for both Java and JavaScript
  • The Closure Linter
  • Closure Stylesheets

We'll illustrate the use of each of these tools and use them to develop a simple one-page web application.



Vert.x: This ain't your Dad's Node

close
Matt Stine

By Matt Stine

Vert.x (http://vertx.io) is a new framework for writing easily scalable applications. It is the marriage of the event-driven, non-blocking I/O programming model popularized by Node.js with the proven performance and concurrency found on the JVM.

Vert.x is polyglot, currently allowing you to write your programs in JavaScript, Ruby, Groovy or Java (with support forthcoming for Scala, Clojure and Python). It provides a very easy concurrency model, allowing you to write single-threaded code that is always executed by the same exact thread. It provides parallelism by scaling seamlessly across all available cores. With all of this is provided much the same programming model you may be used to in the Node.js world, with the added capability of a distributed event bus which spans client and server side, shared immutable data, and background workers.

This session will provide an introduction to Vert.x, with live demos of its feature and the construction of a real case-study application.



Master of Puppet

close
Matt Stine

By Matt Stine

Puppet is a powerful framework for the automation of tasks typically performed by system administrators as part of software infrastructure provisioning and maintenance. Puppet adoption is rapidly increasing, boasting use by companies such as Google, RedHat, Constant Contact, Zynga, and Shopzilla.

Puppet is composed of three principle components:

  • a declarative language for expressing system configuration,
  • a client and server for distributing it,
  • and a library for realizing the configuration

We'll dive deeply into Puppet's architecture and features, including its idempotent configurations, cross-platform resource abstraction layer, and graph-based modeling of resources, resource providers, and resource relationships. We'll then leverage puppet to set up infrastructure of a typical JVM-based web development project with various OS, application server and datastore configurations. You'll leave a "Master of Puppet," ready to apply it on your next software delivery effort.



Tmux/Vim Workshop (Bring a Laptop!)

close
Matt Stine

By Matt Stine

A terminal multiplexer and a decades old editor...wow...so what? I'll tell you so what! Have you ever wanted to build your own IDE that suits your development style but didn't have the skills or the time? Are you a polyglot seeking the power of an IDE, but there's simply no one tool that meets all of your needs? Look no further.

This workshop will show you how to utilize these two tools to create lightweight, yet rich development environments that are language, framework, and platform agnostic. Not only that, but we'll leverage the ability of both of these tools to keep your fingers "on the home row" of your keyboard while at the same time enabling you to quickly switch between multiple tasks and contexts, thus enhancing your overall productivity.



Tmux/Vim Workshop (Bring a Laptop!)

close
Matt Stine

By Matt Stine

A terminal multiplexer and a decades old editor...wow...so what? I'll tell you so what! Have you ever wanted to build your own IDE that suits your development style but didn't have the skills or the time? Are you a polyglot seeking the power of an IDE, but there's simply no one tool that meets all of your needs? Look no further.

This workshop will show you how to utilize these two tools to create lightweight, yet rich development environments that are language, framework, and platform agnostic. Not only that, but we'll leverage the ability of both of these tools to keep your fingers "on the home row" of your keyboard while at the same time enabling you to quickly switch between multiple tasks and contexts, thus enhancing your overall productivity.



Taming JavaScript—A Hands on Workshop

close
Venkat Subramaniam

By Venkat Subramaniam

JavaScript is a powerful language with great amount of flexibility that has often intimidated programmers and left them confused. To succeed with the language we have to move past these intimidations and confusing constructs. Once we learn what to avoid and the right constructs to use, we can enjoy the power and reap the full benefit of this highly powerful language.

Come to this day-long workshop to tame JavaScript. You will start by learning the useful parts of the language, you will learn the programming idioms, and the usage patterns. If you're using libraries like JQuery, the detailed examples and hands-on labs will help you better understand and make use of these libraries. Towards the end of the workshop, we will take a look at CoffeeScript and understand how it is a good way to efficiently write elegant JavaScript.



Programming with HTML 5

close
Venkat Subramaniam

By Venkat Subramaniam

Developing a rich user interface for web applications is both exciting and challenging. HTML 5 has closed the gaps and once again brought new vibe into programming the web tier. Come to this session to learn how you can make use of HTML 5 to create stellar applications.

.



HTML 5 Animations - building true richness on the web

close
Venkat Subramaniam

By Venkat Subramaniam

User experience and rich interaction is top in the list of things that influence the success and adoption of applications. Such richness and interactions were owned by desktop and native applications in the past. Over the recent years the web has become increasingly interactive, but the true richness was still lacking. But all that has changed with HTML 5 canvas and animation techniques.

Come to this session to learn how to create rich interactive applications with good animation, mouse and touch based interactions.



Mastering JavaScript

close
Venkat Subramaniam

By Venkat Subramaniam

JavaScript is one of those very powerful languages that is often misunderstood and underutilized. It's quite popular, yet there's so much more we can do with it.

In this presentation we'll deep dive into the capabilities and strengths of this prominent language of the web.



Automated testing tools and techniques for JavaScript

close
Venkat Subramaniam

By Venkat Subramaniam

Programmers often complain that it is hard to automate unit and acceptance tests for JavaScript. Testability is a design issue and with some discipline and careful design we can realize good automated tests.

In this presentation we'll learn how to automate the testing of JavaScript using both TDD and BDD tools.



CoffeeScript for recovering JavaScript programmers

close
Venkat Subramaniam

By Venkat Subramaniam

Saying JavaScript is powerful is an understatement. The problem is it is way too powerful and dangerously flexible. Programmers often have trouble reaping its benefits due to its uncontrolled flexibility and, to a certain extent, lack of structure. One approach is to learn to tame the beast, like the authors of complex JavaScript libraries have done. Fortunately there is an alternative. CoffeeScript is JavaScript created in a humane way. In this session we will learn how, using CoffeeScript, we can reap all the benefits of JavaScript, but without losing our sanity in the process.

.



Building Next Generation Apps Workshop

close
Craig Walls

By Craig Walls

For a long while, we've built applications pretty much the same way. Regardless of the frameworks (or even languages and platforms) employed, we've packaged up our web application, deployed it to a server somewhere, and asked our users to point their web browser at it.

But now we're seeing a shift in not only how applications are deployed, but also in how they're consumed. The cost and hassle of setting up dedicated servers is driving more applications into the cloud. Meanwhile, our users are on-the-go more than ever, consuming applications from their mobile devices more often than a traditional desktop browser. And even the desktop user is expecting a more interactive experience than is offered by simple page-based HTML sites.

With this shift comes new programming models and frameworks. It also involves a shift in how we think about our application design. Standing up a simple HTML-based application is no longer good enough.

In this 2-part workshop, you'll get hands-on experience building a simple, yet complete next-generation application that can be deployed in the cloud, consumed from any device, and offers a rich experience for your users.



Building Next Generation Apps Workshop

close
Craig Walls

By Craig Walls

For a long while, we've built applications pretty much the same way. Regardless of the frameworks (or even languages and platforms) employed, we've packaged up our web application, deployed it to a server somewhere, and asked our users to point their web browser at it.

But now we're seeing a shift in not only how applications are deployed, but also in how they're consumed. The cost and hassle of setting up dedicated servers is driving more applications into the cloud. Meanwhile, our users are on-the-go more than ever, consuming applications from their mobile devices more often than a traditional desktop browser. And even the desktop user is expecting a more interactive experience than is offered by simple page-based HTML sites.

With this shift comes new programming models and frameworks. It also involves a shift in how we think about our application design. Standing up a simple HTML-based application is no longer good enough.

In this 2-part workshop, you'll get hands-on experience building a simple, yet complete next-generation application that can be deployed in the cloud, consumed from any device, and offers a rich experience for your users.



Elements of Modern Applications: Socialization

close
Craig Walls

By Craig Walls

In this session we'll talk about what it means for an application to be social and the benefits of socializing an application. We'll look at libraries for linking applications with existing social networks. We'll also discuss what it takes for an application to form its own network of users connected with each other for a better user experience.

A common attribute of many modern applications is that they inject themselves into their users' social graph. Indeed, many modern applications are a form of social network and most at least integrate with existing social networks such as Facebook and Twitter. Socialization of applications not offers a better user experience, but also affords those applications opportunity for exposure to everyone within the social graph of their user base.



Elements of Modern Applications: Spine and Spine Mobile

close
Craig Walls

By Craig Walls

In this session, we'll start with an empty directory and use Spine.js to create an interactive client-side web application. Then we'll leverage what we learned to build a mobile web application with a native feel that can be deployed either through a phone's web browser or via native wrapper frameworks such as Apache Cordova (aka, PhoneGap).

Model View Controller (MVC) is often thought of in terms of server-side frameworks such as Spring MVC and Struts. But modern applications demand a rich and interactive experience on the client-side. Recently, several JavaScript-based microframeworks have emerged to address these concerns in the browser. Spine.js is one such framework that brings MVC to the client-side of web development. Based in CoffeeScript, Spine.js stands out due to its simplicity and a programming model resembling that of Rails and Grails. Also, unlike many other client-side MVC frameworks, Spine.js has a clear and well-paved path to mobile application development.



Elements of Modern Applications: Spring MVC, REST, and OAuth 2

close
Craig Walls

By Craig Walls

In this session we'll work with Spring MVC to define the REST API for a modern application. We'll look at how the latest features of Spring MVC make it possible to create a truly RESTful API and also explore some extensions that provide HATEOS auto-documentation features to Spring MVC. And, since security is an important aspect of any good REST API, we'll also see how to layer OAuth 2 security using Spring Security for OAuth.

Traditionally, an application's functionality has often been defined in terms of the features experienced by its users. Screens, buttons, and text fields are what we would think of when considering what an application would do. Modern applications, however, could be fronted by any number of user interfaces, some offering similar experiences and some distinctly different. In modern applications the REST API exposed by the backend is what defines an application's functionality.



Elements of Modern Applications: Backbone.js with Thorax and Lumbar

close
Craig Walls

By Craig Walls

In this session, we'll see how to develop Backbone clients using Thorax and Lumbar. Thorax is an opinionated framework built on Backbone. Along with the Lumbar build system, Thorax provides a Rails-like development experience for working with Backbone. Thorax/Lumbar will not only help you get started with Backbone, but will also help the client side of your application and ultimately build your code into deployable artifacts that target individual platforms.

Backbone is a popular choice for building the client-side of a modern application. But Backbone's getting-started experience can be a bit overwhelming. What should a Backbone project look like? What kind of directory structure do you need and how do you build your client code into deployable artifacts? How can you build a distinct deployable for each platform (e.g., web, iOS, Android) that you're targeting?



Patterns for Efficient Build Promotion

close
Hans Dockter

By Hans Dockter

We have seen quite a few larger projects for which a naive practice of early integration between the components lead to constant breakages. Thus they were not capable to successfully build a new version of the software stack for days or even weeks. Obviously the problem of that is dramatic as no regular manual testing and capacity testing is taking place. Not only is this a massive waste of testing resources, it also leads to very long and therefore expensive feedback cycles that severely affect your time-to-market of new features. It also a likely source of conflict between the CI team and software development, as with no other means at hand, there is a desire to create stability by not adding new features or doing important refactoring.

We will present patterns on how to integrate as early as possible but at the same time keep the delivery pipeline of new features flowing. Obviously automation can't solve all the problems of software development. But it can for example help to shield against pockets of problematic pieces of software. With a good reporting it can also give valuable insights into potential organizational problems.



Drop the angled brackets. Discover the zen of writing (Ascii)Docs.

close
Dan Allen

By Dan Allen

Writing documentation is already hard enough. Why do we make it harder by burying the content in an XML schema like DocBook or wrestling with finicky WSYWIG editors? Come learn how to find the zen of writing documentation using AsciiDoc and still be able to produce beautiful HTML 5, DocBook and PDF documents--or even a slide deck like the one in this presentation!

Writing documentation is already hard enough. Why do we make it harder by burying the content in an XML schema like DocBook or wrestling with finicky WSYWIG editors?

What if you could write documentation like you write an email? Forget about the layout and styling and just let the thoughts flow? That's the idea behind the lightweight markup languages such as AsciiDoc. AsciiDoc is designed for humans, yet can meet even the most advanced publishing requirements.

In AsciiDoc, the bulk of document is the content, embellished with mild and intuitive semantic markup. Need to insert code? Just reference the location of the source you want to include. Document getting too long? Break it up into parts. Need to merge changes from another author? Easy! It's just plain text.

Come learn how to find the zen of writing documentation using AsciiDoc and still be able to produce beautiful HTML 5, DocBook and PDF documents--or even a slide deck like the one in this presentation!



Bake better websites together on GitHub

close
Dan Allen

By Dan Allen and Jason Porter

Did you know GitHub can be a publishing platform? That a blog entry can be posted via a pull request?

Static is the new dynamic and git is the new way to collaborate. Learn how to use site-baking tools such as Awestruct and Jekyll to build and publish static websites and leverage the ever increasing capabilities of HTML5-based browsers to make your site more dynamic than ever before.

Static is the new dynamic. With the ever increasing capabilities of HTML5-based browsers, we can give the server a rest and put security problems behind us by publishing static HTML5 documents and shifting the dynamic behavior to the client. Not only does that let you blog out of static hosting sites like github pages, it also means you can put more processing power into the author tools.

In this session, you'll be introduced to Awestruct and Jekyll, Ruby-based tools for building and publishing static websites. You'll discover how you can leverage a wide range of lightweight markups languages and DSLs such as HAML, AsciiDoc, Markdown, SASS and CoffeeScript to keep your source terse and DRY. We'll use an extension pipeline to setup a blog, add comments to your site or add analytic tracking scripts to your pages, then build and publish the site to GitHub pages in a single command. Just because the pages are static doesn't mean they can't be dynamic too.



Managing Complexity (The Project Integrity Series)

close
David Bock

By David Bock

How many times have you started a new project only to find that several months into it, you have a build process that mysteriously fails, a bunch of 'TODO' and 'FIXME' comments in the source, and problems that come and go because "it works on my machine"? Does your project have a little bit of 'folk wisdom' that isn't well-known, but is necessary to get things done? How easily could you recreate your development environment if you got a new machine today?

In this session we will talk about some tried and true favorites like Ant, Maven, Subversion, and Eclipse, cover tools like diff, patch, difftools, and diffj for teasing apart changesets, and talk about measuring and managing complexity with tools like cobertura, JavaNCSS, XRadar, CodeStriker, and Jupiter. We will cover each tool in enough depth for you to know what it does and how it can help you and your team, understand its strengths and weaknesses, and see how it would fit in your team's development processes.



Deployment with Capistrano

close
David Bock

By David Bock

Capistrano is the de-facto tool used to deploy Rails applications, but it is useful for so much more. In this talk we will publish a real website from scratch, with consideration for real world stuff like safeguarding passwords, turning on and off application monitoring, multiple machine deployments, and general system administration tasks.

In addition to a real deploy in-session, we will look at the real deploy scripts for several real-world, large websites involving multiple machine architectures, minimal (sub second) downtimes, and different server configurations.



Maintaining Source Code Quality (The Project Integrity Series)

close
David Bock

By David Bock

How many times have you started a new project only to find that several months into it, you have a big ball of code you have to plod through to try to get anything done? Have you ever been the 'new guy' on a project where it seems like the code grew more like weeds and brambles than a well-tended garden? With a few good tools to help analyze the code, we can keep our project from turning into that big ball of mud, and we can salvage a project that is already headed down that path.

In this talk we will look at PMD, FindBugs, Macker, JDepend, and several other tools that can help us analyze source code and find problems we need to fix. We will cover each tool in enough depth for you to know what it does and how it can help you, understand its strengths and weaknesses, and see how it would fit in your personal development processes.



How to Build WebSocket Web Applications

close
Simone Bordet

By Simone Bordet

The WebSocket protocol is now a standard internet protocol (RFC 6455), and almost all browsers supports it well. Differently from HTTP, WebSocket supports true bidirectional communication, enabling developers to build more scalable web applications.

In this session we will look at the details of the WebSocket protocol, of the WebSocket APIs offered by clients and servers of the WebSocket pros and cons, finishing with a demo showing how to build a WebSocket web application.



HTTP, WebSocket and SPDY: Evolution of Web Protocols

close
Simone Bordet

By Simone Bordet

This session will run you through the history and future of web protocols, starting from HTTP, then moving to WebSocket and finally to SPDY (the new protocol on the block), analyzing pros and cons of each protocol, its browser and server support, with a final look at what HTTP 2.0 might look like and how web servers such as Jetty 9 may need to change architecture to support these new protocols.

Join Us!



Extreme Web Messaging with CometD

close
Simone Bordet

By Simone Bordet

This session will introduce you to the CometD project, an open source web messaging framework. The CometD framework allows web clients to be notified of server-side events, typical in applications such as chat rooms, online games, financial trading, sports and news portals, and more.

CometD leverages the most efficient comet techniques and integrates seamlessly with WebSocket, to provide developers with a transport-independent API based on either Dojo, jQuery, RequireJS or other JavaScript toolkits. Finally, CometD clustering capabilities and real world examples will be presented.



Join the SPDY Revolution

close
Simone Bordet

By Simone Bordet

There is a revolution quietly happening on the web and if you blink you might miss it. The revolution is Google’s SPDY protocol, which may replace HTTP as the primary protocol for the web.

In this session we will look at what is the SPDY protocol and which improvements brings to the web, how well is supported by browsers and servers, and how it can be 25-50% faster than HTTP.



A Platform for building RIAs using Domain Specific Languages

close
John Brinnand

By John Brinnand

As web applications evolve and the use of widget toolkits proliferate, the problems of designing and building scalable front ends has become more and more involved. Today, a web application is a complex blend of scaffolding, business logic and embedded content – and this can be a challenge (some might say a nightmare), to develop, debug and evolve – even in the best of times.

There are many solutions to this problem. Some folks use the MVC pattern, others use app building tools and many use server-side solutions. The approach being proposed here is based on Domain Driven Design: it consists of a Platform which uses DSLs and a layered architecture to build and deploy web applications. The platform is composed of services that create and maintain the DSLs as well as handle all user requests, layout generation, customization, content authoring, data persistence, B-to-B interactions and native business flows.

By having a DSL which sits above widgets and the DOM, the platform can use widgets to “generate and maintain” the DOM. This provides a far more robust and flexible means for building web applications. Also – DSL based web platforms are far more adaptive and lend themselves more easily to change. In this platform everything is loosely coupled: layout's can be changed, content can be attached or detached, and services can be “plugged-in” as needed. Even the backend web application server with it's data store can be replaced with a users preferred server and it's data store.

This presentation will demonstrate an RIA platform with its UI and service backend, including an example of a B-to-B interaction with Etsy – an ecommerce application. The takeaways from this presentation are:

A Demo of an application being built from the ground up together with it's interaction with a remote business service - Etsy. A Domain Model for a Web Application and it's components. Continuous Application Refactoring. A Layered Architecture for the Front End including: Handlers, Modelers, Builders, Managers, Services, Events.



Better Web Applications With Brunch.io

close
Pete Campbell

By Pete Campbell

There are many frameworks and libraries that help you to build web applications...but that's not enough. Other problems arise when you try to combine everything into a single application. Do you want to spend your time writing new code or assembling your app?

Friction matters in web development. Brunch.io is the grease that makes creating complex web applications easier. It is an automatic "assembler" for HTML5 applications, allowing you to create projects that combine different languages, template systems and other libraries into your app. With Brunch.io, you'll spend less time managing your application and more time developing it.

In this session, we'll learn about the challenges you'll encounter in trying to build a web application from scratch. We'll discuss solutions to these problems and then see how Brunch.io makes this process even easier. We'll learn about Brunch plugins, skeletons and generators that help you create applications using a variety of languages (CoffeeScript, Roy), template libraries (Handlebars, Mustache, Eco) and CSS compilers (LESS, Sass). And finally we'll examine a real Brunch application to see how everything works together and how easy it is to add new features.



JavaScript Safari Expedition - Libraries, Projects and Frameworks...Oh My!

close
Pete Campbell

By Pete Campbell

There is so much happening in the JavaScript world that it is impossible to keep up. There are literally hundreds of libraries and projects that you should know..but how can you find them? Why does every project have a name that says nothing about what it does? We need a guide to make sense of it all! JavaScript Safari Expedition to the rescue!

In this session, we'll learn about JavaScript frameworks, engines,templates, CSS processors, loaders, graphic libraries, physics engines, transpilers (eg CoffeeScript), and testing. We'll see the biggest projects that you've heard about (or not). When our safari ends, you'll know about many of the wonderful things that can be done in JavaScript, the biggest names in the land, and where you should go for your next expedition (or web application).



I Got 99 Problems, but REST Ain’t One

close
Adrian Cole

By Adrian Cole

The world’s most popular services expose ReST APIs. Whether it’s in Google, Twitter, Amazon, or even your middleware, ReST is everywhere. Have you ever wondered why APIs look the way they do? Is there a balance between API design for usability and scale, or can we have them both? What’s the relationship between standards such as WS-* and ReST?

This session walks you through the relationship between the ReST API and architecture. It dissects popular APIs from companies such as Amazon and Twitter and uncovers designs that facilitate scale. Along the way, the presentation identifies aspects that can be cherry-picked, versus those that work best together. It also underscores trade-offs you should know about when putting together your API.



What's new in jclouds 1.5

close
Adrian Cole

By Adrian Cole

jclouds 1.5 is the result of 3.5 years of development by nearly 100 developers interested in portable cloud computing.

During this session, you’ll get up-to-date with cloud computing technology developments such as OpenStack. You’ll learn how to use jclouds 1.5 to control private and public infrastructures and storage clouds programmatically. You’ll also see examples of new tools powered by jclouds, including Jenkins and our Karaf-powered CLI.



Lessons learned building cloud services using AWS, elasticsearch and MongoDB

close
Adrian Cole

By Adrian Cole

The design of a cloud service is fascinating. Aspects from all directions converge: from billing model to scale to tenancy, everything is important and must be evaluated in context. The reason is that at scale, small problems become big problems. At scale, logging turns into a big data problem, restarting a cluster can turn into hours of re-indexing, the price of a dependency can cripple your billing model.

This session reviews various places in a system where small problems become big problems. We’ll use real examples from CloudHub, an integration PaaS supporting the premier salesforce tool: dataloader.io.

We’ll use CloudHub architecture to tell the story of design for scale, with a focus on rationale and context. You’ll learn about what we designed for, and how we change in response to empirical evidence and customer requirements. Yes, you will see cool tech from folks like AWS, MongoDB and elasticsearch. You’ll also leave with lessons CloudHub learned gluing them together over time.



Next Level Spock

close
Luke Daley

By Luke Daley

So you already know and love Spock, the Enterprise ready testing framework, but want to know how to make the most of it and take your testing to the next level? Then this talk is for you. Even if you're new to Spock, but are interested in making your testing more effective this talk is for you.

Spock has many hidden gems which we'll be going through in this session. We'll also be looking at some of the upcoming features in Spock 0.7 including; functionality and contract mixins, improved configurability, and several new lumps of syntax sugar.



Functionally Testing Modern Web Applications with Geb

close
Luke Daley

By Luke Daley

Geb is a browser automation solution for Groovy. It brings together the power of WebDriver, the elegance of jQuery content selection, the robustness of Page Object modelling and the expressiveness of the Groovy language. Geb enables more expressive, more concise, and (very importantly) more maintainable web tests.

In this session we'll go beyond an introduction and explore how to take advantage of Geb's advanced features to functionally test modern rich, dynamic, web applications. We'll also explore some common patterns and best practices for Page Object modelling that lead to robust tests with a high level of reuse. Finally we'll discuss cross browser testing strategies and explore the options for testing mobile device targeted sites. A basic understanding of Geb is required for this session.



Managing JavaScript with Gradle

close
Luke Daley

By Luke Daley

JavaScript is playing an ever increasing role in modern web applications. This is having an impact on the way be automate the building of our applications as JavaScript introduces new challenges such as magnification, unification and even compilation of languages such as CoffeeScript.

In this session we'll look at how the Gradle build tool can help you test your JavaScript and transform your raw assets into optimised, deployment ready, units.



Gradle: Pushing automation to the limits

close
Luke Daley

By Luke Daley

Effective companies and teams do more with less, and automation is a vital ingredient to this. As developers we are accustomed to the idea of build automation through build & continuous integration systems that compile, test & deploy our software. However, the production of software is typically only one of the concerns of a team or company. There are many auxiliary processes that can equally benefit from the rigour, repeatability and cheap labour of automation.

Gradleware - the company behind the Gradle build automation tool - has automation in its DNA, and applies it to everything that it does. In this session, we'll discuss and showcase different examples of the kind of automation the team @ Gradleware have developed to support the development of Gradle and its documentation, the online presence, user support, business processes and other aspects. The ideas discussed will invigorate participants to see new opportunities for automation in their endeavours.



Gradle - the Innovation continues

close
Luke Daley

By Luke Daley

The Gradle development team have not been taking it easy since the release of Gradle 1.0. New features and innovations are constantly being added, rough edges are being smoothed and the platform continues to expand. In this session we’ll explore the most notable additions to Gradle since the release of 1.0 and preview some of the new and exciting features just over the horizon with Gradle founder and Gradleware CEO Hans Dockter and Gradle core developer Luke Daley.

The 1.0 release was the result of many years of engineering and innovation, and its release signals an increased commitment to stability and backwards compatibility for Gradle. But Gradle will continue to evolve with a high velocity to gain new capabilities, features and increased build performance.

We’ll dig into to some of the features incorporated since the 1.0 release, such as:

  • Support for Build Migration
  • Maven import support
  • Parallel task execution
  • Improved Dependency Reporting
  • Improved access to the resolved dependency graph
  • Gradle Android Support
  • Improved test execution feedback on the command line
  • Convenient testing of Gradle upgrades via build comparison
  • Dependency injection for tasks, plugins and extensions
  • More flexible error handling (i.e. continuing on failure)
  • Improvements to the Tooling API (i.e. embedded Gradle)
  • Better scalability for large scale enterprise builds
  • And more.

We’ll also take a sneak peak at some of the upcoming features that will soon be available in Gradle and discuss strategies for keeping up to date with the latest Gradle developments to ensure you are getting the most out of your build tool.



Managing JavaScript with Gradle

close
Luke Daley

By Luke Daley

JavaScript is playing an ever increasing role in modern web applications. This is having an impact on the way be automate the building of our applications as JavaScript introduces new challenges such as magnification, unification and even compilation of languages such as CoffeeScript.

In this session we'll look at how the Gradle build tool can help you test your JavaScript and transform your raw assets into optimised, deployment ready, units.



My web app beat up your 5 star native app - a WebAPI rundown

close
Gabriel Dayley

By Gabriel Dayley

The WebAPI is an effort by Mozilla, Apple and Google to bring many of the features and API's that are often thought only possible to do in native apps, to the web. This effort, which promises to deliver APIs to web developers that allow access to device hardware and features such as the camera, microphone, telephone, SMS, geolocation, storage, NFC, power management and much more. The gap between the capabilities of native apps and web apps is quickly closing and no longer should you feel second class to those native poster-childs.

Come learn more about what your browser can do that you didn't know it could. Stand up for the web and deliver a body blow (figuratively, of course) the next time someone tells you your web app can't compete with their native one.



CSS3 and HTML5 for Mobile High Performance

close
Connie Finkelman

By Connie Finkelman

As the lead UI developer for Office Depot I worked with Java developers to bring our mobile site to a "Best in Class" status, gaining a 300% improvement in speed. In this presentation I'll talk about how to practically apply HTML5 and CSS3 in the mobile web environment to achieve maximum performance and speed.

This discussion includes how to develop for varying widths, how to use CSS3 to keep images small, how to deal with proxied browsers, how to leverage APIs and how to use HTML5 for responsive design and faster loads. I also discuss how to apply Javascript and the pros and cons of various libraries.



HTML and CSS for jQuery

close
Connie Finkelman

By Connie Finkelman

My experience with my own team has shown me that back-end developers are often frustrated by their inability to integrate jQuery with the UI.

This talk, originally prepared for my co-workers, discusses how the DOM is queried by browsers' rendering engines and by jQuery, how jQuery manipulates the DOM, and how to optimize jQuery for DOM performance. Then, the discussion turns to how to understand what HTML structures are required to provide hooks for Javascript, and finally how to use CSS to add interface to the interaction.



CSS Spriting

close
Connie Finkelman

By Connie Finkelman

The subject I am most excited about is spriting. Everyone knows that image spriting is an important component of enterprise CSS. But even giants like Yahoo and Facebook could make major improvements in the size and efficiency of their sprites. After an in-depth analysis of image sprites I discovered the key factors in minimizing images sizes for sprites and applying them efficiently.

This talk covers my breakthrough techniques for enterprise spriting and demystifies the spriting process.



Web Gaming APIs and their applications in business

close
Judson Flamm

By Judson Flamm and Tom Valletta

In the last couple months many new gaming APIs have landed in the latest browsers. These APIs give game developers better access to hardware and device resources. They also provide significant performance improvements to existing code.

In this presentation I will demonstrate how these gaming improvements can be used to improve enterprise application experience and make business logic more efficient.



ECMAScript 6: The new face of JavaScript (

close
Aaron Frost

By Aaron Frost

By the end of 2012, the new ECMAScript Spec will be approved. Browser vendors have already begun implementing the powerful new functionality. Based on my book "JS.Next: The future of JavaScript" this session will go over the new pieces of the JavaScript API.

This session will be hands-on, giving the participants the opportunity to get their hands on the new pieces afforded them in the latest JavaScript API. We will also go over using libraries like Traceur-Compile to provide backwards compatability for non-modern browsers.



Simpler Social Integration using API Mashups

close
Aaron Frost

By Aaron Frost and Tom Valletta

Each day our mobile gaming platform is becoming more and more capable. Each day the need to send games to the mobile browser increases. Many game designers are forcing developers into the same social integration UI flows that Desktop browsers have.

This class will show many different ways to connect your users with their friends, by using combinations of the new APIs available in our gaming device browsers. We will cover bump and simple gaming auto. Additionally we will unveil a new concept audio-signal auth to allow for seamless broadcast authorization.



I can haz C? A dive into Chrome Native Client

close
Aaron Frost

By Aaron Frost

Chrome Native Client provides web developers with all the resources and power that Native App developers have. Using an API code named "Salt & Pepper", web developers can now inject C and C++ (with additional language support on the way) into the browser to achieve a whole world of webby goodness. The Native code is then run inside a double-sandboxed environment to provide end users with security.

Attendees of this course will walk away with an understanding of the HTML and JavaScript that they will need to know in order to begin mashing together web apps and native client code to build be best Chrome Apps.



Diving into Web Intents

close
Aaron Frost

By Aaron Frost

The Web Intents API will allow users to mashup our website with other websites. It is an exciting new piece of the web platform. In this sessions we will go over setting up our own site to implement a Web Intent for our users.

The Web Intents API is new, and is still fluctuating. In this session we will talk about the different Intents available, and how we can register our site with one of those available intents.



Web Application Design from a Developer's perspective

close
Raju Gandhi

By Raju Gandhi

Poorly designed web applications fail to serve both the business and the users, leading to a unnecessary costs, and frustrated customers. By keeping the user in mind, and following a few simple guidelines, you can make huge leaps in the way your users interact with your applications.

In this session, we will focus on the enterprise - where the user-base is known and fairly consistent, but typically where user interface and interaction are not the top most priorities. We will discuss some rules for good design, look at a few simple design elements that can make your web apps shine, and your users rejoice.



Creating Websites using Noir

close
Raju Gandhi

By Raju Gandhi

Think Clojure is only for the back-end functional geeks? Think again. Noir is a web application framework written in Clojure.

In this talk we will see how we can create a simple site using Noir, and with Heroku's support for Clojure, deploy and run it in the cloud.



Dive into D3.js

close
Raju Gandhi

By Raju Gandhi

A picture is indeed a thousand words. Often, your users are better served if they are offered a visual representation of data than reams and reams of tables. Most JavaScript graphing libraries offer a DSL to create graphs, but can prove to be constricting if you are attempting to do something outside the original intent. D3.js, instead offers you an API to work with "data documents" - with powerful data manipulation capabilities, and visualization components. Furthermore, it leverages SVG rather than the Canvas element, allowing you to unleash the full power of CSS3 to style your latest creation.

In this session we will take a dive in D3. We will look into how D3 offers no new constructs for visualization, but rather lets you leverage well known web standard technologies such as HTML and CSS. We will see how to "think in joins", and use D3 along with SVG to create a animated bar chart.

Once you understand how D3 works, and how to use D3's APIs to create and manipulate the DOM, along with scales and axes you will be well on your way to creating your first visualization.



On Prototypal Inheritance

close
Raju Gandhi

By Raju Gandhi

You are a JavaScript developer who has gotten past writing one-off scripts on pages and wants to leverage the true power of the language. You have tasted the power of objects, and inheritance in Java, and hope to put the same to work for you in JavaScript.

This talk will aim to explain how inheritance works in JavaScript, albeit in the prototypal world rather than the "class"ical world. We will see how to create your own inheritance trees, and create instances that are born with a predefined set of behaviors.



Using Vagrant

close
Jerry Gulla

By Jerry Gulla

Vagrant is “virtualized development made easy.” If you’re looking to lower development setup time, minimize manual configuration and setup and eliminate the “it works on my machine” excuse, Vagrant is for you.

Vagrant leverages Oracle’s VirtualBox to create virtual machines that are configured via Puppet or Chef. You can use it to create reproducible and stable environments to deploy and test your application without hassle. Don’t hack up your development workstation to try and approximate your deployment config - use Vagrant to mimic the real thing.



The Browser as a Platform

close
Wesley Hales

By Wesley Hales

Today’s front end developer’s have an endless buffet of JavaScript frameworks and development tools that supposedly allow you to do your job better and be more efficient.

This talk wades through all the noise to discuss best practices for client-side user agent detection, code compression, GZIP, minification and build processes. We’ll review frameworks like grunt.js, HTML5boilerplate, and many others to see how these new techniques might fit into our current build processes with tools like maven or ant.



Making Your UI Scream (not your users)

close
Wesley Hales

By Wesley Hales

Execution of JavaScript, CSS and other web application resources in the browser can make or break your site. Today, front-end developers should be thinking about everything from base64’ing images into their CSS to JavaScript and UI thread blocking while the page loads. It’s important to know how fast your app is now and what steps you can take to reduce load time - ultimately leading to better SEO rankings, more lead conversions, and lower costs on bandwidth in the data center.

Wesley is a user interface consultant for CNN.com and has implemented many of the performance improving techniques mentioned in this talk. Come see the code and tools that did and didn’t work along with many fast-paced, code slinging demos.



The Browser as a Platform

close
Wesley Hales

By Wesley Hales

Today’s front end developer’s have an endless buffet of JavaScript frameworks and development tools that supposedly allow you to do your job better and be more efficient.

This talk wades through all the noise to discuss best practices for client-side user agent detection, code compression, GZIP, minification and build processes. We’ll review frameworks like grunt.js, HTML5boilerplate, and many others to see how these new techniques might fit into our current build processes with tools like maven or ant.



HTML5 on the Frontline

close
Wesley Hales

By Wesley Hales

Is HTML5 ready for production code? You bet! This is a look into all the different HTML5 technologies that can be used in your code, today.

We'll review a collection of tips, tricks, and best practices for HTML5 and W3C APIs such as Web Storage, Web Sockets, Web Workers, Geolocation, and Device Orientation. We’ll examine how these APIs contrast between desktop and mobile environments, then we’ll go into a deep dive on real world implementations for each one.



Android Workshop

close
James Harmon

By James Harmon

The technology industry has been swept up in many historical waves. In 1980 the widespread adoption of the PC, fifteen years later in 1995 the browser became widespread and in 2010 with the introduction of the iPhone, the smart phone wave began. Don't miss out. Grab your surfboard and learn how to ride the coming wave of smart phone development with Android.

Spend a day learning how to do development on the most popular smartphone platform available. Android is a Java platform - you can leverage your existing Java skills. You'll get hands on experience developing an Android app that will use all the major components of Android applications.

Use Android Activites to create the User Interface. Learn how to run background services. Create broadcast receivers to react to changes in the phones state. You'll even learn how to interact with the location services and display Google maps.

We'll take a deep dive into the details. You'll write code to interact with Android's built-in SQLite database. You'll add logging to your app and you'll even learn how to do unit testing in the Android environment.

Leave the class with hands-on skills and a working application that will be ready to publish to the Android Market.

Don't miss out. Grab your board and ride the Android wave!



Android for Tablets

close
James Harmon

By James Harmon

The smartphone has been the current platform of choice for Android development but we are now in the "year of the tablet" and it is time to upgrade your skills. Even though you think you know Android programming, you still need to learn the unique techniques for developing for tablet.

We'll analyse the UI patterns important on tablets (like Action Bars). And you'll learn how to use the specialized classes (like Fragments) that were created especially for tablets.

The following topics are included in this presentation:

The Tablet Marketplace Tablet UI design Optimizing layouts for larger screens Dips, Sips and pixels Action Bars Fragments Side Navigation 3rd Party Libraries



Introduction to Solr

close
Erik Hatcher

By Erik Hatcher

Apache Solr serves search requests at enterprises and the largest companies around the world. Built on top of the top-notch Apache Lucene library, Solr makes indexing and searching integration into your applications straightforward. This talk will introduce Solr's capabilities with live demonstrations.

Solr provides faceted navigation, spell checking, highlighting, clustering, grouping, and other search features. Solr can index rich documents such as PDF, Word, HTML, and other file types. Query volume scales with replication and collection size with distributed capabilities including the power of the new SolrCloud near-real-time distributed indexing.



Solr Recipes

close
Erik Hatcher

By Erik Hatcher

Solr Recipes provides quick and easy steps for common use cases with Apache Solr. Bite-sized recipes will be presented for data ingestion, textual analysis, client integration, and each of Solr’s features including faceting, more-like-this, spell checking/suggest, and others.

Quick and easy steps for common Apache Solr use cases

  • Ingesting recipes: CSV, relational databases, file system, web crawls, API

  • Analysis recipes: copyField, character mapping, tokenizing and filtering, configuring for suggest, data exploration

  • Faceting recipes: field, date and numeric range, pivot, and query faceting

  • Integration recipes: prototyping user interactions, working with Solr from PHP, Rails, Java, Ajax, and other environments

  • Other featured recipes: more like this, spell checking/suggest, grouping, clustering

Prerequisite: Java JDK 1.6 and a current version of Ant is recommended to run the examples.



Solr Recipes

close
Erik Hatcher

By Erik Hatcher

Solr Recipes provides quick and easy steps for common use cases with Apache Solr. Bite-sized recipes will be presented for data ingestion, textual analysis, client integration, and each of Solr’s features including faceting, more-like-this, spell checking/suggest, and others.

Quick and easy steps for common Apache Solr use cases

  • Ingesting recipes: CSV, relational databases, file system, web crawls, API

  • Analysis recipes: copyField, character mapping, tokenizing and filtering, configuring for suggest, data exploration

  • Faceting recipes: field, date and numeric range, pivot, and query faceting

  • Integration recipes: prototyping user interactions, working with Solr from PHP, Rails, Java, Ajax, and other environments

  • Other featured recipes: more like this, spell checking/suggest, grouping, clustering

Prerequisite: Java JDK 1.6 and a current version of Ant is recommended to run the examples.



Power Solr: Performance, Scaling, and Relevancy

close
Erik Hatcher

By Erik Hatcher

Make the most out of Solr by leveraging these tips and tricks to increase performance, scale Solr to your needs, and tune search results. This talk will discuss Solr architecture decisions, performance and scaling best practices, and considerations and techniques for adjusting search results for your application.

Solr can generally handle your "big data" needs, if deployed and utilized properly. But there are some devilish details to scale up and out. We'll discuss Solr's caches and general best practices for configuring the, how Solr's distributed architecture works and how it's being deployed in production environments, and we'll delve into the voodoo of Lucene search result scoring and how to incorporate application/domain-specific factors.

Prerequisite: Introduction to Solr (or equivalent experience)



Intro to Application Security

close
Les Hazlewood

By Les Hazlewood

Apache Shiro PMC Chair and Stormpath Founder/CTO, Les Hazlewood, will give an overview of the basics of application security, including...

● Basic best practices for authentication, authorization, session management, and cryptography ● Common web application security flaws and how to protect your web app ● What is OAuth and how does it work for web apps?

Join us for an informative session on Application Security!



Infinite Cloud Session Clustering with Apache Shiro

close
Les Hazlewood

By Les Hazlewood

Over 100,000 organizations have seen Apache Shiro's simplicity and power as as security framework for authentication and authorization. But did you know that Shiro's Enterprise Session Management enables easy session clustering for any application? If you need to support concurrent user sessions in the thousands or millions, you won't want to miss this!

Apache Shiro is an easy-to-use open-source security framework with four cornerstones: authentication, authorization, session management and cryptography.

In this session Les Hazlewood, the Apache Shiro PMC Chair, will cover: ● Shiro’s enterprise session management capabilities ● How it can be used across any application (not just web or JEE applications) ● How it can be used to support simple Single Sign-On ● How to enable a distributed session cluster to support hundreds of thousands or even millions of concurrent sessions.

As a working example, Les will show how to set up a cloud hosted session cluster in under 10 minutes using a distributed NoSQL data store. If you need to scale user session load, you won’t want to miss this!



Securing Multi-Tenant Cloud Applications with Apache Shiro

close
Les Hazlewood

By Les Hazlewood

Many modern cloud applications are “single-instance, multi-tenant”: one software product services many tenants (customers), but to end users, it ‘feels’ like a single-customer product. Apache Shiro is an easy-to-use and flexible security framework that can secure any application, including today’s modern cloud multi-tenant applications. In this presentation, we'll see how to secure a multi-tenant cloud application easily with Apache Shiro.

Apache Shiro is an easy-to-use open-source application security framework used by over 100,000 organizations to support the four cornerstones of application security: authentication, authorization, enterprise session management, and cryptography.

In this presentation Les Hazlewood, the Apache Shiro PMC Chair, will demonstrate:

● How to secure multi-tenant applications using Shiro ● How to resolve tenant and user identity for a web request ● How to perform tenant user authentication and authorization using Shiro’s APIs



Designing a Beautiful REST+JSON API

close
Les Hazlewood

By Les Hazlewood

Designing a really clean and intuitive REST + JSON API is no small feat. You have to worry about resources, collections of resources, pagination, query parameters, references to other resources, which HTTP Methods to use, HTTP Caching, security, and more! And you have to make sure it lasts and doesn't break clients as you add features over time. Further, while there are many references on creating REST APIs with XML, there are much fewer references for REST + JSON.

In this presentation, Les Hazlewood - Stormpath CTO and Apache Shiro PMC Chair - will share all of the golden nuggets learned while designing, implementing and supporting JSON-based REST APIs, using examples from a clean real-world REST+JSON API.

He will cover:

● JSON-based data formats in a RESTful API ● References to other JSON-based resources (aka 'linking'). ● Resource collections and pagination ● How to map (and how not to map) HTTP methods to Resource CRUD ● Resource partial updates ● Supporting HTTP Method Overloading for clients that don't support HTTP PUT and DELETE ● API versioning strategies ● Meaningful Error responses ● Many-to-many resource relationships ● HTTP Caching and Optimistic concurrency control. ● Authentication and Security



Scalable and Modular CSS FTW!

close
Denise Jacobs

By Denise Jacobs

If you're working on a large project with a lot of hands in the CSS pot, then your CSS may be doomed to code bloat failure. Scalable and modular CSS architectures and approaches are the new hotness and rightfully so. They provide sanity, predictably and scalability in a potentially crazy coding world.

This session will give an overview of some the most popular approaches, including OOCSS, SMACSS, CSS for Grownups, and DRY CSS as well as discussing some general principles for keeping your CSS clean, optimized, and easy to maintain.



The Importance of Storytelling in Web Design

close
Denise Jacobs

By Denise Jacobs

With the craft of web design, we often focus on coding methodologies, user interface design, color theory, typography and scripting. While these details are important, we also need to take a step back and apply a more meta approach to the entire design of a website and how it engages end-users. What if we strengthened our creations for the web by building them upon a foundation of Story?

Let's explore the growing importance of storytelling in web design, how to communicate Story through all aspects of a website from content, to design, to ux; and how to apply key components of great storytelling in literature to the medium of the web.



Gamify Your Work

close
Denise Jacobs

By Denise Jacobs

Looming deadlines, demanding clients, boring projects, and even feelings of fatigue that may signal the beginnings of burnout—any of these everyday afflictions can making it tough to dredge up the energy to be psyched about your work and be amazing at what you do. These feelings can disappear if we shift our perspective to gamify work.

Let's look at how we can bring gamification theories and practices to our work to spur the process of enhancing productivity and innovation to produce easily, better and more, and get to the epic win.



iOS Workshop

close
Christopher Judd

By Christopher Judd

During the all day iOS hands-on tutorial, we will do soup to nuts iOS development. We will start with how to use XCode and build a universal application for iPhone and iPad using a variety of common APIs. We will finish up talking about and demoing how to prepare and deploy to the app store.

The app we build will allow us to experiment with a bunch of APIs including Core Data, Camera, and more.



MOBILE CROSS PLATFORM DECISIONS

close
Christopher Judd

By Christopher Judd

Few enterprises and entrepreneur have the money or desire to build native applications for the two most popular mobile platforms, iOS and Android, let alone all the other mobile platforms.

This presentation provides a comparison and contrast of some of the leading mobile cross platform solutions such as Titanium, PhoneGap, Flash, Mobile Web and likely others that popup. Hopefully after this presentation you will be able to make better informed decisions which solution best meets your mobile business stategy and needs.



Java DevOps on a Budget

close
Christopher Judd

By Christopher Judd

As more development shops take operational responsibility of Java web and enterprise applications, Java devs need to be able monitor, manage and debug mission critical apps.

This presentation provides tips and tools for keeping Java applications and clusters up and running smoothly.



Grails from start to finish

close
Kenneth Kousen

By Kenneth Kousen

Build a complete Grails application in this full-day workshop. Start from scratch designing the domain, add controllers and services, improve the user interface with Ajax calls, write unit and integration tests, and use plugins add functionality.

While building the application, we'll also talk about issues relating to Hibernate sessions and GORM, and how the Grails architecture differs from other standard approaches. A survey of some of the more popular plugins will be included, and we'll add as many as time allows.

Prerequisite: Some knowledge of Groovy will be assumed



Testing Grails

close
Kenneth Kousen

By Kenneth Kousen

Grails comes with extensive testing support, ranging from unit to integration to functional tests. This session will demonstrate the range of options available both natively and through testing plugins.

Topics will include testing constraints, the mock libraries for testing controllers, generating test data, the available testing annotations, and more.

Prerequisite: Some knowledge of Grails would be helpful but not assumed



RIAs using the ZK plugin for Grails

close
Kenneth Kousen

By Kenneth Kousen

ZK is a set of custom tags and controllers that allow users to design Rich Internet Applications without writing the Ajax or JavaScript code directly. The ZKGrails plugin makes it easy to add ZK user interfaces to a Grails project. ZK is particularly good at designing data entry screens familiar to users of other technologies.

ZK views look very much like desktop applications and are automatically event-driven using Ajax calls. The plugin is Convention over Configuration meets Direct Ajax. Build powerful user interfaces using ZK composers, ZUL pages, and JavaScript event handlers.

Prerequisite: Some knowledge of Grails would be helpful, but not required



Building Modern Web Apps with Dart

close
Seth Ladd

By Seth Ladd

Dart helps put the App back into Web App. Learn how all the pieces of the Dart platform (language, vm, editor, libraries, and compiler to JavaScript) work together to help developers from all platforms build complex, high performance apps for the modern web.

Join Seth and explore Dart.



Jenkins 3/4 Day Workshop - bring a laptop! (See Notes)

close
Brent Laster

By Brent Laster

Join me for this 3/4 day Jenkins introduction workshop. We'll learn Jenkins from the ground up and work through examples to ensure you feel comfortable with using it and understanding it before the workshop ends.

Participants should bring either a Windows or Mac laptop to work through the workshop exercises.

Topics covered:

· What Jenkins is

· The Jenkins “object model”

· Global Configuration (first steps)

· Setting up build jobs and navigating around Jenkins

· Customizing Jenkins – adding parameters and utilizing environment variables

· Jenkins Plugins

· Building an example project with Jenkins and Git

· Setting up polling for changes

· Using the Jenkins command line interface

     Scripting Jenkins with Groovy

Notes:

We're looking forward to having you in the Jenkins workshop. To maximize the learning and value of our time together, we ask that you prepare your notebook that you're bringing to this very hands on workshop.

1) Choose a Windows or Mac laptop that you'll be bringing to the workshop (we have some downloads and installs that are better to do before the event). Ensure you have admin or sudo privileges on the machine.

2) Please have a recent Java JDK installed.

3) Download and install the latest Jenkins to your machine from: http://mirrors.jenkins-ci.org

4) Please have Git installed prior to attending the workshop. There's no need to "configure it" beyond the basic install. Installation instructions can be via operating-system specific pages at: http://help.github.com/win-git-installation/ http://help.github.com/mac-git-installation/

5a) Test your git setup is working by running git --version at your terminal prompt on Mac or at your "Git Bash Prompt" on Windows. Verify the output says Git is version 1.7 or higher.

Prerequisite: Prerequisites: No previous knowledge of Jenkins is assumed or required. Previous knowledge of GIT is preferable, but not required.



Jenkins 3/4 Day Workshop - bring a laptop! (See Notes)

close
Brent Laster

By Brent Laster

Join me for this 3/4 day Jenkins introduction workshop. We'll learn Jenkins from the ground up and work through examples to ensure you feel comfortable with using it and understanding it before the workshop ends.

Participants should bring either a Windows or Mac laptop to work through the workshop exercises.

Topics covered:

· What Jenkins is

· The Jenkins “object model”

· Global Configuration (first steps)

· Setting up build jobs and navigating around Jenkins

· Customizing Jenkins – adding parameters and utilizing environment variables

· Jenkins Plugins

· Building an example project with Jenkins and Git

· Setting up polling for changes

· Using the Jenkins command line interface

     Scripting Jenkins with Groovy

Notes:

We're looking forward to having you in the Jenkins workshop. To maximize the learning and value of our time together, we ask that you prepare your notebook that you're bringing to this very hands on workshop.

1) Choose a Windows or Mac laptop that you'll be bringing to the workshop (we have some downloads and installs that are better to do before the event). Ensure you have admin or sudo privileges on the machine.

2) Please have a recent Java JDK installed.

3) Download and install the latest Jenkins to your machine from: http://mirrors.jenkins-ci.org

4) Please have Git installed prior to attending the workshop. There's no need to "configure it" beyond the basic install. Installation instructions can be via operating-system specific pages at: http://help.github.com/win-git-installation/ http://help.github.com/mac-git-installation/

5a) Test your git setup is working by running git --version at your terminal prompt on Mac or at your "Git Bash Prompt" on Windows. Verify the output says Git is version 1.7 or higher.

Prerequisite: Prerequisites: No previous knowledge of Jenkins is assumed or required. Previous knowledge of GIT is preferable, but not required.



Jenkins 3/4 Day Workshop - bring a laptop! (See Notes)

close
Brent Laster

By Brent Laster

Join me for this 3/4 day Jenkins introduction workshop. We'll learn Jenkins from the ground up and work through examples to ensure you feel comfortable with using it and understanding it before the workshop ends.

Participants should bring either a Windows or Mac laptop to work through the workshop exercises.

Topics covered:

· What Jenkins is

· The Jenkins “object model”

· Global Configuration (first steps)

· Setting up build jobs and navigating around Jenkins

· Customizing Jenkins – adding parameters and utilizing environment variables

· Jenkins Plugins

· Building an example project with Jenkins and Git

· Setting up polling for changes

· Using the Jenkins command line interface

     Scripting Jenkins with Groovy

Notes:

We're looking forward to having you in the Jenkins workshop. To maximize the learning and value of our time together, we ask that you prepare your notebook that you're bringing to this very hands on workshop.

1) Choose a Windows or Mac laptop that you'll be bringing to the workshop (we have some downloads and installs that are better to do before the event). Ensure you have admin or sudo privileges on the machine.

2) Please have a recent Java JDK installed.

3) Download and install the latest Jenkins to your machine from: http://mirrors.jenkins-ci.org

4) Please have Git installed prior to attending the workshop. There's no need to "configure it" beyond the basic install. Installation instructions can be via operating-system specific pages at: http://help.github.com/win-git-installation/ http://help.github.com/mac-git-installation/

5a) Test your git setup is working by running git --version at your terminal prompt on Mac or at your "Git Bash Prompt" on Windows. Verify the output says Git is version 1.7 or higher.

Prerequisite: Prerequisites: No previous knowledge of Jenkins is assumed or required. Previous knowledge of GIT is preferable, but not required.



DIY 3/4 Day DIY Infrastructure Workshop - bring a laptop! (See Notes)

close
Brent Laster

By Brent Laster

Today’s open-source offerings allow teams to quickly and easily setup their own infrastructure for things like source management and builds. In this overview session, we'll survey some of these offering and see how to make them work to our advantage towards a Continuous Delivery model.

Participants should bring either a Windows or Mac laptop for working through the examples.

Notes:

We're looking forward to having you in the DIY Infrastructure workshop. To maximize the learning and value of our time together, we ask that you prepare your notebook that you're bringing to this hands on workshop.

1) Choose a Windows or Mac laptop that you'll be bringing to the workshop (we have some downloads and installs that are better to do before the event). Ensure you have admin or sudo privileges on the machine. Since we will be running a virtual machine on this system throughout the workshop, if you have a choice of laptops, please bring the one with a higher amount of memory and processor power.

2) Install VirtualBox on your system prior to the workshop. To simplify using all of the software that we'll be running in this session, we'll be making use of VirtualBox. You can install VirtualBox from www.virtualbox.org. (Note - the site currently seems to have an expired certificate which produces dire warnings in some browsers.) Take note of the directory where you install it. We'll need this information in the session.

3) Verify that you can start up ViritualBox and that it comes up successfully on your laptop. No more configuration is necessary.

In this 3/4 day workshop, we’ll learn how to utilize common free, open-source applications such as Cucumber, Aruba, Puppet, GIT, Jenkins, Sonar, Geb, and Spock to create a simple pipeline for managing and delivering a sample product. We will also discuss the principles of Continuous Delivery and model them as we setup our simple pipeline to do automatic builds, testing, and deployment of a sample web project - all running in a virtual machine on your laptop. We'll also talk about tooling to help automate database version management and look at scripting that can automatically extract and notify you of things like code quality metrics. Finally, we'll look at how to use some of the newest testing tools to make your testing easier.



DIY 3/4 Day DIY Infrastructure Workshop - bring a laptop! (See Notes)

close
Brent Laster

By Brent Laster

Today’s open-source offerings allow teams to quickly and easily setup their own infrastructure for things like source management and builds. In this overview session, we'll survey some of these offering and see how to make them work to our advantage towards a Continuous Delivery model.

Participants should bring either a Windows or Mac laptop for working through the examples.

Notes:

We're looking forward to having you in the DIY Infrastructure workshop. To maximize the learning and value of our time together, we ask that you prepare your notebook that you're bringing to this hands on workshop.

1) Choose a Windows or Mac laptop that you'll be bringing to the workshop (we have some downloads and installs that are better to do before the event). Ensure you have admin or sudo privileges on the machine. Since we will be running a virtual machine on this system throughout the workshop, if you have a choice of laptops, please bring the one with a higher amount of memory and processor power.

2) Install VirtualBox on your system prior to the workshop. To simplify using all of the software that we'll be running in this session, we'll be making use of VirtualBox. You can install VirtualBox from www.virtualbox.org. (Note - the site currently seems to have an expired certificate which produces dire warnings in some browsers.) Take note of the directory where you install it. We'll need this information in the session.

3) Verify that you can start up ViritualBox and that it comes up successfully on your laptop. No more configuration is necessary.

In this 3/4 day workshop, we’ll learn how to utilize common free, open-source applications such as Cucumber, Aruba, Puppet, GIT, Jenkins, Sonar, Geb, and Spock to create a simple pipeline for managing and delivering a sample product. We will also discuss the principles of Continuous Delivery and model them as we setup our simple pipeline to do automatic builds, testing, and deployment of a sample web project - all running in a virtual machine on your laptop. We'll also talk about tooling to help automate database version management and look at scripting that can automatically extract and notify you of things like code quality metrics. Finally, we'll look at how to use some of the newest testing tools to make your testing easier.



DIY 3/4 Day DIY Infrastructure Workshop - bring a laptop! (See Notes)

close
Brent Laster

By Brent Laster

Today’s open-source offerings allow teams to quickly and easily setup their own infrastructure for things like source management and builds. In this overview session, we'll survey some of these offering and see how to make them work to our advantage towards a Continuous Delivery model.

Participants should bring either a Windows or Mac laptop for working through the examples.

Notes:

We're looking forward to having you in the DIY Infrastructure workshop. To maximize the learning and value of our time together, we ask that you prepare your notebook that you're bringing to this hands on workshop.

1) Choose a Windows or Mac laptop that you'll be bringing to the workshop (we have some downloads and installs that are better to do before the event). Ensure you have admin or sudo privileges on the machine. Since we will be running a virtual machine on this system throughout the workshop, if you have a choice of laptops, please bring the one with a higher amount of memory and processor power.

2) Install VirtualBox on your system prior to the workshop. To simplify using all of the software that we'll be running in this session, we'll be making use of VirtualBox. You can install VirtualBox from www.virtualbox.org. (Note - the site currently seems to have an expired certificate which produces dire warnings in some browsers.) Take note of the directory where you install it. We'll need this information in the session.

3) Verify that you can start up ViritualBox and that it comes up successfully on your laptop. No more configuration is necessary.

In this 3/4 day workshop, we’ll learn how to utilize common free, open-source applications such as Cucumber, Aruba, Puppet, GIT, Jenkins, Sonar, Geb, and Spock to create a simple pipeline for managing and delivering a sample product. We will also discuss the principles of Continuous Delivery and model them as we setup our simple pipeline to do automatic builds, testing, and deployment of a sample web project - all running in a virtual machine on your laptop. We'll also talk about tooling to help automate database version management and look at scripting that can automatically extract and notify you of things like code quality metrics. Finally, we'll look at how to use some of the newest testing tools to make your testing easier.



Out of the Zone: Getting Comfortable being out of your Comfort Zone

close
Brent Laster

By Brent Laster

Technological change happens regularly these days – and with it – opportunity. Yet, most people work automatically towards building up comfort zones and work hard to stay within them. Being able to grow in our jobs and increase our skill set and sphere of competency/influence is essential for progress and overall well-being. We may not always like or agree with change, but often there are opportunities within it and the way we respond makes all the difference in the world.

In this presentation, we’ll look at how change impacts us and ways to deal with change and technical evolution so we don’t have to be afraid of it but come to expect and embrace it – and get to a point where we use it to our advantage – in short, getting comfortable being out of our comfort zones.



Dawn of the Devs

close
Nancy Lyons

By Nancy Lyons and Meghan Wilker

The interactive industry has a little PR problem: half the world sees us as reclusive loners sitting in dark rooms, and the other half sees us as app-happy adult kids riding through offices on scooters. However inaccurate this is, we have to change it. Future projects are riding on it, our industry is depending on it, and end users need it.

Interactive is only 50% technology; the other 50% is about people. The quality of our technological work directly correlates to how well we work with people, and people's experiences with what we build. We have a responsibility to make projects better and to create end products that are actually--in practice--the best solutions for our clients' problems. We have to learn to talk about what we do and how we do it, we have to teach clients how to think intelligently about the possibilities and realities of interactive products, and we have to ask our team members to do the same.

We'll discuss the framework the Geek Girls Guide developed to establish a high standard, industry-wide way of approaching digital projects. We'll outline how to collaborate well no matter what role you play on the team, give a high-level overview of an interactive process that works with any type of interactive product, and articulate the kind of thinking that's required for successful, effective results.



Unit & Component Testing: Accelerating the Feedback Cycle

close
Andy Painter

By Andy Painter

Unit testing is one of the most fundamental activities of a testing strategy by introducing testing at the lowest levels and highest frequency.

We explore some these key fundamentals to unit testing to get faster feedback:

What should we test?  
Unit testing patterns & frameworks
Keeping it simple and fast
Test doubles


Inspections & Technical Metrics: Accelerating Change by Measurement

close
Andy Painter

By Andy Painter

Where do defects come from? Technical debt is often one of our biggest challenges as poor design and defects are built up over time by cutting a corners here and there. We will discuss some key technical metrics that can shine light on these defects before they get out of control and find those that are out of control and worth your attention now.

We'll explore how the psychological effect of simply measuring technical metrics and making them visible can have immense impacts on reducing the occurences going forward.



Automated Acceptance Testing: Redefining the Users Role in Acceptance Testing

close
Andy Painter

By Andy Painter

We will discuss how to rethinking the User's role in Acceptance Testing. Traditionally this is a manual process that can cause significant delays in the software lifecycle.

We'll discuss where it make sense to introduce automated versus manual acceptance testing by using a risk-based approach. Rethinking this process can reducing cycle time in our projects significantly.



Testing the 4th Quadrant: When things go Non-Functional

close
Andy Painter

By Andy Painter

Some of the hardest things to tests are those non-functional requirements around security, reliability, performance and scalability. We often post-pone these activities until too late in the software lifecycle.

We will look at ways to incorporate these earlier and more often to make sure our software not only works but works when under expected conditions.



Reducing Technical Debt with Sonar

close
Andy Painter

By Andy Painter

Technical Debt can creep up on a project very quickly and ultimately create a technical crisis. Sonar can help you see how far gone your project may be and if you are continuing to head toward a crisis.

In this workshop we will discuss how the simple act of making technical debt visible to the developer, team, manager and organization can have a positive affect on the reversal of technical debt.
We will look at how to measure & visualize the seven axes of code quality:
Architecture & Design Comments Complexity Coding Rules Duplications Potential Bugs Unit Tests

We will show how to visualize measures these seven axes of code quality. These measures can help identify where to focus our limited time and attention to make the biggest impact on technical debt.
Used appropriately these measures can drive powerful conversations on reversing the current negative trends in your technical debt.



Extending the Range of Sonar

close
Andy Painter

By Andy Painter

Sonar has strong roots in measuring, visualizing, and reporting code quality in Java projects. We will quickly recap our seven axes of code quality from the "Reducing Technical Debt with Sonar" talk.

Using those same measures we will look at how you can customize Sonar to work with more heterogeneous environments. We will explore how to utilize the extensive plugin ecosystem to extend Sonar base capabilities to examine and report on projects in various languages. We will explore how to integrate with a wide range of analysis, developer, and continuous integration tools to incorporate Sonar into your existing processes to gain faster feedback, visibility and transparency across all of your projects.



The Executable Specification: an Agile Team's Best Friend

close
Andy Painter

By Andy Painter

The Executable Specification is a result of implementing a set of practices that allow frequent change in software products to ensure that the right product is delivered economically. We'll explore how mature Agile Team's go from User Stories to Executable Specifications by implementing practices that foster collaboration, shared understanding and liberal automation to achieve living documentation that supports the team.

We'll collaboratively walk through a evolving example of how software can be created by utilizing an executable specification to document the the software requirements and confirm it completeness.



Growing an OSS project by turning followers into leaders

close
Jason Porter

By Jason Porter

Open Source is about building a community of developers and users around a project willing to cooperate, exchange ideas and provide peer review. Participating in the project provides mutual benefit to all parties, including better software, skill improvement, respect, and being a member of a group of peers. But how does it happen? What motivates people to join your project? How do you grow the community?

We'll use Seam 3 as a case study. We'll present the factors we believe led to a 3000% increase in the project team in just one year, with many contributors leading one or more modules of the project. By the end of this talk, you should have plenty of ideas about how to increase participation so your project can realize these benefits.



jQuery Workshop

close
Brian Sam-Bodden

By Brian Sam-Bodden

In this course students will learn how to add interactivity and asynchronous behavior to web sites using Javascript via the jQuery library and its companion the jQuery UI library.

The workshop consists of: Beginning jQuery Advanced jQuery and jQueryUI

This is a hands on course for developers so bring your laptop and be prepared to write a lot of code!



Server-Side Push: Comet, Web Sockets, and Server-Sent Events come of age

close
Brian Sam-Bodden

By Brian Sam-Bodden

From client-side polling to SSE (Server-Sent Events) and WebSockets.

Server-side browser push technologies have been around for a while in one way or another. From crude browser polling to Flash enabled frameworks. In this session you'll get a code-driven walk-through on the evolution and mechanics of server-push technologies. From client-side polling to SSE (Server-Sent Events) and WebSockets. We'll explore a few implementation techniques, the protocols involved and the fallbacks and along the way I will help you gain a new practical understanding on this rapidly changing family of technologies and techniques



Mobile Web Development with jQuery Mobile

close
Brian Sam-Bodden

By Brian Sam-Bodden

In this workshop students will learn about mobile web development with jQuery Mobile, the Touch-Optimized Web Framework for Smartphones & Tablets. jQuery Mobile provides a unified user interface system across all popular mobile device platforms by building on the foundation of the jQuery and jQuery UI frameworks.

In this workshop students will learn about mobile web development with jQuery Mobile, the Touch-Optimized Web Framework for Smartphones & Tablets. jQuery Mobile provides a unified user interface system across all popular mobile device platforms by building on the foundation of the jQuery and jQuery UI frameworks.



Testing your JavaScript with Jasmine

close
Brian Sam-Bodden

By Brian Sam-Bodden

In this session you'll learn about Jasmine, a behavior-driven development (BDD) framework for testing JavaScript code. Come and learn how to raise the bar for your client side testing using the BDD mindset.

In this session you'll learn:

  • A bit about BDD and how it will lead you to better software
  • How to test non-DOM-dependent JavaScript
  • How to Jasmine can ease you in-browser testing (DOM dependent)
  • How to run client-side tests from the command line and integrate them into your build/CI environment


Meet the Replacements: CoffeeScript, SASS and HAML

close
Brian Sam-Bodden

By Brian Sam-Bodden

In this session you'll learn why web developers have flock to this set of replacement technologies on the web stack. CoffeeScript is JavaScript without the warts, SASS/SCSS is a better CSS and HAML makes your HTML markup simpler and cleaner.

In this session you'll learn why web developers have flock to this set of replacement technologies on the web stack. CoffeeScript is JavaScript without the warts, SASS/SCSS is a better CSS and HAML makes your HTML markup simpler and cleaner.



Star Search: Dojo Nano

close
Dylan Schiemann

By Dylan Schiemann

The Dojo Toolkit, one of the original Ajax toolkits, has reinvented itself again through a series of improvements in modularity, performance, API improvements, adjustments for HTML5 and mobile platforms, just to name a few.

We'll cover all the major changes in Dojo 1.6, 1.7, 1.8, and the plans for 2.0. The newest enhancements will provide a stellar platform for building exceptional web apps. Starting at less than 4KB gzipped!



Beyond Dojo: The Rise of AMD

close
Dylan Schiemann

By Dylan Schiemann

JavaScript does not have a built-in module system. Dojo for years has had a solution, but now this solution has been setup independent of Dojo and refined based on wider community needs. The result: it's possible to include modules from almost any toolkit or microtoolkit safely and efficiently.

In this talk, we will cover:

  • the history of AMD and JS modules
  • how modules work in the browser
  • how to create your own modules and packages
  • how to find third-party modules
  • how to use Dojo's new build tools for extreme optimization
  • how to use plug-ins for features like internationalization
  • implications for your project
  • real world users like the BBC and Twitter
  • examples combining projects like Dojo, jQuery, MooTools and more
  • what's next


Practicing Continuous Delivery on the Cloud

close
John Simone

By John Simone

This session will teach you best practices and patterns for doing Continuous Delivery / Continuous Deployment in Cloud environments. You will learn how to handle schema migrations, maintain dev/prod parity, manage configuration and scaling.

This session will use Heroku as an example platform but the patterns could be implemented anywhere.



Security Impact of HTML5

close
Johannes Ullrich

By Johannes Ullrich

HTML 5 does more then add a couple new and nifty tags to the venerable HTML markup language. It has to be seen as part of the new dynamic web which no longer delivers static documents but dynamic applications that interact with backend web services.

This talk will discuss some of the more prominent and complex features of HTML and explore how a developer can use these features securely. We will demonstrate some attacks and walk through how different defenses mitigate these attacks. One of the focus areas will also be privacy and how the user data can be protected within HTML 5 applications.



The Web API

close
Tom Valletta

By Tom Valletta

The WebAPI is providing developers with the ability to interact with device hardware and resources that have only been available to native platform stacks. Through the WebAPI web developers now have access to battery levels, screen orientation, cameras, background services, the file system, network status, radios, and much more. We will step through each of the APIs within the WebAPI showing code, demos, and browser support.

The objective of this presentation is to give participants an idea of the many new things that can be accomplished via the web.



Vert.x vs. Node.js

close
Tom Valletta

By Tom Valletta

Node is fast, dynamic, and trendy. Vert.x is practically unheard of. But some people claim that Vert.x could be the Node killer.

We will compare the two and outline their similarities and differences.






Featured Sessions


 

Featured Speakers


 

Blogs



 

Location

Westin Fort Lauderdale Beach Resort
321 North Fort Lauderdale Beach Boulevard
Fort Lauderdale, FL   33304
View Map
Westin Fort Lauderdale Beach Resort
 

Stay Informed

Not ready to register yet? Enter your email here to receive update notifications about this event.

Name:
Email: