Mobile

Presentations

Andrew Trice

Andrew Trice


Track: Mobile
Skill Level: Intermediate
Slot: 2/25, 10:30 AM
Room: Ballroom A

Designing and Architecting PhoneGap and Mobile Web Apps

Tired of Hello World? In this session, we explore best practices to build real-world PhoneGap applications. We investigate the Single Page Architecture, HTML templates, effective Touch events, performance techniques, modularization and more. We also compare and contrast the leading JavaScript and Mobile Frameworks. This session is a must If you plan to build a PhoneGap application that has more than a couple of screens.


Tags: html5, javascript, phonegap, mobile

Download Presentation (External Link)


Audio Recording (MP3)

Andrew Trice

Andrew Trice


Track: Mobile
Skill Level: Beginner
Slot: 2/24, 10:30 AM
Room: Ballroom A

Getting Started with PhoneGap and Cross-Platform Mobile Development

HTML has emerged as a powerful alternative to “native” to enable cross-platform mobile application development. In this session, you learn how to leverage your existing HTML and JavaScript skills to build cross-platform mobile applications, how to access the device features (camera, accelerometer, contacts, file system, etc) using JavaScript APIs, and how to package your HTML application as a native app for distribution through the different app stores.


Tags: html5, javascript, phonegap, mobile

Download Presentation (External Link)


Audio Recording (MP3)

Pratik Patel

Pratik Patel


Track: Mobile
Skill Level: Beginner
Slot: 2/24, 5:30 PM
Room: Ballroom A

Mobile Frameworks Smackdown

You’ve seen presentations on PhoneGap, Titanium, Corona, and Xamarin today. Now the real fun starts. In this session, we’ll bring the respective presenters for each of these frameworks on stage. The moderator will help lead a discussion on these tools with our panelists and open the floor to your questions so you can understand the pro’s and con’s of each of the frameworks.

No slides used


Tags: xamarin, titanium, phonegap, mobile, corona
Stephen  Feather

Stephen Feather


Track: Mobile
Skill Level: Beginner
Slot: 2/24, 1:00 PM
Room: Ballroom A

Cross platform Native Development with Titanium

Ever wish you could use your JavaScript-foo to build a NATIVE mobile app? Wish there was an open-source platform that would let you build awesome cross-platform mobile apps? Come to this session and learn about Titanium, an open-source, JavaScript based platform for creating native mobile apps.


Tags: javascript, android, mobile, ios

Download Presentation (External Link)

Chris Risner

Chris Risner


Track: Mobile
Skill Level: Intermediate
Slot: 2/25, 2:30 PM
Room: Ballroom A

Building Connected Android Apps with Azure

Learn how Windows Azure Mobile Services make developing your Android apps a breeze with a feature rich and easy to use backend. We’ll go over how you can take advantage of structured data stored in the cloud, send GCM push notifications with a single line of code, add authentication and secure your app, and much more. All of this with a native Java SDK built for Android! We’ll go over each feature and see how to use it with live coding demonstrations.


Tags: azure, android, cloud, mobile, push notifications

Download Presentation (External Link)


Audio Recording (MP3)

Andrew Zuercher

Andrew Zuercher


Track: Mobile
Skill Level: Beginner
Slot: 2/25, 4:00 PM
Room: Ballroom A

Building Titanium Applications with Alloy

In case you haven’t heard, alloy is a new MVC framework for Titanium…..

“Alloy will allow Titanium developers, old and new, to develop cross-platform mobile applications easier and more effectively than ever. The separation of concerns will increase the scalability of your apps. Titanium best practices are generated for you under the hood, making your apps of the highest quality across platforms. The markup, styles, themes, and mountain of other Alloy features will take your productivity to a whole new level.”

In our session covering alloy we will:

  • Identify the architectural framework of alloy (benefits, etc)
  • Implement a simple set of scenarios (coding examples)
  • Recognize sharp corners - what to look out for when implementing a new project in alloy

Tags: titanium, mvc, mobile

Download Presentation (External Link)


Audio Recording (MP3)

Grant Davies

Grant Davies


Track: Mobile
Skill Level: Beginner
Slot: 2/24, 4:00 PM
Room: Ballroom A

Introduction to Xamarin cross platform development

The talk will cover the following topics

1) What is Xamarin
2) Considerations for mobile development
3) Tools for mobile development
4) UX and creative design for mobile
5) Demo of a cross platform application


Tags: xamarin, mobile, ux

Audio Recording (MP3)

Grant Shipley

Grant Shipley


Track: Mobile
Skill Level: Beginner
Slot: 2/25, 1:00 PM
Room: Ballroom A

Full Stack JavaScript

Grant Shipley, lead Evangelist for OpenShift, will demonstrate how to develop iPhone and Android apps with MongoDB backends for the cloud. Let’s skip having to learn three different languages and jumpstart the development process using what you already know. We will start with developing a native mobile application using only javascript. Next, we’ll deploy our app to the cloud using node.js and explore a few tips and tricks for managing the MongoDB backend.


Tags: nodejs, javascript, android, cloud, mobile, iphone, mongodb

Download Presentation (External Link)


Audio Recording (MP3)

Justin Sheets

Justin Sheets


Track: Mobile
Skill Level: Beginner
Slot: 2/24, 2:30 PM
Room: Ballroom A

Introduction to Corona

Corona SDK is an excellent option for any kind of mobile developer from beginner to advanced. This tutorial will introduce you to this easy-to-use cross-platform framework and show you how to start creating content for your preferred platform.


Tags: android, mobile, ios

Download Presentation (External Link)


Audio Recording (MP3)

JavaScript

Presentations

Kyle Simpson

Kyle Simpson


Track: JavaScript
Skill Level: Advanced
Slot: 2/24, 1:00 PM
Room: Ballroom B

New Linting Rules

This talk is a linter for your code.

I bet you’ve been writing JS for years and you think you’re pretty good at it. I bet you think you know all about how functions create closured scope, and how this gets bound, and even how .prototype works. Or, rather, you probably don’t care because your framework or library takes care of all that for you.

We’ll revisit many of the difficult and commonly-misunderstood parts of JS and see how our code stacks up against these “new linting rules”. This talk is going to be hard-core on coding and expects a solid understanding of the language.

No slides available


Tags: html5, javascript

Audio Recording (MP3)

Ariya Hidayat

Ariya Hidayat


Track: JavaScript
Skill Level: Intermediate
Slot: 2/25, 10:30 AM
Room: Ballroom B

JavaScript API Design Principles

In this day and age it is pretty common to design a large-scale web application as a collection of modular and reusable components. These components need to have a reasonable set of APIs (application programming interfaces) which deliver against the stipulated engineering criteria. In addition this API set needs to retain ease of use. The success of a module is thus reflected in the way it is being used in other modules. This talk is intended to initiate the discussion on finding the principles for designing a good JavaScript API by observing the interactions between modules, particularly on the influence of an interface on the code patterns. Some good and bad examples found in real-world libraries will be shown, along with a collection of language tools designed to detect and analyze those patterns.


Tags: javascript, api design

Download Presentation (External Link)


Audio Recording (MP3)

Chris Richardson

Chris Richardson


Track: JavaScript
Skill Level: Intermediate
Slot: 2/24, 4:00 PM
Room: Ballroom B

NodeJS: the good parts? A skeptic’s view

JavaScript used to be confined to the browser. But these days, it becoming increasingly popular in server-side applications in the form of NodeJS. NodeJS provides event-driven, non-blocking I/O model that supposedly makes it easy to build scalable network application. In this talk you will learn about the consequences of combining the event-driven programming model with a prototype-based, weakly typed, dynamic language. We will share our perspective as a server-side Java developer who wasn’t entirely happy about JavaScript in the browser, let alone on the server. You will learn how to use NodeJS effectively in modern, polyglot applications.


Tags: nodejs, javascript, architecture, web

Download Presentation (External Link)


Audio Recording (MP3)

Mike Cantelon

Mike Cantelon


Track: JavaScript
Skill Level: Intermediate
Slot: 2/25, 2:30 PM
Room: Ballroom B

Creating Unhosted Applications with Node.js

While web application development usually involves developing for public servers, developing “unhosted” applications, meant to be run locally, can be preferable for certain use-cases. Unhosted web applications can run at no cost, with minimal latency, and without the security and privacy concerns that must be considered with public-facing web applications.

For web developers proficient in JavaScript, Node.js is a potential tool for developing unhosted applications. In this talk you’ll learn about why Node makes sense for this type of app and what you’ll need to know to start developing them. You’ll learn about how to get around traditional limitations of the browser using node-webkit and how your unhosted applications can be packaged and distributed to other users.


Tags: html5, nodejs, javascript

Download Presentation (External Link)

Ted Neward

Ted Neward


Track: JavaScript
Skill Level: Beginner
Slot: 2/24, 2:30 PM
Room: Ballroom B

Busy Developer’s Intro to NodeJS

The circle, as they say, is complete. JavaScript underwent a significant shift in thinking recently, from a “browser-only” language to a language that’s increasingly seen as a server-side execution system. In some cases, a JavaScript engine is embedded inside a larger server program, such as what we see with different NoSQL databases (MongoDB, CouchDB), but now, with the increasing popularity of NodeJS, as a server itself. In this presentation, we’re going to take a hard look at NodeJS, from installing it through using it write a variety of different server programs. No longer is JavaScript just a user-interface tool.


Tags: nodejs, javascript, java

Download Presentation (External Link)

Brian Rinaldi

Brian Rinaldi


Track: JavaScript
Skill Level: Intermediate
Slot: 2/24, 10:30 AM
Room: Ballroom B

Approaches to DOM Traversal

For many years we just used jQuery as the default approach to traversing the Document Object Model. However, not only has straight JavaScript gotten better at this task but some new libraries have dared to take entirely new approaches to this common requirement.


Tags: javascript

Download Presentation (External Link)


Audio Recording (MP3)

Ann Robson

Ann Robson


Track: JavaScript
Skill Level: Intermediate
Slot: 2/25, 1:00 PM
Room: Ballroom B

Make It Great: Refactoring That’s Smart and Satisfying

The world of living code will be a better place when refactoring is not only second nature, but measured and strategic. Develop your standards, approach refactoring in a safe and practical way, and track the evolution of your code with tools and metrics. Software can be beastly, but we got this!


Tags: refactoring, javascript

Download Presentation (External Link)


Audio Recording (MP3)

Stephen Thomas

Stephen Thomas


Track: JavaScript
Skill Level: Intermediate
Slot: 2/24, 5:30 PM
Room: Ballroom B

Unit Testing JavaScript Applications

Do you want to avoid spending hours or days hunting for your next bug? Would you rather have the computer flag bugs for you as soon as you enter them in your editor? That’s the goal of Test Driven Development (TDD), and there’s no reason that JavaScript developers should feel left out of the TDD party. This talk outlines the concepts of TDD, introduces JavaScript tools and frameworks that support it, and walks through the development of a sample application.

Basic familiarity with JavaScript MV* frameworks (Backbone, Angular, etc.) is helpful but not essential.


Tags: testing, javascript, tdd

Download Presentation (External Link)

Toby Ho

Toby Ho


Track: JavaScript
Skill Level: Intermediate
Slot: 2/25, 4:00 PM
Room: Ballroom B

Test Driven JavaScript Development That Feels Great

A lot of people view Test-Driven-Development (TDD) as a rigorous practice that requires a lot of self discipline. I will dispel this myth by showing how TDD can be fun, as well as give tips and tricks on how to keep your TDD experience fast, flowing, and enjoyable. Complete with live coding demo.


Tags: javascript, tdd, agile

Download Presentation (External Link)

Java

Presentations

Edward Burns

Edward Burns


Track: Java
Skill Level: Beginner
Slot: 2/24, 4:00 PM
Room: Ballroom C

JavaEE 7 In Practice: Blueprints Reborn

This session traverses some of the big ticket new features in JavaEE 7 by introducing the Cargotracker application. This end-to-end example is a new project on java.net. Cargotracker brings back some of the ideas of the JavaEE Blueprints efforts of years past. Some of the new JavaEE 7 features demonstrated in Cargotracker include:

  • WebSockets
  • JSON-P
  • JavaAPI for RESTful Web Services (JAX-RS)
  • JavaServer Faces (JSF)
  • Contexts and Dependency Injection (CDI)
  • Bean Validation
  • Expression Language

This is your chance to look at JavaEE 7 features in the context of a realistic application, available with an MIT license at http://cargotracker.java.net/.


Download Presentation (External Link)


Audio Recording (MP3)

Rob Winch

Rob Winch


Track: Java
Skill Level: Beginner
Slot: 2/25, 4:00 PM
Room: Ballroom C

Getting Started with Spring Security 3.2

Spring Security has evolved for over ten years to protect against the latest security threats. The latest release of Spring Security 3.2 is no exception bringing: CSRF protection, Clickjacking protection, Java Configuration support, optional Spring MVC integration, Servlet 3 and Servlet 3.1 integration, and concurrency support.

In this presentation Rob will incrementally apply Spring Security 3.2 to an existing application to demonstrate how to get up and running fast. It will focus on how to get up and running quickly and exploring the new features found in Spring Security 3.2. Whether you are itching to learn how to use Spring Security for the first time or you want to learn about all the new features in Spring Security 3.2 this presentation is a must.


Tags: springmvc, spring, java, security

Download Presentation (External Link)

John Napier

John Napier


Track: Java
Skill Level: Intermediate
Slot: 2/24, 1:00 PM
Room: Ballroom C

Refactoring towards functional Java

Have you been wanting to try out some functional techniques in your codebase but don’t know how to implement them in Java? Or has the challenge of refactoring from an imperative design to a more functional design proven too daunting of a task until now? Is it difficult to even know where to start?

This talk intends to address these challenges both by contrasting canonical imperative programming approaches with functional ones, and by demonstrating refactoring techniques that can aid in transmuting imperative code into functionally-inspired code.

Some things to expect in this talk:

  • a very brief overview of some key driving motivators behind FP
  • some Ideas around leveraging the strengths of OOP and FP in the same codebase
  • a foray into functional iteration patterns and a way to implement them in Java (folds, filters, transforms)
  • live demonstrations of refactoring towards those functional representations of imperative designs
  • notable performance implications of demonstrated functional approaches
  • audience participation in whatever form that naturally takes (questions, suggestions, example problems, collaborative coding)

Some things not to expect in this talk:

  • protracted academic conversations about why to use Clojure over Scala over Java over C over paper and pen
  • nazis
  • death rays
  • other things that cause us pain and/or death

In the interest of objectivity (and self-preservation), I will attempt to avoid making dogmatic statements like “of course chocolate is better than vanilla! Communist!” and other peripheral problematic faux pas. (In case I fail and do it anyway…well, my bad.)


Tags: functional programming, refactoring, java

Download Presentation (External Link)


Audio Recording (MP3)

Brett Meyer

Brett Meyer


Track: Java
Skill Level: Intermediate
Slot: 2/24, 5:30 PM
Room: Ballroom C

Not Just ORM: Powerful Hibernate ORM Features and Capabilities

Hibernate has always revolved around data, ORM, and JPA. However, it’s much more than that. Hibernate has grown into a family of projects and capabilities, extending well beyond the traditional ORM/JPA space.

This talk will present powerful features provided both by Hibernate ORM, as well as third-party extensions. Some capabilities are brand new, while others are older-but-improved. Topics include multiple-tenancy, geographic data, auditing/versioning, sharding, OSGi, and integration with additional Hibernate projects. The talk will include live demonstrations of each feature.


Tags: hibernate, osgi, javaee, orm, data, java, jpa

Download Presentation (External Link)


Audio Recording (MP3)

Ovidiu Dimulescu

Ovidiu Dimulescu


Track: Java
Skill Level: Intermediate
Slot: 2/25, 10:30 AM
Room: Ballroom C

Threads, Needles, Stacks, Heaps

Troubleshooting Java applications has the reputation of a dark art and is often compared to finding the needle in a haystack. Using tools bundled with the JDK and the OS, a few open source packages and lightweight approaches can help you zero in on a some common scenarios. We will explore working with local and remote JVMs, the myriad of startup flags, analyzing and correlating thread dumps with cpu consumption, system vs application level instrumentation, considerations for multi-tenant JVMs, getting around in an unfamiliar production environment and if we don’t forget, memory games.

If you could use more visibility into your Java application during development and production runs this talk is filled with practical tips, from the high level to the gritty details.


Tags: jdk, cloud, java

Download Presentation (External Link)

Josh Long

Josh Long


Track: Java
Skill Level: Beginner
Slot: 2/24, 10:30 AM
Room: Ballroom C

Have You Seen Spring Lately?

It’s been an amazing year for Spring! 2013 saw the Spring family join Pivotal where - along with Cloud Foundry, Grails, Redis, Tomcat, and RabbitMQ - Spring supports today’s application workloads and profiles. Today’s Spring is polyglot, provides a best-in-class REST stack, supports the open web, big-data, and mobile applications. Today’s Spring is easy to get started with, easy to learn, and convention-centric. Today’s Spring is…Pivotal. Join Spring developer advocate Josh Long as he re-introduces you to today’s Spring, a Spring you may not have seen yet.

This talk is a broad, running tour of the Spring.iO platform. I’ll demonstrate our HATEOAS-compliant and OAuth-secured REST service support, NoSQL and big-data support, websockets support, OAuth and open-web security support and our mobile support.


Tags: websockets, big data, spring, javaee, rest, java, oauth, hateoas, security, nosql

Download Presentation (External Link)


Audio Recording (MP3)

Stephen Chin

Stephen Chin


Track: Java
Skill Level: Intermediate
Slot: 2/24, 2:30 PM
Room: Ballroom C

Java SE 8 for Tablets, Pis, and Legos

This is not your grandfather’s Java ME. Deep dive and demonstration on the new Java SE Embedded support for ARM processors. We will demonstrate the full power of Java SE 8 running on consumer tablets (iOS/Android), embedded devices such as Raspberry Pi and PandaBoard, and the new Lego Mindstorms EV3, all of which use low power ARM chips. See end-to-end coding on devices, discuss coding practices for building performant applications, and get the low down on what is supported and what is not.

Jim Weaver is co-presenting this session.


Download Presentation (External Link)

Stephen Chin

Stephen Chin


Track: Java
Skill Level: Intermediate
Slot: 2/25, 2:30 PM
Room: Ballroom C

Retro Gaming with Lambdas

Lambda expressions are coming in Java 8 and dramatically change the programming model. They allow new functional programming patterns that were not possible before, increasing the expressiveness and power of the Java language.

In this university session, you will learn how to take advantage of the new lambda-enabled Java 8 APIs by building out a retro video game in JavaFX.

Some of the Java 8 features you will learn about include enhanced collections, functional interfaces, simplified event handlers, and the new stream API. Start using these in your application today leveraging the latest OpenJDK builds so you can prepare for the future Java 8 release.


Download Presentation (External Link)

Craig Walls

Craig Walls


Track: Java
Skill Level: Beginner
Slot: 2/25, 1:00 PM
Room: Ballroom C

What's new in Spring?

It was over 10 years ago that Spring hit the scene and made a big impact in the enterprise Java development ecosystem. Now that Spring 4 is available, there’s a lot of new features and a lot that you may not know about yet. Whether you’re already working with Spring 4 or are anxious to make a move up, there’s plenty of new tricks Spring has in store for you. We’ll explore them all in this overview of everything that’s new in Spring.


Tags: spring, java

Download Presentation (External Link)


Audio Recording (MP3)

Data + Integration

Presentations

Gail Zhou

Gail Zhou


Track: Data + Integration
Skill Level: Intermediate
Slot: 2/25, 10:30 AM
Room: Ballroom D

Big Data Technology, Strategy, and Applications

Gail Zhou will provide a briefing on Big Data Technology. She will offer insight on Big Data strategy and applications. She will help to answer the following key questions:

(1) What is Big Data and why is it such a big deal?
(2) How do you choose technologies (Hadoop, HBase, Cassandra, etc.)?
(3) What kind of Big Data Strategy can you develop?
(4) What kind of Big Data Architectures?
(5) How do you integrate Big Data with traditional applications? What kind of issues would you expect?
(6) How do you get started on Big Data?


Tags: data integration, big data

Download Presentation (External Link)


Audio Recording (MP3)

Brett Meyer

Brett Meyer


Track: Data + Integration
Skill Level: Intermediate
Slot: 2/25, 1:00 PM
Room: Ballroom D

Boost Your Data: Hibernate ORM Tips, Tricks, and Performance Techniques

Out-of-the-box, Hibernate ORM offers limited overhead and decent throughput. Early-stage applications enjoy the convenience of ORM/JPA with great performance. However, scaling your application into an enterprise-level system introduces more demanding needs.

This talk will describe numerous tips and techniques to both increase Hibernate ORM performance, as well as decrease overhead. These include some basic tricks, such as mapping and fetching strategies. More complex considerations, Entity enhancement instrumentation, third-party second level caching, Hibernate Search, and other considerations will also be discussed. The talk will include live demonstrations of each technique and its before-and-after results.


Tags: performance, hibernate, javaee, orm, java

Download Presentation (External Link)


Audio Recording (MP3)

Robbie Strickland

Robbie Strickland


Track: Data + Integration
Skill Level: Intermediate
Slot: 2/24, 5:30 PM
Room: Ballroom D

Cassandra 2.0: Big Data Grows Up

For the last several years Cassandra has been the heavyweight in the NoSQL space. But its massive scalability was accompanied by a bare bones feature set, a substantial learning curve, and a Thrift-based RPC mechanism that left newbies bewildered by a sea of potential client libraries–all with their own fragmented semantics. Over the last year that’s all changed, culminating in the recently unveiled Cassandra 2.0. In this talk I’ll bring you up to speed on Cassandra Query Language, cursors, the new native libraries, lightweight transactions, virtual nodes, and loads of other new goodies. Whether you’re completely new to Cassandra or a seasoned veteran who wants the latest scoop, this talk has something for you.


Tags: cassandra, big data, nosql

Download Presentation (External Link)

James Chittenden

James Chittenden


Track: Data + Integration
Skill Level: Intermediate
Slot: 2/24, 10:30 AM
Room: Ballroom D

How Google Does Big Data

Rapidly crunching terabytes of big data requires complex technology and tremendous IT investment. Organizations of all sizes are looking for alternatives to the existing world of on-premise database technology and looking to the cloud and “big data” technologies to deal with the explosion of data types and volumes available in their organizations.

Over the years, Google has been an innovator in processing and analyzing massive amounts of information. Google has been responsible for inventing and developing many of the technologies that have been adopted by the IT industry to solve “big data” and computationally intensive problems.

Google’s Big Data and Cloud Platform Expert James Chittenden will examine in depth, what it takes to succeed in deriving business value out of Big Data. We’ll dive into Google’s Big Data stack (BigQuery, Compute Engine + Hadoop, Building Big Data Pipelines, etc) as well as explore best practices when harnessing Google’s massive infrastructure in supporting those efforts.


Download Presentation (External Link)


Audio Recording (MP3)

Peter Bell

Peter Bell


Track: Data + Integration
Skill Level: Beginner
Slot: 2/24, 4:00 PM
Room: Ballroom D

Redis - the swiss army knife of NoSQL

With hashes, lists, sets, sorted sets and native pub/sub functionality, redis is much more than a simple key:value store. And in addition it performs like an in-memory store but is able to snapshot or journal to disk as a primary store for some data types. In this class we’ll look at how to get started with redis and how to use the power of features like sets and sorted sets to solve real world performance problems using redis.


Tags: data, nosql

Download Presentation (External Link)

Mark Pollack

Mark Pollack


Track: Data + Integration
Skill Level: Intermediate
Slot: 2/25, 2:30 PM
Room: Ballroom D

Introducing Spring XD

Developing Big Data applications is a relatively new art and developing a comprehensive solution can be challenging. Some of the key challenges arise from bringing together complex domains such as stream analysis, batch workflow orchestration and data import and export.

Several open source projects that address developing big data applications have emerged in the past few years but each project typically only address one of these domains.

Furthermore, being distinct independent projects they have different configuration and extensibility models. Spring XD is a new project that aims to tackle big data complexity. It builds upon proven Spring technologies and provides a scalable runtime environment that is easily configured and assembled via a simple DSL.

Come discover how easy it is to create big data applications in this introduction to Spring XD.


Tags: big data, spring batch, spring, spring integration, analytics

Download Presentation (External Link)


Audio Recording (MP3)

Ted Neward

Ted Neward


Track: Data + Integration
Skill Level: Beginner
Slot: 2/24, 1:00 PM
Room: Ballroom D

Busy Developer's Guide to NoSQL

With the introduction of CouchDB to the world, the world suddenly seemed to be alive with a whole slew of “alternative” approaches to data persistence, collectively called “NoSQL” and offering a “slightly different” to “radically different” view of data storage and retrieval. It’s left a few developers scratching their heads, trying to figure out when to use a NoSQL database instead of a regular database, much less which NoSQL database to use. In this session, we’ll examine the NoSQL ecosystem, look at the major players, how the compare and contrast, and what sort of architectural implications they have for software systems in general.


Tags: data, java, nosql

Download Presentation (External Link)

Michael Minella

Michael Minella


Track: Data + Integration
Skill Level: Beginner
Slot: 2/24, 2:30 PM
Room: Ballroom D

Learning the ways of Spring Batch

Viral videos are nothing new. However, the ability to analyze the traffic they generate and gather meaningful information is new to most enterprises. In this talk, we’ll look at a viral video (the “Star Wars Kid”) and the log files it generated. We’ll cover basic batch concepts as we build a robust, scalable batch application using Spring Batch to answer the question of who was watching this video when it went viral. No experience in Spring Batch is required for this talk.


Tags: spring batch, spring, batch, integration

Download Presentation (External Link)

Yulin Zhao

Yulin Zhao


Track: Data + Integration
Skill Level: Beginner
Slot: 2/25, 4:00 PM
Room: Ballroom D

Achieving more with less – a real-world case study: Accelerating Quality Batch Delivery with Spring Batch

You’ve heard about great features Spring Batch offers. You believe it’s the right tool for your legacy batch upgrade. However, you feel you just need a bit more to help convince yourself or your technical/business stake holders to pull the trigger…
In this session, we’ll walk you through a real-world scenario based on a large data processing company. We’ll dive into challenges faced and discuss with you how we leveraged Spring Batch that greatly accelerated delivery, helped maximize our focus on the business problem, while maintaining the batch jobs’ enterprise quality.
This session assumes a basic understanding of batch processing and Spring Batch. Michael Minella’s Spring Batch 101 is recommended if you have no prior exposure to Spring Batch.


Tags: spring batch, spring, javaee, java, integration, batch processing

Download Presentation (External Link)

Agile + Architecture

Presentations

Neal Ford

Neal Ford


Track: Agile + Architecture
Skill Level: Intermediate
Slot: 2/24, 4:00 PM
Room: Ballroom E

Build Your Own Technology Radar

ThoughtWorks’ Technical Advisory Board creates a “technology radar” twice a year, a working document that helps the company make decisions about what technologies are interesting and where we will spend our time. This is a useful exercise both for you and your company. This session describes the radar visualization, how to create litmus tests for technologies, and the process of building a radar. You need two radars. As an individual, a technology radar helps guide your career decisions and focus your precious R&D time. For your company, creating a radar helps you document your technology decisions in a standard format, evaluate technology decisions in an actionable way, and create cross-silo discussions about suitable technology choices. Attendees will leave with tools that enhance your filtering mechanisms for new technology and help you (and your organization) develop a cogent strategy to make good choices.


Tags: architecture

Download Presentation (External Link)

Stephen Wilson

Stephen Wilson


Track: Agile + Architecture
Skill Level: Intermediate
Slot: 2/25, 1:00 PM
Room: Ballroom E

Thinking about DevOps? Better plan it based on application performance.

DevOps is a proven practice for high performing IT organizations. It is the new buzzword in IT but larger enterprises are having mixed if any success. Culture change can be a daunting task especially since most of the focus is around operations. Today its not just about the end user’s experience but also about how quickly the business can deliver new and innovative features to the market. This is hard when the two sides of this delivery model are opposed to each other. Operations wants stability and development wants velocity. With this type of constraint on time and resources the idea of doing right is shadowed by doing it fast. In this talk I would like to share how development and operations can come together using performance as the currency to drive innovation. Performance is the one constant that everyone can use to apply DevOps practices with high adoption results.


Tags: performance, it operations, devops, agile

Download Presentation (External Link)

Jared Richardson

Jared Richardson


Track: Agile + Architecture
Skill Level: Beginner
Slot: 2/24, 10:30 AM
Room: Ballroom E

An Introduction to Agile

Agile software practices have never been more popular, but too often teams skip the basics and only pick and choose parts they think are useful. This talk provides a brief background of popular Agile processes and explains how you can apply them to your own work. We’ll discuss both the technical practices and the project management processes. Both are useful alone, but together they’re a powerful force that can revitalize your team and organization.


Download Presentation (External Link)


Audio Recording (MP3)

Jason Chambers

Jason Chambers


Track: Agile + Architecture
Skill Level: Advanced
Slot: 2/25, 4:00 PM
Room: Ballroom E

Micro services based architectures - a path to "Living Software"

The age of large monolithic software architectures needs to come to close. A 1M LOC Java EE application is an example of such a monolith. They do not age well; are difficult to change; difficult to understand; difficult to test; difficult to diagnose issues; and quickly become saddled with overwhelming technical debt. We have introduced practices such as re-factoring and automated tests to help us deal with this insanity. Is there a better way? Micro services based architectures look very promising. But what exactly are micro services? How do you get started? What are the benefits? What are the trade-offs? How do you design them? I will share with you my journey to the discovery of micro services. The goal of the talk is to help you understand if a micro services based architecture might be a good fit for the business problem you are trying to solve.


Tags: architecture

Download Presentation (External Link)


Audio Recording (MP3)

Joe Moore

Joe Moore


Track: Agile + Architecture
Skill Level: Beginner
Slot: 2/25, 2:30 PM
Room: Ballroom E

I've Pair Programmed for 27,000 Hours. Ask me Anything!

It’s true! I’ve pair programmed eight hours per day, five days per week, about 50 weeks per year for the last 13 1/2 years. For the past three and a half years I’ve even remote pair programmed from my home office full time.

I’ve given presentations at many conferences, meetups, and companies on topics ranging from Agile team management to Android messaging frameworks. Once I inevitably mention that I pair program full time and the presentation grinds to a screeching halt as I’m peppered with questions about pair programming, regardless of my actual presentation topic.

Fine! Let’s do this thing. What is pair programming? Why doesn’t pair programming make software cost twice as much or take twice as long to develop? Do I pair with the same person every day? Who owns the code? How do performance reviews work? What do I do if my pair is sick? What do I do if I hate my pair? What if my pair is as dumb as a rock?

What if my pair smells bad? What if my pair smells GOOD?!

I’ll answer any and all questions about pair programming and remote pair programming, from the poignant to the silly. I have no doubt that we can fill the allotted time with sage advice, educational anecdotes, and your own stories about pair programming.

Ask me anything!


Tags: pair programming, agile

Download Presentation (External Link)


Audio Recording (MP3)

Cory Foy

Cory Foy


Track: Agile + Architecture
Skill Level: Beginner
Slot: 2/24, 2:30 PM
Room: Ballroom E

From Scrum to Kanban

Agile software practices are very popular with Scrum being the more favored methodology, but there is a new kid on the block pressing to become a favored process that is Kanban from the Lean mindset. This talk does a compare and contrast of Lean and Agile as well as Kanban and Scrum. The talk will explain how a team can implement either Kanban or Scrum and how you could move from Scrum to Kanban and why a team or organization might desire to make the change to Lean/Kanban.


Tags: scaling agile, agile

Download Presentation (External Link)


Audio Recording (MP3)

Jared Richardson

Jared Richardson


Track: Agile + Architecture
Skill Level: Beginner
Slot: 2/24, 1:00 PM
Room: Ballroom E

Continuous Test Automation

Today’s QA organizations often have sizable investments in test automation. Unfortunately running and maintaining your test suites represents a sizable investment. Far too often this hard work is abandoned and teams revert to a more costly, but familiar, manual approach.

A more practical solution is to integrate your test automation suites with a concept called “continuous integration”. A CI system monitors your source code and compiles the system after every change. Once the build is complete, test suites are automatically run. This approach of ongoing test execution provides your developers rapid feedback and keeps your tests in constant use. It also frees your testers up for more involved exploratory testing.

Jared shows how to set up an open source continuous integration tool and explains the best way for you to introduce this technique to your developers and testers. The concepts are simple when presented properly and provide solid benefits to all areas of an organization.


Download Presentation (External Link)


Audio Recording (MP3)

Jared Richardson

Jared Richardson


Track: Agile + Architecture
Skill Level: Beginner
Slot: 2/24, 5:30 PM
Room: Ballroom E

Scaled Agile Framework: A Blueprint for Enterprise Scale Agility

Scaled Agile Framework (SAFe) is a popular Agile process for enterprise Agile adoption. It spells out individual roles, teams, activities and artifacts necessary to scale agile from the team to program to the enterprise level. Jared is using SAFe at a large insurance client in the midst of an organizational Agile transformation. We’ll examine the SAFe framework and show you how to get started, as well as what you’ll need to adjust to succeed.


Download Presentation (External Link)


Audio Recording (MP3)

Brian Fox

Brian Fox


Track: Agile + Architecture
Skill Level: Beginner
Slot: 2/25, 10:30 AM
Room: Ballroom E

Open Source Components Fuel Agile Development

Usage of Java components to build applications has grown exponentially. Today, an application consists of 80 - 90% components. And components are a great fit with agile development - using pre-built components speeds development efforts making it possible to shorten development cycles.
Many of these components are open source components that are housed in the Central Repository, the defacto standard used by open source project teams to distribute their binaries. Recent research shows some interesting trends:
8 billion components were downloaded from Central in the last 12 months.
53% of survey respondents are standardizing on an open source development infrastructure stack.
76% of large organizations have no control over what components are being used in software development projects

Although components help improve developer productivity so that applications can be delivered faster, if components are not managed effectively, security, licensing, and quality issues can put your organization at risk. Gartner addresses the need to manage components as part of an overall software supply chain approach: “IT supply chain integrity issues are expanding from hardware into software and information. They are growing more complex as IT systems are assembled from a large number of geographically diverse providers, and, now of mainstream concern to enterprise IT.” - Ray Valdes, research vice president at Gartner.

Join us as we introduce key concepts for managing and exploiting these components.
We’ll discuss the current state of application development market, the promise and challenge of components
We’ll discuss how components need to be managed throughout the entire software lifecycle
We’ll discuss the ramifications that components have for Agile and DevOps methodologies
We’ll provide you with a set of best practice considerations to kick-start your component management initiative.


Tags: open source, maven, components, agile

Download Presentation (External Link)


Audio Recording (MP3)

HTML5

Presentations

Laura Moore

Laura Moore


Track: HTML5
Skill Level: Beginner
Slot: 2/25, 4:00 PM
Room: Ballroom F

Building it better? Automated tools for software development old and new

After a long, hard road getting your enterprise up to speed with Maven, Junit, Nexus and Jenkins now you’re hearing about new tools like Bower, Karma, Grunt, Node. But do you need to start that fight again to update your current standards or is the hype just the same old problem with new buzzwords? This talk will dive into the spectrum of tools available and help you answer the question “What do the new tools have that I don’t?”.


Tags: build tools, nexus, javascript, bower, maven, node, grunt, karma

Download Presentation (External Link)


Audio Recording (MP3)

Verlin Henderson

Verlin Henderson


Track: HTML5
Skill Level: Beginner
Slot: 2/25, 2:30 PM
Room: Ballroom F

How to Impress Girls (or Boys) with HTML5 and AngularJS

This is the story of a boy.

And a girl.

And a web application.

In this gentle introduction to AngularJS, Verlin Henderson tells us the heartwarming story of trying to impress a girl by creating a “mixtape” web application. We start with a simple HTML page and iterate over several version into a full-blown multi-user web application with a Spring MVC backend. Does our hero get the girl? You’ll have to stay to the end to find out!


Tags: html5, angularjs, spring mvc, spring

Download Presentation (External Link)

Kevin Whinnery

Kevin Whinnery


Track: HTML5
Skill Level: Intermediate
Slot: 2/25, 10:30 AM
Room: Ballroom F

Twilio hardware hack with Raspberry Pi & Chromecast

Twilio is a cloud solution for working with VOIP, SMS, and telephony. Twilio can be used from virtually anywhere - in this session, we’ll see how easy it is to create a telephony integrated application on the Raspberry Pi and the Chromecast.


Tags: telephony, voip, hardware

Download Presentation (External Link)


Audio Recording (MP3)

Ariya Hidayat

Ariya Hidayat


Track: HTML5
Skill Level: Intermediate
Slot: 2/24, 5:30 PM
Room: Ballroom F

Tweaking CSS3 for Hardware Acceleration

New CSS3 features such as animation, transition, and filters empower web designers to enrich the web pages with various types of interactivity and effects. Modern browsers, both on the desktop and mobile, are capable of rendering these CSS3 effects with the dedicated graphics processing unit (GPU) by using the compositing technique. There has been a lot of well-known CSS3 best practices, often centered around "use 3-d transform”. This talk sheds some more light on the browser interactions with the GPU and explain what happens behind the scenes, particularly for the objective of maximizing the synergy between the GPU and the CPU to have the most optimal CSS rendering performance.


Download Presentation (External Link)


Audio Recording (MP3)

Kyle Simpson

Kyle Simpson


Track: HTML5
Skill Level: Intermediate
Slot: 2/25, 1:00 PM
Room: Ballroom F

#CSS {Yawn: Yay}

Maybe you think moving from static CSS files to (mostly-static) CSS preprocessing was a huge revolution for your app’s styling. I’ve got news for you. You’re still stuck in quicksand.

If you want more out of your CSS, it should be dynamically templated, not just build-processed. Render the CSS on-the-fly, responding to run-time conditions, either on the server or in the browser. And that’s just the beginning. Imagine modifying CSS structure and rule-relationships in process, re-compiling then re-rendering? Yep.

Are you still excited because your CSS automatically re-compiles on save? CSS.past. Open your eyes to the next big things in CSS. You don’t need more fancy features and coding constructs IN your CSS file, you just need super-charged CSS tools. Welcome to CSS templating.

We haven’t scratched the surface of what CSS can do for us yet. It’s time we get scratching.


Tags: html5, css templating, javascript, css

Download Presentation (External Link)


Audio Recording (MP3)

Yakov Fain

Yakov Fain


Track: HTML5
Skill Level: Intermediate
Slot: 2/24, 10:30 AM
Room: Ballroom F

Seven Versions of one Web application

This talk is a fast paced comparison of different ways of developing HTML5 Web applications. The audience will see seven versions of the same Web application. We’ll start with architecture and code review of a basic HTML/JavaScript version of a sample charity application. After that we’ll switch to its jQuery version, then you’ll see how to do it with Ext JS framework, then we’ll cut this application into slices for modularization reasons. The second part of this presentation is about moving this application to mobile devices. You’ll see this application implemented with Responsive Design principles, and then two more versions: one with jQuery Mobile and the other with Sencha Touch. If time permits, we’ll try to review one more version written in a new programming language that Java developers should learn.


Download Presentation (External Link)

Raju Gandhi

Raju Gandhi


Track: HTML5
Skill Level: Beginner
Slot: 2/24, 1:00 PM
Room: Ballroom F

AngularJS Bootcamp I

In this session, we will take a look at Angular - a new MVC framework by Google. We will discuss some of the terminology that Angular offers, and see how we can use that to develop highly interactive, dynamic web applications.
Angular embraces HTML and CSS, allowing you to extend HTML towards your application, and uses plain JavaScript which makes your code easy to reuse, and test.

Topics covered (Bootcamp I + II)
  • Bootstrapping an AngularJS application using ng-app
  • ng-init and the evaluation {{ }} directive
  • A brief look at $rootScope
  • ng-model
  • Controllers, Dependency Injection, and the View-Model ($scope)
  • Looping using ng-repeat
  • Forms using ng-form, form validation and submission in AngularJS
  • Angular provided filters and how to write our own
  • Factories
  • Making AJAX requests using $http
  • Routing and route params using $routeProvider and $routeParams

Note: This is an intro level talk. It is targeted towards developers who are curious about Angular and want to learn about the fundamental features and concepts in Angular.


Tags: html5, angularjs, javascript

Download Presentation (External Link)

Raju Gandhi

Raju Gandhi


Track: HTML5
Skill Level: Intermediate
Slot: 2/24, 2:30 PM
Room: Ballroom F

AngularJS Bootcamp II

In this session, we will take a look at Angular - a new MVC framework by Google. We will discuss some of the terminology that Angular offers, and see how we can use that to develop highly interactive, dynamic web applications.
Angular embraces HTML and CSS, allowing you to extend HTML towards your application, and uses plain JavaScript which makes your code easy to reuse, and test.

Topics covered (Bootcamp I + II)
  • Bootstrapping an AngularJS application using ng-app
  • ng-init and the evaluation {{ }} directive
  • A brief look at $rootScope
  • ng-model
  • Controllers, Dependency Injection, and the View-Model ($scope)
  • Looping using ng-repeat
  • Forms using ng-form, form validation and submission in AngularJS
  • Angular provided filters and how to write our own
  • Factories
  • Making AJAX requests using $http
  • Routing and route params using $routeProvider and $routeParams

Note: This is an intro level talk. It is targeted towards developers who are curious about Angular and want to learn about the fundamental features and concepts in Angular.


Tags: html5, angularjs, javascript, spa

Download Presentation (External Link)

TJ VanToll

TJ VanToll


Track: HTML5
Skill Level: Intermediate
Slot: 2/24, 4:00 PM
Room: Ballroom F

jQuery UI Widgets vs. HTML5

HTML5 has brought native capabilities to the browser that were previously only available through JavaScript libraries such as jQuery UI. Examples include <input type="date"> vs. datepicker, <input type="range"> vs. slider, <input type="number"> vs. spinner, and <datalist> vs. autocomplete.

The overlapping functionality leaves web developers to choose between native options and JavaScript based widgets. In this talk we’ll discuss the pros and cons of each approach to help you decide which makes sense for your application.

Screenflow recording: http://youtu.be/-E3q4FOHw0s


Tags: jquery, html5, javascript

Download Presentation (External Link)

Cloud

Presentations

Steven Pousty

Steven Pousty


Track: Cloud
Skill Level: Beginner
Slot: 2/24, 2:30 PM
Room: Room 102

Deploy and develop your application in a PaaS - 0 to awesome in 3 minutes

In this session, we give an introduction to Platform as a Service (aka awesome-sauce for developers) with OpenShift as an example. You will get a chance to see why PaaS is one of the most important trends to affect the application development process. After a few slides on PaaS, we will spend the rest of the time working with code! First we will bring up Tomcat 7 and MySQL with one command. Then you to get your own JEE6 with JBoss EAP code up and running. We will show you how easy it is to bring in dependencies and deploy your code. We will also demonstrate how to connect your code to a MongoDB back-end data store. We will also have you merge in some of the Github quickstarts we have assembled - including JEE6 with Mongo Spatial. There are two goals of this session:

1) To leave knowing why you should start using a PaaS for your development work
2) Leave with first hand knowledge on how to run your Java code in the cloud for free!


Tags: mysql, paas, javaee, devops, cloud, mongodb

Download Presentation (External Link)

Baruch Sadogursky

Baruch Sadogursky


Track: Cloud
Skill Level: Intermediate
Slot: 2/25, 10:30 AM
Room: Room 102

How we took our server-side application to the Cloud and liked what we got

Taking traditional Java server-side applications to the multi-tenant Cloud introduces lots of challenges.

In this session, we will share our experience of creating a SaaS offering, which is currently being used successfully by the Java community. We will start by reviewing the challenges we faced during the SaaS conversion. Next, we will share our experience with the EC2 platform. We will discuss the importance of automation and how we use tools like Chef and Puppet for SaaS provisioning. Finally, we will describe how creating a SaaS version of our product shifted our way of thinking about software release. We will recommend what’s required to successfully release both SaaS and downloadable versions of your product.


Tags: ec2, puppet, saas, cloud, java, chef

Download Presentation (External Link)


Audio Recording (MP3)

Tom Elrod

Tom Elrod


Track: Cloud
Skill Level: Beginner
Slot: 2/25, 4:00 PM
Room: Room 102

Amazon Web Services - going from development to production

This presentation will cover many of the services offered within Amazon Web Services and how to use them effectively to go from initial development environment to QA and then to production. Services will be created live during the presentation to demonstrate deployment of a typical web application. Topics such as sizing, security, scaling and cost savings will also be covered.

Specific Amazon Web Services to be discussed:

  • EC2 (Instances, AMIs, Security Groups, Elastic IPs, Load Balancers)
  • RDS
  • S3
  • CloudFront
  • Route 53
  • CloudFormation

Tags: aws, ec2, cloud, security

Download Presentation (External Link)

Roy Russo

Roy Russo


Track: Cloud
Skill Level: Intermediate
Slot: 2/25, 2:30 PM
Room: Room 102

Introduction to ElasticSearch Clusters

This presentation will cover ElasticSearch general concepts, and the configuration and deployment of this fault-tolerant indexing and search system. The presentation will focus on optimization techniques and deployment best-practices in running high-performing ElasticSearch cluster. Some of the topics covered will focus on optimizing indices, organizing data, analyzing data, retrieving data efficiently, and avoiding failure and performance degradation in a running cluster.


Tags: elasticsearch, clustering, search, cloud, java

Download Presentation (External Link)

Jack Coleman

Jack Coleman


Track: Cloud
Skill Level: Intermediate
Slot: 2/24, 5:30 PM
Room: Room 102

It’s a Cloud Party - BYOD (Bring Your Own Data)

Cloud computing is driving a new wave of innovation in the area of big data. All types of organizations are continuously looking at ways to improve efficiency of their infrastructure and at the same time manage IT costs effectively. The cloud is paving the way by helping companies with this challenge and by bringing innovation to market. Developers now have access to big data tools in the cloud which can give them the scale they need to either test a new idea or run a large project more cost effectively - and more quickly.
In this session, we will walk through a real world application where the open source HPCC Systems platform can be launched with three different cloud providers (AWS, HP Public Cloud, or Rackspace) to make Big Data Analytics easier for developers. The Big Data platform can be launched and configured with the click of a button through their Instant Cloud solution built with jclouds. Apache jclouds is an open source library that helps you get started in the cloud and utilizes your Java development skills. The jclouds API gives you the freedom to use portable abstractions or cloud-specific features.
HPCC Systems provides a single platform that is easy to install, manage, and code. Designed by data scientists, HPCC Systems is a data intensive supercomputer that has evolved for more than a decade. It was built for enterprise customers who needed to process large volumes of data in a 24/7 environment.
Attendees will be shown how to create their own high performance computing cluster and/or query cluster with several different cloud providers using the HPCC Systems platform. Attendees will also be introduced to several production applications of the platform that include near real-time data ingestion, data fabrication, and machine learning. Taking advantage of HPCC Systems in the cloud provides a powerful combination designed to make data-intensive computing and massively concurrent queries more manageable.


Tags: jclouds, big data, openstack, cloud storage, cloud, rackspace cloud, data intensive computing, amazon web services, cloud security, public data, machine learning, compute provisioning, hp public cloud

Download Presentation (External Link)


Audio Recording (MP3)

Baruch Sadogursky

Baruch Sadogursky


Track: Cloud
Skill Level: Advanced
Slot: 2/24, 1:00 PM
Room: Room 102

Building a Massively Scalable Cloud Service from the Ground Up

Serving binaries for developers is not a trivial task. As opposed to software downloaded by end users, developer binaries are mostly consumed by software tools. As such, these binaries are exposed to massive request load, similar to a coordinated DDoS attack in the case of popular binaries.
Add to that the need to manage metadata support for pricy REST queries; controlling storage quotas; collecting stats; calculating common repository indexes on demand; and across the globe distribution, and look, you’ve got yourself a pretty complicated system to run and manage.

This talk will show you how Bintray, JFrog’s social binary distribution service, works, to allow any developer to serve and consume OSS binaries. We will speak about:

  • how the system is segmented to support massive loads across data centers with full redundancy and stateless vertical scaling;
  • how Grails applications can scale and how we tie up different NoSQL technologies such as CouchDB, MongoDB, ElasticSearch and Redis;
  • We’ll also see how Java technologies, such as Grizzly and Jersey can provide a lightweight alternatives to traditional web technologies;
  • and demonstrate how no-interruption deployments are done to provide continuous distribution of binaries to developers worldwide.

Tags: elasticsearch, cloud, jersey, mongodb, redis, spring, grizzly, architecture, couchdb, java, grails, nosql, groovy

Download Presentation (External Link)


Audio Recording (MP3)

Matt Ammerman

Matt Ammerman


Track: Cloud
Skill Level: Intermediate
Slot: 2/24, 4:00 PM
Room: Room 102

Essential Hybrid Cloud: The Future of Application Development

Just as many folks (and companies) are finally realizing the amazing potential of building and delivering services in the cloud, the idea of hybrid cloud appears. What is hybrid cloud? What are the reasons, technical and otherwise, that hybrid cloud exists? What types of apps run on a hybrid cloud? We’ll take a look at a hybrid cloud setup and deploy web apps and mobile backend services across datacenters around the country in a matter of minutes.


Tags: cloud
Les Hazlewood

Les Hazlewood


Track: Cloud
Skill Level: Intermediate
Slot: 2/25, 1:00 PM
Room: Room 102

Designing a Beautiful REST+JSON API

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 built with Java technologies. 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

Tags: json, rest, security

Audio Recording (MP3)

Ken Sipe

Ken Sipe


Track: Cloud
Skill Level: Intermediate
Slot: 2/24, 10:30 AM
Room: Room 102

Cloud Molecules

The term cloud can be nebulous, this session will define and describe the core services that mature cloud service provider is expected to provided, such as scaling, load balancing, search and storage. In addition to comparing the different cloud options OSS options will be discussed and demonstrated. This brief introduction will be informative and necessary for the core of the presentation, which is looking at the building of the cloud and a glimpse into the future of cloud.

Working in a Cloud R&D center has provided an opportunity to understand the lower bits of the Cloud and where technology is going in order to optimized hardware resources and prioritize services. This session will discuss and demonstrate the future of the cloud leveraging lessons learned by Google, Twitter and other industry leaders. We willl the issues and failures of current virtualization technologies and explore the future of the cloud with demonstrations that include Mesos, Docker, Nerve and Synapse.


Audio Recording (MP3)

Web

Presentations

Aaron Bedra

Aaron Bedra


Track: Web
Skill Level: Intermediate
Slot: 2/25, 4:00 PM
Room: Room 103

Web Security Audits: A Comprehensive Guide

Do you have an application out in the wild? The bad news is that it’s being constantly bombarded by robots, script kiddies, and potentially even skilled attackers every day. How do you know you are doing the right things to keep your business and your customers safe?

Follow along with Aaron Bedra as he breaks down the common components of a security audit and learn how you can do these things on your own to help give you the edge over attackers and feel more confident in your applications.


Tags: web application security, web, security

Audio Recording (MP3)

Chris Richardson

Chris Richardson


Track: Web
Skill Level: Intermediate
Slot: 2/25, 10:30 AM
Room: Room 103

Futures and Rx Observables: powerful abstractions for consuming web services asynchronously

A modular, polyglot architecture has many advantages but it also adds complexity since each incoming request typically fans out to multiple distributed services. For example, in an online store application the information on a product details page - description, price, recommendations, etc - comes from numerous services. To minimize response time and improve scalability, these services must be invoked concurrently. However, traditional concurrency mechanisms are low-level, painful to use and error-prone.

In this talk you will learn about some powerful yet easy to use abstractions for consuming web services asynchronously. We will compare the various implementations of futures that are available on the JVM. You will learn how to access web services using reactive observables (RxJava), which are asynchronous data streams. We will describe how these mechanisms let you write asynchronous code in a very straightforward, declarative fashion.


Tags: javascript, architecture, web, rxjava

Download Presentation (External Link)


Audio Recording (MP3)

Joonas Lehtinen

Joonas Lehtinen


Track: Web
Skill Level: Intermediate
Slot: 2/25, 2:30 PM
Room: Room 103

What is new in Vaadin 7.2

Just released Vaadin 7.2 is the latest edition of the popular web framework that makes it possible to write HTML5 apps in Java. In this presentation we discuss three features in detail: Hybrid grid, parametrized themes and transparent server push already introduced in earlier Vaadin 7.1.

Fully redesigned data grid component works both on the server-side as well as on the client-side using GWT. The goal has been to bring in the best data-grid component in any web framework and make it highly customizable. It supports everything between lazy loading, hierarchies, customizable data source cache strategies and lightweight cell rendering. Design and application possibilities are discussed in detail.

Newly introduced parametrized theme allows one to build look and feels from Metro to Eclipse in one SASS based theme. Use of theme as a basis for your own applications is demonstrated and examples for what can be achieved are looked into.

Vaadin 7.1 introduced automated server-push that would allow use of websockets and http streaming just by adding one @Push annotation. This is demonstrated and built in RPC and state synchronization communications are discussed.

It is assumed that you know something about Vaadin before the session. Diving into the latest big features in Vaadin allows one to learn about the direction of developing web apps in Java.


Download Presentation (External Link)


Audio Recording (MP3)

Craig Walls

Craig Walls


Track: Web
Skill Level: Beginner
Slot: 2/24, 5:30 PM
Room: Room 103

Spring Boot: More Spring, Less Configuration

Spring offers a number of configuration options: XML configuration, Java configuration, and Groovy configuration to name a few. To some degree, component-scanning and autowiring help eliminate some explicit configuration. But in general most Spring applications require some essential “bootstrap” configuration to enable key functionality. What’s the right way to build Spring applications when there are so many choices?

What if I told you that configuration was optional?

Spring Boot is an exciting new project that makes it extremely easy to create stand-alone, production-ready Spring applications. Spring Boot takes an opinionated approach to configuring Spring, making it possible to create Spring applications with little or, in some cases, no Spring configuration at all!

In this session, we’ll see how to build real Spring applications using Spring Boot. We’ll also look under the covers to see what makes Spring Boot tick and see how to create plugins for Spring Boot to extend its magic.


Tags: spring, spring boot, java

Download Presentation (External Link)


Audio Recording (MP3)

Burr Sutter

Burr Sutter


Track: Web
Skill Level: Beginner
Slot: 2/24, 10:30 AM
Room: Room 103

Introducing Vert.x 2.0 - Taking Polyglot Application Development to the Next Level

Vert.x is a lightweight, high performance, application platform for the JVM that’s designed for modern mobile, web, and enterprise applications.

The recent Vert.x 2.0 release marks a coming of age for Vert.x, as it progresses to a fully independent project.

We’ll dive into the Vert.x 2.0 release and show how the powerful new module system enables a Vert.x ecosystem by allowing modules to be re-used via Maven and Bintray repositories.

You’ll also learn about how better build tool and IDE integration makes developing applications with Vert.x a breeze.

You’ll also learn about the up and coming Scala, Clojure support, and Node.js drop in compatibility which will take Vert.x to an even broader set of users.


Download Presentation (External Link)


Audio Recording (MP3)

Joonas Lehtinen

Joonas Lehtinen


Track: Web
Skill Level: Beginner
Slot: 2/24, 2:30 PM
Room: Room 103

Introduction to Vaadin

Vaadin is a popular web framework that makes it possible to write rich user interfaces in server-side Java. Writing an application that lazily loads large amounts of data from the server, includes drag-and-drop, keyboard navigation and compelling visualizations would not require writing any HTML, JavaScript or resigning a REST API. While the server centric development model provides the best productivity, Vaadin also supports client-side development though the GWT based Java to JavaScript compiler as well as JavaScript. The default looks of the application can be customized with CSS and SASS.

The presentation gives an overview to Vaadin and explain how it works. We’ll also discuss on what are the latest new features of Vaadin and how the roadmap looks. The session should give you everything you need to get started building your own apps with the free Apache-licensed Vaadin.


Download Presentation (External Link)


Audio Recording (MP3)

Aaron Bedra

Aaron Bedra


Track: Web
Skill Level: Intermediate
Slot: 2/24, 4:00 PM
Room: Room 103

Repsheet: A Behavior Based Approach to Web Application Security

The world of information security is changing in dramatic ways. In order to keep up with the demands of users and drive innovation, we have to start taking new approaches to securing our web applications. This means enabling increased security while decreasing friction for known good users. In order to make this happen it requires dynamic security controls. It means deriving intent through behavior. This approach not only makes for a more enjoyable experience for good users, it helps spot attacks in progress and trend developing threats such as botnets and DDoS attacks.

Join Aaron Bedra as he walks you through asking the questions you should be asking of your users activity, and how to help prevent abuse, fraud, and otherwise unwanted activity on your web applications while decreasing friction for good users. You will learn how to ask the right questions without interfering with a great user experience.


Tags: web application security, security

Audio Recording (MP3)

Edward Burns

Edward Burns


Track: Web
Skill Level: Beginner
Slot: 2/25, 1:00 PM
Room: Room 103

A New Approach to the UI for Distributed Applications

User interface technology is the most volatile portion of the enterprise
software stack. This one hour session begins with a sweeping overview
of the history of the UI for distributed applications to support that
assertion. There is a clear pendulum that has swung back and forth from
client to server in the 50 years since the first graphical interface for
a distributed application appeared.

The sea change in HTML 5 is likely to shift the pendulum away from
today’s thin-client based server-side web frameworks like Struts 2 and
JSF to JavaScript powered next generation rich clients. With strong
support for REST, WebSocket and JSON, Java EE is well positioned to
adapt to this change.

In this code driven session, we will show you how you can utilize
today’s most popular JavaScript rich client technologies like AngularJS,
Backbone, Knockout and JQuery to utilize the core strengths of Java EE
using JAX-RS, JSR 356/WebSocket, JSON-P, CDI and Bean Validation. We
will also touch on Oracle’s own JavaScript rich client solution code
named project Avatar.


Download Presentation (External Link)


Audio Recording (MP3)

Josh Long

Josh Long


Track: Web
Skill Level: Intermediate
Slot: 2/24, 1:00 PM
Room: Room 103

Building REST Services with Spring

No application is an island. Today’s applications are composed of micro-services. In this talk, Josh Long introduces how to build OAuth-secured, HATEOAS-compliant, REST-powered micro-services with Spring quickly and easily and then demonstrates how to use that service from a JVM/Android client.

This talk introduces Spring MVC’s REST support, introduces Spring HATEOAS, introduces Spring Security OAuth and then demonstrates how to build a Spring Social powered client that can be used in coordination with Spring for Android.

It is based on my webinar on the same subject which has garnered around 16,000 views


Tags: spring, javaee, rest, java, hateoas, security

Download Presentation (External Link)


Audio Recording (MP3)

Alternative Languages

Presentations

Josh Suereth

Josh Suereth


Track: Alternative Languages
Skill Level: Intermediate
Slot: 2/24, 5:30 PM
Room: Room 104

Coding in Style: How to wield Scala in the trenches

Scala is an expressive language, but can be hard to grasp when coming from imperative languages. The key is understanding what expression is in Scala, and how to adapt code to be more expressive. This talk covers the ‘zen’ of Scala development, as well as some fundamental approaches to functional programming.

In this talk are a series of examples in Java. First, we’ll start translating the Java to leverage more Functional Programming concepts. Then, we’ll step into Scala and watch the boilerplate melt away.

In particular, the topics covered are:

  • Expression oriented programming, the basics of FP
  • Simplicity in Design
  • Abstracting behaviors
  • How Functional and OO programming blend
  • Asynchronous programming with Futures and Promises
  • Removing edges in libraries with implicit classes and value classes
  • Tracking lexical state with implicit values.

Tags: functional programming, scala, best practices, promises

Download Presentation (External Link)


Audio Recording (MP3)

Ted Neward

Ted Neward


Track: Alternative Languages
Skill Level: Beginner
Slot: 2/24, 10:30 AM
Room: Room 104

Why Functional Languages Matter

In the latter half of the 2000s, a new kind of programming language seemed poised to take the steam out of the dominance of object-oriented programming languages and their hold over “mainstream” development. But these new languages, collectively referred to as “functional” languages, were nothing new. In fact, they’ve been a part of the language landscape since the late 80s, and arguably even longer than that. What makes a functional language, and what makes a functional language interesting? Most importantly, why do we care now, thirty years after their introduction?


Tags: jvm, functional languages

Download Presentation (External Link)

Jack Singleton

Jack Singleton


Track: Alternative Languages
Skill Level: Intermediate
Slot: 2/25, 10:30 AM
Room: Room 104

Scala: The Good Parts

Scala started off as an experiment, and has its roots in academia - but it is more and more moving into the industry as a powerful, productive language. This talk will focus on the benefits that Scala can bring to people who have deadlines.

Quickly moving past the early adopter phase, startups and Fortune 500 companies alike are beginning to come on board. We will go over the language features that improve the readability and maintainability of a codebase - without raising the barrier of entry. Because with Options, Immutability, and an awesome Collections Library, you don’t need a PHD to be productive with Scala.


Tags: scala, jvm, functional languages

Download Presentation (External Link)


Audio Recording (MP3)

Glen Peterson

Glen Peterson


Track: Alternative Languages
Skill Level: Intermediate
Slot: 2/25, 4:00 PM
Room: Room 104

Refactoring in Java, Scala, and Clojure

The Expression Problem provides a great test case for comparing Java, Scala, and Clojure. If you change an interface in Java, you have to update all implementations to reflect that change. See how traits are used to minimize these changes in Scala and how Clojure sidesteps a good portion of these issues (at the expense of run-time safety). Broaden your view of programming by seeing these three popular languages compared side-by-side against a long-standing problem (Further Details)


Tags: scala, alternative languages, clojure, java

Download Presentation (External Link)


Audio Recording (MP3)

Stuart Sierra

Stuart Sierra


Track: Alternative Languages
Skill Level: Intermediate
Slot: 2/25, 1:00 PM
Room: Room 104

Clojure in the Large

Having an expressive programming language like Clojure comes with a price: it’s not always clear how programs should be structured. Without classes in the traditional OOP sense, what are the fundamental building blocks of an application? How do we divide up our source files? Where do different kinds of state and behavior “belong”? These problems become more acute as programs grow larger and more complex.

This talk assumes some basic knowledge of Clojure, and will present patterns for building large Clojure applications out of modular components. Topics include:

  • Protocols and records
  • Dependency injection
  • Managing startup / shutdown of components
  • When (not) to use dynamic binding
  • Interactive development workflow
  • Testing and mocking

Tags: alternative languages, clojure, functional languages

Download Presentation (External Link)

Ken Sipe

Ken Sipe


Track: Alternative Languages
Skill Level: Intermediate
Slot: 2/25, 2:30 PM
Room: Room 104

Spock

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. This is a workshop which requires a laptop that includes Java and an editor which includes the ability to run JUnit tests.


Tags: testing, junit, spock, groovy

Audio Recording (MP3)

Venkat Subramaniam

Venkat Subramaniam


Track: Alternative Languages
Skill Level: Intermediate
Slot: 2/24, 4:00 PM
Room: Room 104

Design Patterns in Groovy

When I got into Java I had a Wow, look how easy it is to implement these patterns moment. When I got into Groovy, I had the same reaction, but only better. The dynamic nature of Groovy makes it easier to implement some common patterns. What is better, there are some patterns that you can exploit in Groovy that are not so easy in Java. In this section, you will learn how to implement some traditional patterns in Groovy, and also other patterns you are simply not used to in Java. This presentation will go far beyond the Gang-of-four (GOF) patterns. You will learn how to implement some GOF patterns, but also some patterns that will allow you to exploit dynamic nature of Groovy and the elegance of Groovy closures.


Tags: alternative languages, design patterns, groovy
Stuart Sierra

Stuart Sierra


Track: Alternative Languages
Skill Level: Beginner
Slot: 2/24, 2:30 PM
Room: Room 104

Intro to Clojure

Clojure is a new dynamic language targeting the JVM, the .NET CLR, and JavaScript. Clojure builds on the long history of Lisp-based languages while embracing modern platforms and pragmatic design.

This talk is an introduction to Clojure and its core concepts: immutable values, functional programming, code as data, software transactional memory, generic data structures, and protocols.


Tags: jvm, alternative languages, clojure, functional languages

Download Presentation (External Link)

Venkat Subramaniam

Venkat Subramaniam


Track: Alternative Languages
Skill Level: Intermediate
Slot: 2/24, 1:00 PM
Room: Room 104

Transforming to Groovy

In this highly interactive, zero powerpoint, presentation we will take several Java code and transform/refactor into Groovy code. Along the way you will come to learn and appreciate Groovy idioms, its expressive libraries, and elegance.


Tags: alternative languages, groovy

UX + Git + DevOps

Presentations

Sven Peters

Sven Peters


Track: UX + Git + DevOps
Skill Level: Intermediate
Slot: 2/25, 4:00 PM
Room: Room 105

Git with T for team

Git is not just a version control system. Git can change the way you interact with your team members. Lot’s of teams don’t think about reflecting their development workflow in Git and just use it out-of-the-box. Git, however, can be much more powerful, giving your team a boost in productivity, protecting your delivery pipeline and helping you to work better together.
In this session we will start with a central workflow that is used by a lot of Subversion teams. You will learn how to practically integrate ALM solutions like continuous deployment, code reviews, change tracking and much more into your individual workflow. You will find out how to protect your master branch from accidental commits, broken builds and unreviewed code. This presentation will help you discover the best way to work together as a team - whether you’re yet to migrate to Git or even an experienced Git user.


Tags: version control, git, developer productivity

Download Presentation (External Link)

Venkat Subramaniam

Venkat Subramaniam


Track: UX + Git + DevOps
Skill Level: Beginner
Slot: 2/24, 2:30 PM
Room: Room 105

Towards a Humane Interface-Aesthetics and Usability

A successful application has to focus on three dimensions-value (business), design (engineering) and usability. Usability is not only about the wow factor. It is about making the application easier and intuitive to use. In this presentation we will learn the fundamentals of creating a usable application. We will look at some basic dos and dont. These will help you move forward from being a programmer to a good application developer.


Tags: usability, ux

Download Presentation (External Link)

Peter Bell

Peter Bell


Track: UX + Git + DevOps
Skill Level: Intermediate
Slot: 2/25, 10:30 AM
Room: Room 105

Practical GitHub Collaboration Workflows

Learn how to use pull requests to create conversations, how and when to fork a repo, how to use feature branches effectively and best practices for using tags and branches for managing your releases. This session will look at the GitHub flow, showing best practices for lightweight collaboration and code review processes and will include tips and tricks for managing the issues that sometimes arise such as hot fixing feature branches and being able to rebase your pull requests.


Tags: version control, git, developer productivity

Download Presentation (External Link)

Bryan Robinson

Bryan Robinson


Track: UX + Git + DevOps
Skill Level: Beginner
Slot: 2/25, 2:30 PM
Room: Room 105

Guerrilla Usability, or How I Learned to Stop Worrying and Love UX

A talk about the grand importance of user testing and research and how anyone can perform these tasks with no UX staff or budget. Topics covered include doing in-person testing with little or no budget, performing remote usability tests and a brief overview of what it means to perform usability tasks.


Tags: user research, ux, user experience

Download Presentation (External Link)


Audio Recording (MP3)

Jevgeni Kabanov

Jevgeni Kabanov


Track: UX + Git + DevOps
Skill Level: Intermediate
Slot: 2/24, 4:00 PM
Room: Room 105

Data-Driven Software Engineering

Did you know that only about 60% of releases are delivered on time and only half of those are without critical bugs? Delivering quality software on time is an enormous challenge due to all the inherent complexities. There are multiple practices, tools and methodologies that promise improvement, but do they deliver?

It is time to stop basing our decisions on anecdotes. We need a simple and solid model of software delivery and a measurement system that allows to test their validity. We started such a model and surveyed a 1000 organisations against it. We will show you quantified results on the improvements you can expect with particular tools and practices as well as discuss the model itself and how it can be applied in your environment.

You will walk out with a quantified data on how to answer questions like “Should we use pair programming?”, “How much automated tests is enough?” and "What can we do to improve?


Tags: data-driven, software engineering, agile

Audio Recording (MP3)

Dustin Whittle

Dustin Whittle


Track: UX + Git + DevOps
Skill Level: Intermediate
Slot: 2/24, 10:30 AM
Room: Room 105

The DevOps Pay Raise: Quantifying Your Value to Move Up the Ladder

DevOps, when done right, usually goes unnoticed. It’s only when something breaks that all eyes turn to IT. If your boss only sees you when the app is down, however, that’s not really doing your career any favors. In this session we’ll talk about how to prove your value to the organization by looking at the positive side – that is, how much money you’ve saved your company. We’ll take a look at how you can use tools like Chef, Puppet, Sensu and Logstash to quantify your value to your company. After this session, you’ll be able to walk into a meeting with your boss ready to talk about your value to the company (and to ask for a raise).


Tags: sensu, puppet, devops, chef, logstash

Download Presentation (External Link)


Audio Recording (MP3)

Peter Bell

Peter Bell


Track: UX + Git + DevOps
Skill Level: Intermediate
Slot: 2/24, 1:00 PM
Room: Room 105

How to Undo Anything Effortlessly With Git

Learn how and when to use amend, reset, revert, the dreaded reflog and how to rebase interactively to rewrite history as if you never make a mistake.


Tags: version control, git, developer productivity

Download Presentation (External Link)

Burk Hufnagel

Burk Hufnagel


Track: UX + Git + DevOps
Skill Level: Beginner
Slot: 2/25, 1:00 PM
Room: Room 105

UI, UX, Users, and You: A Developer's Guide to User Interface and User Experience Design for Your Users

In this session you will learn the difference between User Interface and User Experience, see why some folks think that ‘user’ is a dirty word, and understand why all of the above is important to you.

You will also discover how to design a good UI, learn more about UX than is healthy, and realize that your software has more types of uses than you knew existed.

All in all, not a bad way to spend seventy five minutes…


Tags: ui, ux, design

Download Presentation (External Link)


Audio Recording (MP3)

Arthur Hicken

Arthur Hicken


Track: UX + Git + DevOps
Skill Level: Beginner
Slot: 2/24, 5:30 PM
Room: Room 105

Service Virtualization: Expanding the Breadth and Scope of Security Testing

With service virtualization, it is simple to have dependencies emulate different security scenarios that would otherwise be difficult to configure and unfeasible to test against. For instance, with SSL, you could configure acceptable and unacceptable certificates. Or, you could emulate various behaviors related to authorization, authentication, and access controls. You could also configure the dependent system to deliver malicious payloads. This provides very granular control over the security behavior of the dependencies in your environment. Your standard functional test scenarios can then be run against these different environment configurations.

While standard penetration testing simulates attacks through an API in a non-stateful manner, service virtualization lets you emulate attacks at various levels of the system and at different points within a stateful process (e.g., at different points in a logical use case or workflow). This not only broadens your test coverage, but can also expose security vulnerabilities that are manifested only a certain set of environment conditions—and that would not be apparent with non-stateful penetration testing.

Moreover, service virtualization enables you to apply testing and validation at multiple depths and levels. By applying validations and assertions to the messages from your AUT, you can isolate and zero in on specific components. You could validate a service’s response for any indication that its security controls are not working properly (or that additional ones should be implemented). For example, you can determine how the exact element you’re testing handles an attempted attack such as an SQL injection. With this direct validation, you gain significantly more visibility into the behavior of a particular component than you can obtain via the output of the larger integrated system.

Using service virtualization for security testing in this way offers the following key benefits:

• It lets you derive more value from your existing functional test scenarios (since you can run them vs. dependencies exhibiting different security behavior).
• It enables extensive security testing to be performed without a security expert. Existing test scenarios can be easily executed against a broad set of preconfigured security scenarios.
• It lets you isolate and zero in on the security behavior of the specific components you’re interested in.


Tags: service virtualization, security testing

Audio Recording (MP3)

Workshop

Presentations

Summers Pittman

Summers Pittman


Track: Workshop
Skill Level: Intermediate
Slot: 2/24, 10:30 AM
Room: Room 113

Let's Build a Modern Android Application

This workshop will walk the developer through setting up and building a modern Android application using the AeroGear libraries to interact with a remote server hosted on OpenShift. Participants will create a application which uses boring things like RESTful APIs and local storage as well more fun technologies like Cloud Messaging, data synchronization, and several Android APIs for making a very nice looking application.

Developers will need to bring laptops running Android Studio and should have a basic familiarity with Android. Much of the UI code will be provided, and developers will work to implement the “fun” bits.


Tags: messaging, javaee, openshift, rest, android, cloud, mobile, aerogear

Download Presentation (External Link)

Glenn Renfro

Glenn Renfro


Track: Workshop
Skill Level: Beginner
Slot: 2/25, 2:30 PM
Room: Room 113

Spring Integration Done Boot-ifully

How do your applications support for eventing, messaging, and scheduling? We will work together to create a Spring Boot application that will use Spring Integration to poll the USGS Rest Web Services to retrieve sensor data. We will also create a MQTT Listener that can retrieve sensor data from a simulated device. From this workshop you can see how to use Boot and Integration and take advantage of them for your own projects as soon as you return to the office.


Tags: messaging, spring, spring integration, spring boot, mqtt, integration patterns

Download Presentation (External Link)


Audio Recording (MP3)

Brian Rinaldi

Brian Rinaldi


Track: Workshop
Skill Level: Beginner
Slot: 2/25, 10:30 AM
Room: Room 113

Getting Started with Responsive Web Design

In this workshop Brian will walk through the basics of responsive web design including fluid sizing, fluid grids and media queries. He’ll then demonstrate how to build a responsive layout using Adobe’s new tool, Edge Reflow, and participants will see how Reflow can be used to take a mobile-first approach to responsive design. Finally, he will examine some approaches to how to utilize the design generated by Reflow within a workflow.


Tags: responsive design, html5, ui

Download Presentation (External Link)


Audio Recording (MP3)

Danilo Sato

Danilo Sato


Track: Workshop
Skill Level: Intermediate
Slot: 2/24, 2:30 PM
Room: Room 113

Refactoring Strategies: Beyond the Basics

Refactoring is a fundamental practice for an agile developer. Each refactoring is a small and isolated activity, but the value comes when you perform a sequence of refactorings to effect larger changes. This workshop will guide participants through hands-on exercises designed to teach three essential skills to become good at refactoring:

  1. Identifying what needs refactoring: what makes code smell, confusing, or complex?
  2. Identifying the end goal: what are the design options and which one will yield the best results?
  3. Tracing a strategy to get the code from 1 to 2.

For the workshop, developers should bring their laptop with a basic working Java environment (JDK 1.6+, Eclipse or IntelliJ), have some knowledge about automated testing (JUnit) and refactorings, and optionally spend some time getting familiar with the code base we will use in the workshop here.

This workshop has been presented at Agile Brazil 2013, as well as internally at ThoughtWorks.

The workshop is co-presented with Mariana Bravo.


Tags: refactoring, unit testing, java, agile

Download Presentation (External Link)


Audio Recording (MP3)

Keynotes

Presentations

Jamie Turner

Jamie Turner


Track: Keynotes
Skill Level: Intermediate
Slot: 2/25, 9:15 AM
Room: Hall A

How to Use Secrets of Consumer Behavior to Get People to Download Your Mobile App

Apps come in many forms – as games, as e-commerce platforms, as educational tools and many other varieties. But the foundation for any app is to understand how consumers engage with apps and the companies that create them.

Join Jamie Turner, founder of 60SecondMarketer.com and co-author of “Go Mobile,” as he takes you on an interesting and engaging exploration of how humans connect with businesses via apps and what makes some apps succeed while others fail.

Jamie has been profiled in the world’s best-selling marketing textbook and is a regular guest on CNN on the topics of social media and mobile marketing. His newest book was a #1 best-selling mobile marketing book in the U.S. and is available in 5 languages.

If you’re looking for information and insights on how to make your app a success, you won’t want to miss Jamie’s presentation called “How to Use Secrets of Consumer Behavior to Get People to Download Your Mobile App.”


Tags: consumer behavior, mobile, marketing

Download Presentation (External Link)


Audio Recording (MP3)

Sven Peters

Sven Peters


Track: Keynotes
Skill Level: Intermediate
Slot: 2/24, 9:15 AM
Room: Hall A

How To Do Kick-Ass Software Development

With Kick-Ass Software Development you actually get stuff done. Feedback cycles are short, code quality is awesome and customers get the features they lust after. Less mangers managing, less testers testing and less IT-operators operating. The developers take the power back, making them much happier. Sound like paradise? It is!
This session will show you how we do Kick-Ass Software Development at Atlassian. I will talk about how we: use pull requests for better code quality; collaborate fast to develop ideas; avoid meetings to get more stuff done; tighten our feedback loops to fail faster; shorten our release cycles; and work together happily on different continents. It’s a great way to develop software and we think it can work in your company, too.


Download Presentation (External Link)

Questions? Contact us at info@ajug.org