Session Descriptions
Dan Allen - Principal Software Engineer at Red Hat, Author and Open Source Advocate
7 Reasons to ♥ JBoss AS 7
Fast, fast, fast. Blazing fast! No doubt, that's the main reason to love JBoss AS 7. This talk dispells a long-standing misconception that Java EE application servers are inherently slow. With JBoss AS 7, you get to keep more memory for your applications AND you experience a 10-fold reduction in startup time over previous revisions.
The Future of Java Enterprise Testing
This talk unveils the missing link in enterprise Java development: simple, portable integration tests. While development life is simple with unit tests and mocks, they only take you so far.
Arquillian, a container-oriented testing framework layered atop TestNG and JUnit, tears down this barrier. It brings your test to the runtime rather than requiring you to manage the runtime from your test. That means you can test real components that rely on real enterprise services in a real runtime.
Andres Almiray - Griffon Project Lead
Painless Desktop Application Development: The Griffon Experience
Despite of all the buzz and hype around webapps over the last 8 years fact is that desktop applications are still found in many places, specially in the enterprise. However the legends are true: building desktop applications is a hard job. But it does not have to be. Enter Griffon.
Griffon aims to bring back the fun and productivity to desktop application development in the same way Grails did it (and continues to do so) on the web. Griffon is rooted in the JVM but has Grails in its DNA. This means you'll find yourself right at home if you're a Java veteran, same goes for all of you that made the jump to Grails.
The Groovy Ecosystem
Groovy is the fastest growing JVM language out there. It might be because it is so easy for Java developers to pick it up, but also because there's an increasing number of projects and libraries that make use of Groovy as the starting point.
Alex Antonov - Principal Engineer on the Technical Initiatives team at Orbitz Worldwide
Application Configuration using REST & Protocol Buffers
The presentation will cover different types of application configuration, their lifecycle and management. The audience will learn about approaches on how to separate the configuration API from consumption and provisioning. The benefits that can be achieved from a well defined API providing ease of development, nice IDE support, type handling and true data objects, while maintaining the flexibility of being able to retrieve configuration from different sources and in different formats. They will learn about supporting different data stores, such as CouchDB, flat files, remote services and file repositories, as well as supporting different file formats like XML, JSON, Protobuf binary, etc.
Architectural Choices around Open Source Solutions
The audience will be presented with a number of open source technologies that would enable building different layers of a multi-tier system.
Peter Bell - Evangelist/hacker for hackNY
How to Select and Adopt a Technology
What's the point attending a conference unless you do something with the knowledge you gain? In this session we look at practical strategies for selecting new technologies and proven approaches for driving adoption back at the office.
Prerequisite: Frustration that you don't get to use all the cool technologies you learn about at No Fluff.
Requirements and Estimating - state of the art
A chance for experience agile developers to learn and share state of the art tips for improving requirements gathering and project estimation.
Prerequisite: Experience working on agile projects
Software Craftsmanship: Positioning, Patterns and Practices
None of us want to think of ourselves as "cowboy coders", but what does it mean to be a software craftsman, and is it a useful distinction? If so, what are some of the best patterns for honing our craft?
Tim Berglund - GitHubber
Cassandra: Radical NoSQL Scalability
Want to go deep on a popular NoSQL database? Cassandra is a scalable, highly available, column-oriented data store in use at Netflix, Twitter, Reddit, Rackspace, and other web-scale operations. It offers a compelling combination of a rich data model, a robust deployment track record, and a sound architecture, making it a good choice of NoSQL databases to study first.
Prerequisite: None, but NoSQL Smackdown! would be helpful preparation.
Complexity Theory and Software Development
Some systems are too large to be understood entirely by any one human mind. They are composed of a diverse array of individual components capable of interacting with each other and adapting to a changing environment. As systems, they produce behavior that differs in kind from the behavior of their components. Complexity Theory is an emerging discipline that seeks to describe such phenomena previously encountered in biology, sociology, economics, and other disciplines.
Database Refactoring Workshop
Take one ugly legacy schema, a toolbox full of simple database refactorings, and a world-class schema refactoring tool, and you've got 90 minutes of workshop that will equip you to bring a culture of database responsibility to your team.
Prerequisite: Database Refactoring with Liquibase
Database Refactoring with Liquibase
Most teams manage database change using an ad-hoc system of SQL migration scripts manually applied to various development, staging, and production servers. Some even contrive automated processes, but rarely does this surplus build engineering deliver value directly to the customer. We should be writing applications, not build tools.
Decision Making in Software Teams
Alistair Cockburn has described software development as a game in which we choose among three moves: invent, decide, and communicate. Most of our time at No Fluff is spent learning how to be better at inventing. Beyond that, we understand the importance of good communication, and take steps to improve in that capacity. Rarely, however, do we acknowledge the role of decision making in the life of software teams, what can cause it to go wrong, and how to improve it.
Gaelyk Workshop Part I
Once you've been introduced to Gaelyk and the Groovy way it wraps the services the Google App Engine, it's time to write some code. Bring your laptop for a hands-on Gaelyk hack session in which we build a working Gaelyk app utilizing as many of the GAE services as we can pack into a 180 minutes of coding!
Prerequisite: Gaelyk: Lightweight Groovy on the Google App Engine (or a working knowledge of Gaelyk)
Gaelyk: Cloud-Based Apps With Groovy
You love Groovy and you're a believer in cloud computing. For a larger project you might choose Grails and hosting on Amazon EC2, but what if you want to take advantage of the nearly massless deployments of a cloud provider like the Google App Engine? You could make Grails work, but it's not always the best fit. Enter Gaelyk.
NoSQL Smackdown!
You've read that the relational model is old and busted, and there are newer, faster, web-scale ways to store your application's data. You've heard that NoSQL databases are the future! Well, what is all this NoSQL stuff about? Is it time to ditch Oracle, MySQL, and SQL Server in favor of the new guard? To be able to make that call, there's a lot you'll have to learn.
Programming HTML5
HTML5 wants to make some major changes to the way we deliver media over the web and the way we mark up our pages, but it also gives us a bunch of new stuff in the browser's programming model. To ignore these new JavaScript APIs is to give up on a richer browser UI and a lot of fun.
David Bock - Principal Consultant, CodeSherpas Inc.
Building Maintainable Javascript with Coffeescript
CoffeeScript is a little language that compiles into JavaScript. Underneath all of those embarrassing braces and semicolons, JavaScript has always had a gorgeous object model at its heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way.
The golden rule of CoffeeScript is: "It's just JavaScript". The code compiles one-to-one into the equivalent JS, and there is no interpretation at runtime. You can use any existing JavaScript library seamlessly (and vice-versa). The compiled output is readable and pretty-printed, passes through JavaScript Lint without warnings, and runs in every JavaScript implementation.
Building Semantic CSS with Compass and SASS
Compass is a tool that can help you build cleaner, better structured, and less error-prone CSS. Semantic CSS is a technique where your CSS vocabulary describes WHAT things are on your page, rather than WHERE they are. Together, this tool and this concept can radically improve the structure of your html.
Building Workflow Applications with StonePath
Stonepath is a workflow modeling methodology with its roots in a long-running Java project at the U.S. State Department. Starting with techniques for deriving requirements/user stories from your users, user interface patterns, state-and-task based workflow modeling, and some domain modeling ideas, you can build comprehensive 'Enterprise' applications for managing aspects of workflow and group coordination.
Metrics for steering your projects to success
There are a lot of things we can measure about our source code, but what about the "project as a whole" and its overall health? Are there ways of measuring the effectiveness of our processes? Are there things we can measure that would point to project automation wins? Is there a way to measure team 'morale'?
James Carr - Software Craftsman
Behavior Driven Development with Client Side Javascript
Back in 2004 there wasn't much in the world of test driven development for javascript... you just had jsunit. Since then there has been an explosion of frameworks for javascript and it is almost to the point where it is difficult to choose the right one.
NodeJS Bootcamp
You might have heard a bit about nodejs, now it's time to get fully immersed in it and not just learn it in detail but gear up to start becoming an active member of the nodejs development community.
Esther Derby - Co-author of "Behind Closed Doors: Secrets of Great Management"
All Together Now: How Teams Decide
Have you had the experience of watching smart people argue endlessly over which technology to use? Have you walked out of a meeting believing the group had agreed, only to find out that five different people thought they’d agreed to five different things?
People in our industry pride themselves on their brain power and ability to make good decisions. And most of us are good at thinking, learning, and deciding—on our own. When we work collaboratively on interdependent work, though, we need to think and decide as a group if we want to realize the benefits of the team effect.
In this session, we’ll experience a group decision. Then, we’ll look at the pieces and parts of the process to see what we can learn about how groups think and decide togther. We’ll tease out the techniques that will help you help groups take advantage of all their expertise, see other points of view, and arrive at high-quality decisions.
Improving Customer Conversations
It’s not easy to build the right product. People sometimes don’t know exactly what they need, want things that won’t help, and don’t imagine what’s possible. Agile project capture requirements on cards that contain a statement of want and benefit and notes on how to confirm the need is met. The intention isn’t to fully document the requirement on the card, but to make a note and create a reminder for a conversation with the customer. Whether you are using agile methods or traditional requirements, valuable products start with understanding the customers context, their problems, what they want, and how they use a product. However, most people aren’t born with the ability to speak naturally in user stories or fully formed requirements statements. So we must learn how to ask the right questions, draw out pertinent information and understand the customer’s world in those conversations.
Motivation that Doesn't Misfire
Many managers ask me, “How can I motivate my team?” The zeroth step in boosting motivation is to stop doing things that demotivate people. But what is a manager to do after that? Prizes, treats, rewards, pep talks, and recognition events don’t cut it. Why? Many of the common attempts to improve motivation rely on an external source of motivation. That assumes that people need a carrot (or a stick) to keep them going. Research shows a contrary conclusion—that intrinsic motivation has more sustaining power.
Questionable Questions
Questions are powerful.
Presidential historians believe that the questions presidents ask and the way they ask those questions have huge ramifications. Questions asked and not asked influence policy initiatives, invasions, and trips to the moon.
Likewise, success or failure hangs on the questions managers and technical people ask when planning releases, making decisions, considering strategy alternatives or looking for improvements. Yet we don’t often stop to consider the questions we ask. Every question contains assumptions and while the question opens one avenue of inquiry, it closes others. In this session, we’ll consider the questions we do ask, the questions we don’t ask, the questions we could ask. We’ll look at what the questions people ask us reveal assumptions, who gets to ask questions, questions that mislead, and when its best not to ask questions, but rather to go and see.
Working with Complex Adaptive (Human) Systems
The world abounds with complex theories and complex advice about complex adaptive systems. But most of them aren't very helpful when it comes to knowing what to do to make a system work better. In this interactive session, we'll explore three levers that you can use to influence patterns of behavior in complex adaptive systems...such as software development teams.
Hans Dockter - Founder of Gradle and CEO of Gradleware
Enterprise Gradle
In this talk we will cover many Gradle power features that are particularly helpful for the real heavy lifting often needed in enterprise builds.
Hamlet D`Arcy - Sr. Java/Groovy Developer, Groovy Committer
Code Generation on the JVM: Writing Code that Writes Code
"The Pragmatic Programmer" admonished us all to "write code that writes code": use code generators to increase productivity and avoid duplication. Today's language communities have clearly caught on, as more and more frameworks generate code at compile or runtime. This session covers Project Lombok, Cofoja, Spring Roo, GContracts, Groovy++, and more. We'll reviews the different approaches, including examples of how and why we'd want to do this. Come see how these frameworks are using things like Java and Groovy AST Transformations, AspectJ intertype definitions, and ASM bytecode generators. You'll get an in-depth look at language tools and production deployed AST Transforms and code generators. Audience: developers searching for cutting edge solutions to increasing team velocity.
Effective Groovy
"Effective Java" by Joshua Bloch is the gold standard for how to write correct and idiomatic Java code. Wouldn't it be great if the same thing existed for Groovy? Well here it is. This interactive, live coding session discusses what separates good Groovy code from the bad, what makes some code great, and how best to use the many available libraries. We'll also look at several static analysis tools for Groovy that aid in these pursuits. This session appeals to both those with a Java knowledge looking to learn Groovy and advanced Groovy programmers looking to learn more.
New Ideas for Old Code
Left unattended software can expand into a complex, brittle maintenance nightmare. But don't despair! This session teaches strategies for modernizing even the most horrid code swamps, examining incremental refactorings and the dos and don'ts of testing legacy code. We'll also tackle the harder, cultural issues: how to inspire your co-workers and keep your moral high even on the dirtiest jobs.
Neal Ford - Application Architect at ThoughtWorks, Inc.
4 Practical Uses for Domain Specific Languages
Domain Specific Langauges seems like a cool idea, but where's the payoff? This talk provides an overview of how to build both internal and external DSLs (including the state of the art tools), stopping along the way to show how this is practical to your day job.
Agile Engineering Practices
Most of the time when people talk about agile software development, they talk about project and planning practices and never mention actual development practices. This talk delves into best development practices for agile projects, covering all of its aspects.
Prerequisite: Having worked in an organization that values bureaucracy more than individuals
Agile.next
Agile has matured to the point of mainstream success. Even large companies have discovered that it helps them build better quality software faster. But the agile practices that are mainstream today have been around for a long time. What is the next wave of innovation in the Agile world going to bring?
Build Your Own Technology Radar
A Technology Radar is a tool that forces you to organize and think about near term future technology decisions, both for you and your company.
Emergent Design
Emergent design is a big topic in the agile architecture and design community. This session covers the theory behind emergent design and shows examples of how you can implement this important concept.
Prerequisite: understanding of architectural and design concepts
Functional Thinking
Learning the syntax of a new language is easy, but learning to think under a different paradigm is hard.
JRuby in Depth
Like hamburger & fries and turkey & dressing, JRuby allows you to harness the awesome power of Ruby in your Java projects. This workshop describes the origins, capabilities, and limitations of JRuby, the 100% pure-Java implementation of the Ruby programming language. This workshop also demonstrates some areas where it makes sense to mixin Ruby and Java code: building swing applications, testing, and dynamic programming.
Jerry Gulla - Architect for SaveLocal.com at Constant Contact
JRuby in the Enterprise
Bring the power of Ruby and Rails to your enterprise! Interested in harnessing the power of Ruby on Rails but not sure how to incorporate it into your existing Java/J2EE/Spring word? In this session, we’ll talk about real-world experiences, lessons learned and best practices for developing a new Ruby on Rails using JRuby.
Erik Hatcher - co-author of "Lucene in Action"
Introduction to Solr
Apache Solr serves search requests at enterprises and the largest companies around the world. Built on top of the top-notch Apache Lucene library, Solr makes indexing and searching integration into your applications straightforward. This talk will introduce Solr's capabilities with live demonstrations.
Lucene for Solr Developers
You’re Solr powered, and needing to customize its capabilities. Apache Solr is flexibly architected, with practically everything pluggable. Under the hood, Solr is driven by the well-known Apache Lucene. Lucene for Solr Developers will guide you through the various ways in which Solr can be extended, customized, and enhanced with a bit of Lucene API know-how. We’ll delve into improving analysis with custom character mapping, tokenizing, and token filtering extensions; show why and how to implement specialized query parsing, and how to add your own search and update request handling.
Solr Recipes
Solr Recipes provides quick and easy steps for common use cases with Apache Solr. Bite-sized recipes will be presented for data ingestion, textual analysis, client integration, and each of Solr’s features including faceting, more-like-this, spell checking/suggest, and others.
Prerequisite: Java JDK 1.6 and a current version of Ant is recommended to run the examples.
Daniel Hinojosa - Independent Consultant/Developer
Joda Time and a Brief History of the World
JodaTime is Java Date/Time and Calendering done right. There are many problems with the original Date/Time API that came prepackaged in the early Java days. There are even One of the obvious issues is that Calendar is mutable and can unintentionally be changed. Another issue is that constructing Calendars in Java involves setting certain fields at certain times during coding, but not always getting the expected result. Joda Time repairs those issues and offers a robust and immutable date, time, and duration API.
Personal Agility with the Pomodoro Technique
Time is very precious and is often threatened by phone calls, emails, co-workers, bosses, and most of all, yourself. The Pomodoro Technique reigns in unfocused time and gives your work the urgency and the attention it needs, and it's done with a kitchen timer.
Testing In Scala
Most introductory programming books include a chapter on testing, seemingly as an afterthought. For the test-driven developer, that's a little too late. Some programmers approach a new programming language with a few test-cases to understand a concept. Others thrive under fire and want to hit the ground running in a new programming language by creating an application. Regardless of your profile, this presentation will help you get started with a Scala testing environment so you can concentrate on the finer points of the language.
Jez Humble - Author of 'Continuous Delivery'
Continuous Delivery Part I: Value proposition, the deployment pipeline, automated tests, CI
The first 1h30 will introduce the value proposition of continuous delivery, and present the deployment pipeline, the key pattern at the heart of continuous delivery.
The second 1h30 will discuss creating and maintaining automated tests, and continuous integration and patterns for developing on mainline such as feature toggles and dark launching.
Continuous Delivery Part II: components, going live, agile infrastructure, databases, organisational transformation
In the 3rd 1h30, we will discuss componentised or service architectures, patterns for low-risk releases, and agile infrastructure management.
In the 4th 1h30, I cover data management and organizational transformation. If there's time, there will be a bonus session on architectural patterns.
Prerequisite: Continous Delivery Part I
Frank Kim - Author of Secure Coding in Java/JEE
Tricks of the Trade - What Every Developer Should Know About Application Security
Learn how to exploit security vulnerabilities that are commonly found in the arsenal of malicious attackers. We won't simply talk about issues like Cross Site Scripting (XSS) and Cross Site Request Forgery (CSRF), but will show how hackers abuse these potentially devastating defects by finding and exploiting vulnerabilities in real world open source web applications built in Java. We will proceed to walk through the source code and actually fix these issues using secure coding techniques. We will also discuss best practices that can be used to build security into your SDLC.
Dave Klein - Author of 'Grails: A Quick-Start Guide'
Grails: Bringing Radical Productivity to the JVM Part I
The goal of this hands-on tutorial is to get started and get productive with Grails. We’ll do this by jumping right in and building an application, from design to deployment.
Grails: Bringing Radical Productivity to the JVM Part II
In Part II of this session, we will continue the build out process with the Grails application.
Über Groovy
You've probably heard about Groovy, the dynamic language for the JVM. You may have heard that Groovy is what Java would have been if it had been written in the 21st century. Maybe you've even seen some demos of the seemingly magical things that you can do with Groovy. Well, now it's time to download the bits and experience the fun and productivity for yourself.
Kirk Knoernschild - Software Developer & Mentor
Modular Architecture - TODAY!
Modularity is coming to the Java platform! But contrary to popular belief, you don't need a framework or a new runtime to start building modular software applications. You can start today. Learn how!
OSGi Demystified
n 2007, OSGi was heralded as a contender for most important technology of the decade. Today, most developers have heard of OSGi, but few are using it to develop their enterprise software applications. OSGi might be the most heralded technology that nobody is using. Is OSGi failing? Who is using it? And what exactly are its benefits? Is it really too complex for the average enterprise developer?
Scaling Agility
Agile methods are proven on small teams. But really...almost any process works with a team of one. As team size increases, however, challenges mount. How do we organize the team? How do I manage Sprints across the teams? Is it possible to conduct effective code reviews? What are the essential practices that maintain team unity?
Howard Lewis Ship - Creator of Apache Tapestry
Applying Patterns: How to Spot Problem Code and What To Do About It
How do you spot bad code? How do you turn it into good code? We'll be looking at code examples from real applications. We'll start by identifying the problem with the code: things like maintainability, clarity, and testability. Then we'll look for ways to improve that code: perhaps introducing base classes, perhaps other refactorings based on Gang of Four Patterns.
Getting Started with Apache Tapestry
Apache Tapestry is a fast, easy to use, high-performance, general purpose web framework. Tapestry eschews heavy XML configuration, base classes, and boilerplate code: instead it embraces convention-over-configuration, letting you build your application from simple, concise POJO (Plain Old Java) page and component classes. Tapestry is laser-focused on giving you maximum bang for your programming buck, and this shows up as a broad range of well-integrated features, including extensive Ajax support. Don't let unfamiliarity get in the way of learning this powerful, friendly tool.
Have Your Cake and Eat It Too: Meta-Programming Techniques for Java
Ever been envious of how easily Python, Ruby and even JavaScript can “meta-program”? It’s like magic: seemingly simple or innocuous code takes over big responsibilities; new methods and behaviors appear out of thin air. Your code, your primary code, stays simple and easy to follow. Now, we know you can do that for scripting languages, but what do we do about Java? With the proper component-focused context, it is possible to emulate many of those same capabilities, by applying a simple set of code transformations at runtime.
Matthew McCullough - Head of Training, GitHub
Cryptography on the JVM: Boot Camp
Does your application transmit customer information? Are there fields of sensitive customer data stored in your DB? Can your application be used on insecure networks? If so, you need a working knowledge of encryption and how to leverage Open Source APIs and libraries to make securing your data as easy as possible. Cryptography is quickly becoming a developer's new frontier of responsibility in many data-centric applications.
Developer Productivity Power Ups on Mac OSX
You're a talented coder and you apply many agile practices to your daily workflow. Still, you are looking for that next boost to better keep track of information, manage your open applications, make working with the terminal more productive, recall information quickly, manage files rapidly, and produce documentation in a portable and effective manner.
This presentation will show you how to apply DevonThink, Delicious bookmarks, RSS feeds, Pinboard.in, Pomodoro, Things, LaunchBar, Bash profiles, mind maps, markdown files and spotlight filters to become a more productive developer that has a world of information sorted and accessible at a moment's notice.
Prerequisite: Very basic developer proficiency on the Mac.
Economic Games in Software Projects
The full title of this talk reveals its grand aims: Game Theory and Software Development: Explaining Brinksmanship, Irrationality, and Other Selfish Sins
Once in a while, a topic, seemingly orthogonal to software development, presents a great opportunity to showcase how engineering can benefit from knowledge of seemingly more social disciplines. In this talk, the fundamental principles of economics' Game Theory are compared to often inexplicable behaviors and decisions we frequently observe in programming projects.
Git Going with Distributed Version Control
Many development shops have made the leap from RCS, Perforce, ClearCase, PVCS, CVS, BitKeeper or SourceSafe to the modern Subversion (SVN) version control system. But why not take the next massive stride in productivity and get on board with Git, a distributed version control system (DVCS). Jump ahead of the masses staying on Subversion, and increase your team's productivity, debugging effectiveness, flexibility in cutting releases, and repository redundancy at $0 cost. Understand how distributed version control systems are game-changers and pick up the lingo that will become standard in the next few years.
Prerequisite: Basic understanding of Subversion or similar version control system
Git Workshop (Bring A Laptop)
Git is a version control system you may have been hearing a bit about lately. But simply hearing more about it may not be enough to convince you of its value. Getting hands on experience is what really counts. In this workshop, you'll bring your Windows, Mac or Linux laptop and walk through downloading, installing, and using Git in a collaborative fashion.
Prerequisite: Basic knowledge of a version control system. Subversion knowledge is a plus, but not imperative.
Jenkins Continuous Integration in Action
The team dynamics and agile process revolution of the last several years has taught us that continuous integration (CI) is a necessary part of a healthy agile team. Jenkins (formerly Hudson) is the idea and footprint leader in the CI space. A recent survey stated that over 70% of all CI installations have Jenkins in their DNA. What's so awesome about this particular CI tool?
Get on board with a ground-up survey of how to install, apply, upgrade, and leverage the free an open source Jenkins Continuous Integration server for your build, whether it be Ant, Maven, Gradle, JavaScript, Rake, or just shell scripts.
Simpler Cryptography with 3 JVM Libraries
Cryptography at first seems like a daunting topic. But after a basic intro and the leverage of the Java Cryptography Extension (JCE), it seems downright feasible to add encryption and decryption capabilities to your application.
Developers weren't satisfied with just the JCE and its plug-in concepts though. Over the last few years, framework architects have made strides in either wrapping or re-writing the approachable JCE in more convenient APIs and fluent interfaces that make effective and accurate crypto down right simple.
Explore three of these libraries -- Jasypt, BouncyCastle and KeyCzar -- and how they can be leveraged to make your next Java cryptography and data security effort a simple exercise and not a tribulation.
Prerequisite: Basic understanding of cryptography (hashing, symmetric, asymmetric)
Sonar: Code Quality Metrics Made Easy
You're serious about improving the quality of your code base, but with 10,000 lines of code, where do you start and how do you ensure the greatest ROI for the re-work your team members will perform?
Sonar is an open source tool that brings together the best of breed static and dynamic analysis of Java projects. The result is a unified view of problematic areas of your code on a time-line basis, allowing the team to attack the problems with the best ROI, and maintain a more watchful eye for positive and risky trends in the codebase in the future.
Prerequisite: Basic familiarity with Ant, Maven or Gradle builds and a desire to measure the quality of your code base.
Thinking In Git
Git is an innovative version control system that is taking the development world by storm. With that innovation comes new opportunities to leverage Git for more agile and productive workflows. This presentation steps up a level of abstraction from Git syntax and instead showcases the incredible team, branch and workflow dynamics that are easily accomplished with Git.
Prerequisite: Basic knowledge of any version control system
Ted Neward - Enterprise, Virtual Machine and Language Wonk
Android Training - Full Day
First there was iPod. Then iPhone. Then iPad. And with each new release, the mobile device market grew hotter and hotter. Now, as Google’s entry into this race, the Android system, begins to hit its stride as a competitor platform to the iOS, as a Java developer you’re intrigued—it’s Java (well, assuming you ask anybody except Oracle), and it’s a mobile device, and it’s open source, and…. What’s not to love?
Architectural Kata Workshop
Fred Brooks said, "How do we get great designers? Great designers design, of course." So how do we get great architects? Great architects architect. But architecting a software system is a rare opportunity for the non-architect.
The kata is an ancient tradition, born of the martial arts, designed to give the student the opportunity to practice more than basics in a semi-realistic way. The coding kata, created by Dave Thomas, is an opportunity for the developer to try a language or tool to solve a problem slightly more complex than "Hello world". The architectural kata, like the coding kata, is an opportunity for the student-architect to practice architecting a software system.
Busy Developer's Guide to CouchDB
With the rise of the NoSQL movement, a whole new crop of different ways to store data suddenly became available to the Java developer. Unfortunately,what didn't come with them was an owner's manual. CouchDB, for example, was the first of the NoSQL databases to be named as such, and offers features not found in the traditional RDBMS: A distributed, robust, incremental replication document-oriented database server with bi-directional conflict detection and management, accessible via a RESTful JSON API, stored ad-hoc and schema-free with a flat address space, that is both query-able and index-able, featuring a table oriented reporting engine that uses JavaScript as a query language. (With a list of buzzwords like that, what's not to love?)
Busy Java Developer's Guide to Games
Games? What do games have to do with good business-oriented applications? Turns out, a lot of interesting little tidbits of user-interface, distribution, and emergence, found normally in the games we play, have direct implications on the way enterprise applications can (or should) be built.
Busy Java Developer's Guide to Guava
"The Google Guava project contains a host of new features/classes for use by the Java programmer. Intended as a drop-in supplement for the standard JDK APIs, Guava provides features like immutable and forwarding collections, some concurrency utilities, more support for primitives, and so on.
Busy Java Developer's Guide to Physics Engines
"From Wikipedia: "A physics engine is computer software that provides an approximate simulation of certain simple physical systems, such as rigid body dynamics (including collision detection), soft body dynamics, and fluid dynamics, of use in the domains of computer graphics, video games and film. Their main uses are in video games (typically as middleware), in which case the simulations are in real-time. The term is sometimes used more generally to describe any software system for simulating physical phenomena, such as high-performance scientific simulation."
Pragmatic Architecture
Building an application is not the straightforward exercise it used to be. Decisions regarding which architectural approaches to take (n-tier, client/server), which user interface approaches to take (Smart/rich client, thin client, Ajax), even how to communicate between processes (Web services, distributed objects, REST)... it's enough to drive the most dedicated designer nuts. This talk discusses the goals of an application architecture and why developers should concern themselves with architecture in the first place. Then, it dives into the meat of the various architectural considerations available; the pros and cons of JavaWebStart, ClickOnce, SWT, Swing, JavaFX, GWT, Ajax, RMI, JAX-WS, , JMS, MSMQ, transactional processing, and more.
The Busy Java Developer's Guide to Akka
With the rise of multi-core processors, and their growing ubiquity (on client machines, to say nothing of the server machines on which Java applications most frequently execute), the need to "program concurrently" has risen from "nice-to-have" to "mandatory" requirement, and unfortunately the traditional threading-and-locking model is just too complicated for most Java developers--even the brightest of the lot--to keep track of with any degree of reliability. As a result, numerous new solutions are emerging, each of them with their own strengths and weaknesses, leaving the Java developer in a bit of a quandary as to which to examine.
Peter Niederwieser - Principal Software Engineer at Gradleware & Creator of Spock
Enterprise Gradle
In this talk we will cover many Gradle power features that are particularly helpful for the real heavy lifting often needed in enterprise builds.
Functional Web Testing with Geb and Spock
Geb is a next generation Functional Web Testing tool that removes the ceremony and tedium of traditional web testing, leaving you with a concise, pragmatic and productive environment in which to work. It combines the power of Groovy with the WebDriver/Selenium 2.0 browser automation library to provide a programmer's DSL for modeling pages (known as the PageObject Pattern) and easily automating real browsers such as Internet Explorer, FireFox and Chrome as well as the HTMLUnit library. Geb can be used standalone, or with testing frameworks such as Spock, JUnit, EasyB or Cucumber.
Gradle Workshop
This two-part workshop provides a hands-on introduction to Gradle. You will learn the fundamentals of Gradle's build language, leverage some of its built-in tasks and plugins, use Gradle's Ant integration, learn how to manage dependencies with Gradle, and top it off with a multi-project build. Please bring your laptops! Familiarity with Java is assumed; familiarity with Groovy is a plus but not required.
Smarter Testing with Spock
Spock is a developer testing framework for Java and Groovy applications. Even though it is fully JUnit-compatible on the outside, Spock isn't just another JUnit clone - its goal is to take developer testing to the next level! With its Groovy-powered and highly expressive testing language, Spock boosts productivity and brings back the fun to testing.
Matt Raible - Sr. UI Architect and Creator of AppFuse
Java Web Application Security: Develop. Penetrate. Protect. Relax.
In this session, you'll learn how to implement authentication in your Java web applications using Spring Security, Apache Shiro and good ol' Java EE 6 Container Managed Authentication. You'll also learn how to secure your REST API with OAuth and lock it down with SSL.
Paul Rayner - Founder and Owner at Virtual Genius
BDD with Cucumber Workshop (Bring A Laptop)
Behavior-Driven Development (BDD) employs the approach of specification by example. Cucumber is such an amazing BDD tool because it’s so good at mapping stories and acceptance criteria to automated functional tests. This is a hands-on workshop using Cucumber-JVM that will have you writing and automating acceptance tests on your own laptop by the conclusion of the session.
Introduction to Lean-Agile Software Development
Successful software development is about building the right product at the right time for your customers. This means focusing attention on the right places in the portfolio of projects and products that your company provides, and optimizing the entire value stream from "concept to cash" for your customers and the development teams.
Measure for Measure – Lean Principles for Effective Metrics and Motivation
This presentation explores the nature of motivation and the place of metrics and measurement in software development, and how lean software development principles and practices shed light on motivation and metrics and how they can be used to support deep organizational improvement.
Strategic Design Using DDD
Not every part of a software system will be well-designed. How do you know where to put the time and effort to refine the design, or refactor existing code? Learn how strategic Domain-Driven Design (DDD) patterns can show you how to know which parts of your system matter most to your business and how to focus your team's design efforts most effectively.
Using DDD Patterns for Supple Design
Come on a guided tour of how applying Domain-Driven Design (DDD) building block patterns can make your code cleaner, more expressive, and more amenable to change. We cover examples of DDD patterns such as entities, value objects, closure of operations and side-effect-free functions. We will focus particularly on how implementing value objects can lead to more supple design.
Ian Robinson - Co-author of REST in Practice
A Programmatic Introduction to Neo4j Workshop
Graph databases are an esoteric but powerful member of the NoSQL family. For highly connected data, graph databases can be thousands of times faster than relational databases, making Neo4j popular for managing complex data across many domains, from finance to social, telecoms to geospatial.
Designing RESTful Services
REST is ready for the enterprise. Imagine an information platform that is open and available to systems throughout the enterprise estate. A platform that eschews integration in favour of composition, connected data over siloed databases. A networked data structure with the power to implement valuable business behaviours: a distributed, hypermedia-driven application platform.
REST in Practice - Full Day Workshop on Web-based Distributed Systems
The Web is fast becoming a serious competitor to traditional enterprise architecture approaches. This full day workshop will provide an introduction to RESTful Web Service techniques, both from a theoretical and practical perspectives.
Terry Ryan - Author of 'Driving Technical Change'
Design for the Developer
"That's really useful, but it looks like it was designed by a developer."
Ever heard that? Want to fix it? Think you don't have design ability?
Here's a dirty little secret, design is a skill, it can be learned. This session will take you through the basics of design theory for applications. By the end you should be on your way to building not just useful apps that people have to use, but awesome apps that people love to use.
Driving Technical Change
Ever been to a conference, get inspired, try to bring what you learned back to the office, only to be stymied by co-workers who aren't interested in rocking the status quo? It turns out that people tend to resist change in patterns, and like any pattern they can be overcome by using other people's experiences with those skeptics. This session will teach you how to identify the skeptics, how to counter them, and give you a strategic framework to convince your whole office.
Brian Sam-Bodden - Java author, Ruby geek and Open Source Advocate
JBoss Drools: Rule Engine Development in Java
This workshop is aimed at Java and Java EE developers looking to understand and apply a Rule Engine to solve problems typically and painfully addressed with traditional programming techniques.
Java/Groovy Cloud Computing
In this workshop you will learn how to design, develop and deploy Java and Groovy applications on the Cloud. Learn about GAE (Google App Engine) and Amazon EC2 (Elastic Compute Cloud)
Tools and Techniques to build Smart Java Applications
In this session we will explore the Java tools, techniques and algorithms that enable us to filter, classify, relate and discover patterns in our data that might not immediately obvious. With the emergence of social networking applications a great deal of data and hidden connections that can be leveraged to build better and smarter applications.
Stuart Sierra - Clojure/core
Clojure: Lisp for the Real World
Clojure is a new dynamic programming language for the Java Virtual Machine. Clojure introduces innovative ideas around state management and concurrency, while inheriting the best ideas from the long history of Lisp-like languages. It is a language designed to solve real problems, some of which are so pervasive in current programming practice that we don't even recognize them as problems.
Rethinking Object-Oriented: Clojure and the Expression Problem
What is the Expression Problem? The question is far from academic: any programmer working in mainstream object-oriented languages is bound encounter it. As a young language on the JVM, Clojure has the opportunity to step back from mainstream approaches to object-oriented design, and get back to core concepts like type and polymorphism. Clojure, while not an object-oriented language itself, offers features that can achieve the same goals as OOP with greater flexibility.
Search Engine on a Shoestring: Clojure, Hadoop, Solr, and EC2
In 2006, Columbia law professor Tim Wu asked the question, "Why isn't legal research as easy as searching the web?" Out of that question came AltLaw, a free, open-source search engine for federal court decisions. With a nonexistent budget and only one full-time programmer, AltLaw built a search engine for over 700,000 documents by leveraging a powerful new programming language, Clojure, in conjunction with Hadoop for data processing, Solr/Lucene for search, and Amazon Web Services for infrastructure.
Brian Sletten - Forward Leaning Software Engineer
HTML 5 Overview
People are confused about the status of HTML 5. Is it ready? Is it not? What is part of the spec and what isn't? We'll talk about the situation in the "HTML 5 and the Kitchen Sink" discussion, but as always, the proof is in the pudding. We will introduce the most exciting new features of HTML 5 and its related technologies and build examples that use them.
Semantic Web Workshop
The Web is changing faster than you can imagine and it is going to continue to do so. Webs of Documents are giving way to machine-processable Webs of Information. We no longer care about data containers, we only care about data and how it connects to what we already know.
Perhaps the concepts of the Semantic Web initiative are new to you. Or perhaps you have been hearing for years how great technologies like RDF, SPARQL, SKOS and OWL are and have yet to see anything real come out of it.
Whether you are jazzed or jaded, this workshop will provide you with the understanding of a technological tidal wave that is heading in your direction.
Visualizing Data on the Web
We are far from the early days of ugly HTML. We have sophisticated visualization tools available to us now to help our users consume complex data in attractive and informative ways.
Come hear how you can adopt these visualization systems (calling them libraries is inappropriate) today.
WebGL
HTML 5 has introduced us to the Canvas API, 2D graphics and the pleasures of plugin-free video and audio playback. One of the next hurdles we will face is native support for 3D graphics for simulations, visualizations and games.
John Smart - Author of Java Power Tools
Completing the circle - Automated web tests as a team communication tool
Acceptance Test Driven Development, or ATDD, has proven to be a very effective technique, both for driving and guiding development, and for enhancing communication between developers and other project stakeholders. But why stop there? Well designed Acceptance Tests can also act as a formidable documentation source and communication tool. Indeed, when written in a narrative, BDD-type style, Acceptance Tests have the potential to document in detail how the user interacts with the application.
JUnit Kung Fu: Getting More Out of Your Unit Tests
JUnit is the de facto standard in Java testing. Yet many advanced JUnit features are little known and poorly understood. This session reviews some lesser-known features of JUnit, along with a few associated libraries, that can make your unit tests more powerful, expressive, and fun. The session is intended for Java developers, lead developers, and architects trying to introduce good testing practices into their teams.
Jenkins Continuous Integration in Action
The team dynamics and agile process revolution of the last several years has taught us that continuous integration (CI) is a necessary part of a healthy agile team. Jenkins (formerly Hudson) is the idea and footprint leader in the CI space. A recent survey stated that over 70% of all CI installations have Jenkins in their DNA. What's so awesome about this particular CI tool?
Get on board with a ground-up survey of how to install, apply, upgrade, and leverage the free an open source Jenkins Continuous Integration server for your build, whether it be Ant, Maven, Gradle, JavaScript, Rake, or just shell scripts.
Bruce Snyder - Co-Author of ActiveMQ In Action
ActiveMQ In Action: Common Problems and Solutions
Why does ActiveMQ just stop sending messages and hang? What's the best way to build a JMS consumer and producer? What configuration should I use for connection pooling? How can I query ActiveMQ for the message I need? Should I cluster ActiveMQ or group clients across brokers? If you use ActiveMQ, chances are you have run into some questions that are easily answered with a little knowledge.
Enterprise Messaging With Spring and ActiveMQ:
Spring greatly simplifies JMS messaging by handling common scenarios for you by providing facilities for both synchronous and asynchronous messaging. This dramatically lowers the barrier to building message-driven applications. Apache ActiveMQ is an open source JMS message broker that provides client access from many different languages and offers many advanced features necessary for enterprise level messaging.
Messaging and Concurrency in Your Applications Using Spring
Most Spring-based applications utilize a design based on layering. When using the standard layered application approach, the service layer is commonly used to encapsulate reusable, business-specific logic. Furthermore, communication between these services has taken place via synchronous method invocations. Spring also provides support for a message-driven communication and concurrent task messaging and concurrency support in Spring for your applications.
Styles of Application Integration Using Spring
Different integration scenarios require different types of application integration styles. Knowledge of these integration types will help you understand how to add integration to your applications using Spring.
Matt Stine - Community Engineer @CloudFoundry
C is for Continuous: Going Beyond Continuous Integration
You've got your build automated using Ant/Maven/Gradle and you're building and running your unit test suite every time you check-in. That's easy. In fact, with Jenkins you can do this in under 5 minutes.
However, if we want to move beyond "mere" Continuous Integration to Continuous Delivery, there are many other areas in which we need to achieve "push button" automation. This talk will survey many of these areas and tie everything together with an integrated case study at the end.
Code Archaeology
Feature requests are steadily pouring in, but the team cannot respond to them. They are paralyzed. The codebase on which the company has "bet the business" is simply too hard to change. It's your job to clean up the mess and get things rolling again. Where do you begin? Your first task is to get the lay of the land by applying a family of techniques we'll call "Code Archaeology."
Effective Java Reloaded
Even with the recent explosion in alternative languages for the JVM, the vast majority of us are still writing code in "Java the language" in order to put bread on the table. Proper craftsmanship demands that we write the best Java code that we can possibly write. Fortunately we have a guide in Joshua Bloch's Effective Java.
Executable Specifications: Automating Your Requirements Document with Geb and Spock
One of the hallmarks of lean software development is the elimination of waste. Several of the key wastes in software development revolve around incomplete, incorrect, or obsolete documentation, especially documentation of requirements. One effective means of ensuring that your requirements documentation is complete, correct, and up-to-date is to make it executable. That sounds nice, but how do we get it done, especially in the world of modern, cross-browser web applications?
Rock SOLID Software
Object-oriented programming was formally introduced in the 1970's with the advent of Smalltalk. C++ took it mainstream in the 1980's, and Java carried it to the next level in the 1990's. Unfortunately, if you examine the vast majority of Java codebases, what you'll find is a bunch of C-style structs (a.k.a. JavaBeans) and functions. As these codebases grow, a number of design smells can potentially crop up, which in turn cripple our ability to respond to change. We need SOLID principles that we can apply to keep our software clean and malleable.
Venkat Subramaniam - Founder of Agile Developer, Inc.
Design Patterns in modern JVM Languages
The GOF design patterns were quite centered around OOP languages. Now that we have dynamic and functional languages on the JVM, there are quite a few other patterns that come in handy with these capabilities.
Fundamentals of iOS Apps Development (day long)
Come to this workshop for an in depth understanding of the fundamentals of developing applications on the iOS platform for iPhone and iPad devices.
Hands-on Scala 1/2 Day Workshop
In this workshop we will take some common everyday tasks and learn how to program it using Scala.
Programming Concurrency (Full Day)
Starting threads is easy, benefiting from them without being burnt is hard. The multithreading API in Java has evolved quite a bit since the early stages. There are three options for concurrency in pure Java today: the modern JDK API, the Software Transaction Memory, and the actor based concurrency. In this workshop, using practical examples—all in pure Java, you will dive deep into all three of these options, learn how to use these, learn their pros and cons, and clearly understand which option to pick when.
Programming with Monads
Monads are quite unheard of in imperative style of programming. Monads, however, play an interesting roll in a purely functional programming language. Come to this session if you're heard of monads and wondered what in the world they were.
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 don't. These will help you move forward from being a programmer to a good application developer.
Craig Walls - Author of Spring in Action
Building Social Web Applications
Do you know what your application's users are doing when they're not using your application? Odds are good that they're spending time on Facebook, Twitter, or any of the other social network sites that are so prevalent today. If only your application could somehow go with them into those sites, adding value to their experience in both places.
Introducing Spring Roo: From Zero to Working Spring Application in Record Time
In this example-driven session we'll see how to swiftly develop Spring applications using Spring Roo. We'll start with an empty directory and quickly work our way up to a fully functioning web application. You'll see how Roo handles a lot of heavy-lifting that you'd normally have to do yourself when working with Spring. And we'll stop at a few scenic points along the way to see how Roo accomplishes some of its magic.
NoXML: Spring for XML-Haters
In this presentation, we'll explore all of the ways to do bean wiring in Spring We'll take a pragmatic view of each style, evaluating their strengths, weaknesses, and applicability to varying circumstances.
Securing Spring
In this session, I'll show you how to secure your Spring application with Spring Security 3.0. You'll see hot to declare both request-oriented and method-oriented security constraints. And you'll see how SpEL can make simple work of expressing complex security rules.
Spring MVC Workshop
For as long as there has been a Spring Framework, there has been Spring MVC, a web framework built around the principals of Spring. Although it was originally designed around a deep hierarchy of controller classes and focused on HTML-oriented views, Spring MVC has evolved in the past few years to embrace an annotation-oriented model and RESTful web development.
Spring Roo Workshop
In this hands-on workshop, we'll work together developing a Spring application using Spring Roo.
What's new in Spring
In this session, I'll lead a guided tour through the latest that Spring has to offer. Whether you're a Spring veteran or a Spring newbie, there will be something new for nearly everyone.
Jim Webber - Co-author of "REST in Practice"
A Programmatic Introduction to Neo4j Workshop
Graph databases are an esoteric but powerful member of the NoSQL family. For highly connected data, graph databases can be thousands of times faster than relational databases, making Neo4j popular for managing complex data across many domains, from finance to social, telecoms to geospatial.
REST in Practice - Full Day Workshop on Web-based Distributed Systems
The Web is fast becoming a serious competitor to traditional enterprise architecture approaches. This full day workshop will provide an introduction to RESTful Web Service techniques, both from a theoretical and practical perspectives.
REST in Practice - Full Day Workshop on Web-based Distributed Systems
The Web is fast becoming a serious competitor to traditional enterprise architecture approaches. This full day workshop will provide an introduction to RESTful Web Service techniques, both from a theoretical and practical perspectives.
Chris Wensel - Author of Cascading Data Processing Open Source Project
Cascading and Common Big Data Problems
This session will quickly introduce the Cascading open-source project and how it was used in various projects to overcome problems and bottlenecks particular to large data analytics.
Hadoop Architecture - In Depth
Hadoop architecture with discussion on how the MapReduce model influenced it.
Intro to Hadoop MapReduce - Indepth
This talk will introduce the Hadoop MapReduce model and common patterns and algorithms implemented to solve common problems.
Principal Software Engineer at Red Hat, Author and Open Source Advocate
As Principal Software Engineer at Red Hat, Dan serves as the JBoss Community liaison, leads the JBoss Testing Initiative and is a member of the Arquillian, ShrinkWrap and JBoss Forge projects. He authored Seam in Action (Manning), served as a representative for Red Hat on the JSR-314 Expert Group (JSF 2.0), writes for IBM developerWorks and NFJS magazine and is an internationally recognized speaker. He's appeared at major industry conferences including JavaOne, Devoxx, NFJS, JAX and Jazoon and has received recognition as a JavaOne Rock Star, a JBossWorld Top Presenter and a JAX Hall of Fame speaker.
To colleagues, Dan's known for his hard work and passion for Open Source technologies. His technical expertise includes Java frameworks (Seam, CDI, Weld, JSF, EJB 3, JPA, Hibernate, Spring), testing frameworks (Arquillian, JUnit, TestNG, Selenium), build tools (Maven 2, Gradle, Ant) and web development (Ajax, JavaScript, CSS) and more.
You can keep up with Dan's discoveries by reading his blogs at http://mojavelinux.com and http://community.jboss.org/people/dan.j.allen/blog or tracking what he's currently up to by following him on Twitter at http://twitter.com/mojavelinux.
Griffon Project Lead
Andres is a Java/Groovy developer and Java Champion, with more than 13 years of experience in software design and development. He has been involved in web and desktop application developments since the early days of Java. He has also been teacher of computer science courses in the most prestigious education institute in Mexico. His current interests include Groovy and Swing. He is a true believer of open source and has participated in popular projects like Groovy, Griffon, JMatter and DbUnit, as well as starting his own projects (Json-lib, EZMorph, GraphicsBuilder, JideBuilder). Founding member and current project lead of the Griffon framework. He blogs periodically at http://jroller.com/aalmiray. You can find him on twitter too as @aalmiray. He likes to spend time with his beloved wife, Ixchel, when not hacking around.
Principal Engineer on the Technical Initiatives team at Orbitz Worldwide
Alex has joined Orbitz in 2004 and is responsible for providing technical leadership and guidance in the development of foundational technologies, core libraries and APIs for the enterprise-wide use, as well as establishing and maintaining common design principles and standards used within the company and integration of new software development practices within the development community.
Previously Alex was a Lead Engineer on the same team responsible for web application frameworks and developing common practices and additional functionality on top of Spring MVC & Webflow.
Alex is a graduate of Loyola University of Chicago, with a B.S. in Computer Science and M.S. in Computer Science specializing in Software Architecture. He currently resides in Evanston, IL and when not coding, Alex enjoys playing tennis, hiking, skiing, and traveling.
Evangelist/hacker for hackNY
Peter is an evangelist and hacker for hackNY - a not-for-profit that aims to federate the next generation of hackers for the New York innovation community.
Peter is a regular presenter at national and international conferences on ruby, nodejs, NoSQL (especially MongoDB and neo4j), cloud computing, software craftsmanship, java, groovy, javascript, and requirements and estimating. He is on the program committee for Code Generation in Cambridge, England and the Domain Specific Modeling workshop at SPLASH (was ooPSLA) and reviews and shepherds proposals for the BCS SPA conference.
He has presented at a range of conferences including DLD conference, ooPSLA, RubyNation, SpringOne2GX, Code Generation, Practical Product Lines, the British Computer Society Software Practices Advancement conference, DevNexus, cf.Objective(), CF United, Scotch on the Rocks, WebDU, WebManiacs, UberConf, the Rich Web Experience and the No Fluff Just Stuff Enterprise Java tour.
He has been published in IEEE Software, Dr. Dobbs, IBM developerWorks, Information Week, Methods & Tools, Mashed Code, NFJS the Magazine and GroovyMag. He's currently writing a book on managing software development for Pearson.
He is an organizer of the CTO School http://www.ctoschool.org - an organization in NYC devoted to creating the next generation of technical leaders. He also organizes the node.js meetup in New York and co-organizes the Domain Driven Design and Grails meetups.
He is a regular instructor at General Assembly in New York. His presentations cover managing software development, NoSQL, mobile development, Javascript development, Twitter Bootstrap and Javascript frameworks.
He tweets regularly as @peterbell.
Tim is a full-stack generalist and passionate teacher who loves working with people as much as he loves to code. He believes the best developer is one who is well-informed of specifics and can also make deep connections between software development and the broader world. He has recently been exploring non-relational data stores, why professionalized product management is a global suboptimization, and of course everything related to Git. He does not really believe that it is possible to teach, but rather believes that it is his responsibility to create an environment in which people can learn.
He is also a poet, having composed and produced companion videos for Oh, The Methods You'll Compose and The Maven, with another project currently in the works. If you've been in his Git classes, you've seen some famous poems make their way into the world's best version control system.
Tim is a speaker internationally and on the No Fluff Just Stuff tour in the United States, and is co-president of the Denver Open Source User Group, author of the Gradle Liquibase Plugin, the maintainer of the Ratpack web framework, co-presenter of the best-selling O'Reilly Git Master Class, co-author of Building and Testing with Gradle, a member of the O'Reilly Expert Network, and a member of the GigOM Pro Analyst Network. He occasionally blogs at timberglund.com.
He lives in Littleton, CO, USA with the wife of his youth and their three children.
Principal Consultant, CodeSherpas Inc.
David Bock is a Principal Consultant at CodeSherpas, a company he founded in 2007. Mr. Bock is also the President of the Northern Virginia Java Users Group, the Editor of O'Reilly's OnJava.com website, and a frequent speaker on technology in venues such as the No Fluff Just Stuff Software Symposiums.
In January 2006, Mr. Bock was honored by being awarded the title of Java Champion by a panel of esteemed leaders in the Java Community in a program sponsored by Sun. There are approximately 100 active Java Champions worldwide.
David has also served on several JCP panels, including the Specification of the Java 6 Platform and the upcoming Java Module System.
In addition to his public speaking and training activities, Mr. Bock actively consults as a software engineer, project manager, and team mentor for commercial and government clients.
Software Craftsman
James is a contractor in the St.Louis area that shares a passion for software craftsmanship and has enjoyed software development since he wrote his first program in Basic on the Tandy Color Computer 3 way back in 1988.
In addition to a passion for technology, he also has a keen interest in improving teamwork and collaboration through interactive activities to get people thinking creatively and develop stronger, richer communication channels with their stakeholders.
Co-author of "Behind Closed Doors: Secrets of Great Management"
I started my career as a programmer, and over the years I’ve worn many hats, including business owner, internal consultant and manager. From all these perspectives, one thing became clear: our level of individual, team and company success was deeply impacted by our work environment and organizational dynamics. As a result, I have spent the last twenty-five years helping companies design their environment, culture, and human dynamics for optimum success.
I’ve written over 100 articles, and co-authored two books–Agile Retrospectives: Making Good Teams Great and Behind Closed Doors: Secrets of Great Management. I write about management, leadership, collaboration, organizations and change (or another topic I’m currently exploring).
Follow me on Twitter @estherderby
Founder of Gradle and CEO of Gradleware
Hans Dockter is the founder and project lead of the Gradle build system and the CEO of Gradleware, a company that provides training, support and consulting for Gradle and all forms of enterprise software project automation in general.
Hans has 13 years of experience as a software developer, team leader, architect, trainer, and technical mentor. Hans is a thought leader in the field of project automation and has successfully been in charge of numerous large-scale enterprise builds. He is also an advocate of Domain Driven Design, having taught classes and delivered presentations on this topic together with Eric Evans. In the earlier days, Hans was also a committer for the JBoss project and founded the JBoss-IDE.
Sr. Java/Groovy Developer, Groovy Committer
Hamlet D'Arcy has been writing software for over a decade, and has spent considerable time coding in C++, Java, and Groovy. He's passionate about learning new languages and different ways to think about problems. Hamlet is the founder of the Basel-based Hackergarten open source coding group, and regularly participates and speaks at local and international user groups and conferences. Hamlet is a committer on the Groovy and CodeNarc projects, and is a contributor on a few other open source projects (including JConch and the IDEA Groovy Plugin). He blogs regularly at http://hamletdarcy.blogspot.com and can be found on Twitter as HamletDRC (http://twitter.com/hamletdrc).
Application Architect at ThoughtWorks, Inc.
Neal is Director, Software Architect, and Meme Wrangler at ThoughtWorks, a global IT consultancy with an exclusive focus on end-to-end software development and delivery.
Before joining ThoughtWorks, Neal was the Chief Technology Officer at The DSW Group, Ltd., a nationally recognized training and development firm. Neal has a degree in Computer Science from Georgia State University specializing in languages and compilers and a minor in mathematics specializing in statistical analysis.
He is also the designer and developer of applications, instructional materials, magazine articles, video presentations, and author of 6 books, including the most recent The Productive Programmer. His language proficiencies include Java, C#/.NET, Ruby, Groovy, functional languages, Scheme, Object Pascal, C++, and C. His primary consulting focus is the design and construction of large-scale enterprise applications. Neal has taught on-site classes nationally and internationally to all phases of the military and to many Fortune 500 companies. He is also an internationally acclaimed speaker, having spoken at over 100 developer conferences worldwide, delivering more than 600 talks. If you have an insatiable curiosity about Neal, visit his web site at http://www.nealford.com. He welcomes feedback and can be reached at nford@thoughtworks.com.
Architect for SaveLocal.com at Constant Contact
Jerry Gulla is the Architect for SaveLocal.com from Constant Contact - Massachusetts‘ largest SaaS company. He fell in love with hacking both hardware and software more than 20 years ago after getting his first computer, a TRS-80 Model I. He’s worked at companies large and small, including Sun/Javasoft, as well as several small startups. Jerry is passionate about technology and has developed software for everything from the simulator for the B-2 stealth bomber all the way to HTML5 applications for modern smartphones.
His latest interests brings him into the mobile web as well as the world of alternative languages on the JVM, where he’s leveraging the power of dynamic languages and modern frameworks to rapidly deliver new applications for both mobile devices and the desktop.
co-author of "Lucene in Action"
Erik Hatcher is the co-author of "Lucene in Action" as well as co-author of "Java Development with Ant". Erik has been an active member of the Lucene community - a leading Lucene and Solr committer, member of the Lucene Project Management Committee, member of the Apache Software Foundation as well as a frequent invited speaker at various industry events. Erik co-founded and works as a Senior Solutions Architect at LucidWorks.
Independent Consultant/Developer
Providing solutions to private, education, and government entities since 1999. He has also been a teacher and speaker since the early 90s, teaching development for 8 years. His business is currently emphasized on Java, Groovy, Grails, EJB3, and the JBoss Seam web framework. Daniel Hinojosa is also co-founder of the Albuquerque Java User's Group and is currently failing overcoming his addiction of NFJS conferences.
Author of 'Continuous Delivery'
Jez Humble is a Principal Consultant with ThoughtWorks, and author of Continuous Delivery, published in Martin Fowler's Signature Series (Addison Wesley, 2010). He got into IT in 2000, just in time for the dot-com bust. Since then he has worked as a developer, system administrator, trainer, consultant, manager, and speaker. He has worked with a variety of platforms and technologies, consulting for non-profits, telecoms, financial services, and online retail companies.
Since 2004 he has worked for ThoughtWorks and ThoughtWorks Studios in Beijing, Bangalore, London, and San Francisco. His focus is on helping organisations deliver valuable, high-quality software frequently and reliably through implementing effective engineering practices in the field of Agile delivery. He also serves as Product Manager for Go, ThoughtWorks Studios agile release management platform. He holds a BA in Physics.
Software Passion: Helping organizations release useful, high quality software fast through better collaboration and automation. Writing small, useful libraries. Being a loudmouth.
Author of Secure Coding in Java/JEE
Frank Kim is the curriculum lead for software security at the SANS Institute as well as the founder of ThinkSec. Frank has over fifteen years of experience in software development, information technology, and security. He has designed and developed applications for large healthcare, technology, insurance, and consulting companies. Frank currently focuses on security strategy and application security program development with a special interest in integrating security into the software development life cycle. Frank is the author of the SANS Institute's Secure Coding in Java course. He has spoken internationally at events like JavaOne, Devoxx, Jazoon, and UberConf and was twice named a JavaOne Rock Star.
Author of 'Grails: A Quick-Start Guide'
Dave is a consultant helping organizations of all sizes to develop applications more quickly (and have more fun doing it) with Grails. Dave has been involved in enterprise software development for the past 15 years. He has worked as a developer, architect, project manager, mentor and trainer. Dave has presented at user groups and national conferences. He is also the founder of the Capital Java User Group in Madison, Wisconsin, the Gateway Groovy Users in St. Louis, MO, and the author of Grails: A Quick-Start Guide, published by the Pragmatic Programmers. . Dave's Groovy and Grails related thoughts can be found at http://dave-klein.blogspot.com
Software Developer & Mentor
Kirk is software developer with a passion for building great software. He takes a keen interest in design, architecture, application development platforms, agile development, and the IT industry in general, especially as it relates to software development. His recent book, Java Application Architecture was published in 2012, and presents 18 patterns that help you design modular software.
Creator of Apache Tapestry
Howard Lewis Ship is the creator and lead developer for the Apache Tapestry project, and is a noted expert on Java framework design and developer productivity. He has over twenty years of full-time software development under his belt, with over ten years of Java. He cut his teeth writing customer support software for Stratus Computer, but eventually traded PL/1 for Objective-C and NeXTSTEP before settling into Java.
Howard is respected in the Java community as an expert on web application development, dependency injection, Java meta-programming, and developer productivity. He is a frequent speaker at JavaOne, NoFluffJustStuff, ApacheCon and other conferences, and the author of "Tapestry in Action" for Manning (covering Tapestry 3.0). Lately, he's been dipping his toes into alternate languages, including Clojure.
Howard is an independent consultant, offering Tapestry training, mentoring and project work as well as training in Clojure. He lives in Portland, Oregon with his wife Suzanne, and his children, Jacob and Olivia.
Head of Training, GitHub
Matthew McCullough is an energetic 15 year veteran of enterprise software development, open source education, and co-founder of Ambient Ideas, LLC, a Denver consultancy. Matthew currently is VP of Training at GitHub.com, author of the Git Master Class series for O'Reilly, speaker at over 30 national and international conferences, author of three of the top 10 DZone RefCards, and President of the Denver Open Source Users Group. His current topics of research center around project automation: build tools (Gradle), distributed version control (Git, GitHub), Continuous Integration (Jenkins, Travis) and Quality Metrics (Sonar). Matthew resides in Denver, Colorado with his beautiful wife and two young daughters, who are active in nearly every outdoor activity Colorado has to offer.
Enterprise, Virtual Machine and Language Wonk
Ted Neward is an Architectural Consultant with Neudesic, LLC as well as the Principal with Neward & Associates. He speaks on the conference circuit discussing Java, .NET and XML service technologies, focusing on Java-.NET interoperability, programming languages, and virtual machine technologies. He has written several widely-recognized books in both the Java and .NET space, including the recently- released "Professional F#" and widely-acclaimed "Effective Enterprise Java". He lives in the Pacific Northwest.
Principal Software Engineer at Gradleware & Creator of Spock
Peter Niederwieser is a computer language enthusiast from Austria who has been using Java since the early days. Peter's work experience ranges from small start-ups to large enterprises like Siemens. His passion for software quality and continuous delivery invariably leads him to take the build master role on new projects, pushing project automation as far as he can. It also lead him to create Spock, an innovation-packed developer testing framework that is seeing increasing adoption around the globe.
Peter is an active member of the Groovy community, and can't sleep without his daily dose of Scala. When Peter isn't coding, you can find him speaking at conferences around the world, or pondering over a chess board.
Sr. UI Architect and Creator of AppFuse
Matt Raible has been building web applications for most of his adult life. He started tinkering with the web before Netscape 1.0 was even released. For the last 15 years, Matt has helped companies adopt open source technologies (Spring, Hibernate, Apache, Struts, Grails, Bootstrap, jQuery) and use them effectively. Matt has been a speaker at many conferences worldwide, including Devoxx, The Rich Web Experience, Jfokus, No Fluff Just Stuff, and a host of others.
Matt is an author (Spring Live and Pro JSP), and an active "kick-ass technology" evangelist on raibledesigns.com. He is the founder of AppFuse, a project which allows you to get started quickly with Java open source frameworks, as well as a committer on the Apache Roller and Apache Struts projects.
Matt has had quite a ride in the past few years, serving as the Lead UI Architect for LinkedIn, the UI Architect for Evite.com and the Chief Architect of Web Development at Time Warner Cable. He currently consults as a UI Architect for HTML5 apps at Taleo/Oracle.
Founder and Owner at Virtual Genius
Paul is a seasoned design coach and leadership mentor, helping teams ignite their design skills via DDD and BDD. He gets teams unstuck through intensive coaching workshops and hands-on pair programming, combined with focused one-on-one leadership mentoring. His company Virtual Genius is a software solutions provider, specializing in custom Ruby applications. Paul actively serves the community: co-authoring the upcoming Addison Wesley book, BDD with Cucumber, teaching classes in BDD and DDD, contributing to OSS, and co-leading the DDD Denver Meetup group.
Look for him speaking at user groups, on the No Fluff Just Stuff conference tour in the United States, and at local and international conferences. Paul is from Perth, Australia, but chooses to live, work and play with his amazing wife and two children in Denver. He tweets with an Australian accent at @ThePaulRayner and blogs at thepaulrayner.com
Co-author of REST in Practice
Ian Robinson (@iansrobinson) is Director of Customer Success for Neo Technology, the company behind Neo4j, the world's leading open source graph database. He is a co-author of 'REST in Practice' (O'Reilly) and a contributor to the forthcoming books 'REST: From Research to Practice' (Springer) and 'Service Design Patterns' (Addison-Wesley). He presents at conferences worldwide on the big Web graph of REST, and the awesome graph capabilities of Neo4j, and blogs at http://iansrobinson.com.
Author of 'Driving Technical Change'
Terry Ryan is a Worldwide Developer Evangelist for Adobe. The job basically entails helping developers using Adobe technologies to be successful. His focus is on web and mobile technologies including expertise in both Flash and HTML. Previous to that, he spent a decade working in various technical roles at the Wharton School at the University of Pennsylvania.
Terry is also the author of Driving Technical Change, a Pragmatic Bookshelf title. It's about convincing reluctant co-workers to adopt new tools and ideas.
He blogs at http://terrenceryan.com/blog and is tpryan on Twitter.
Java author, Ruby geek and Open Source Advocate
Brian Sam-Bodden is an author, instructor, speaker and hacker that has spent over fifteen years crafting software systems. He holds dual bachelor degrees from Ohio Wesleyan University in computer science and physics and heads Integrallis http://www.integrallis.com. He is a frequent speaker at user groups and conferences nationally and abroad. Brian is the author of "Beginning POJOs: Spring, Hibernate, JBoss and Tapestry", co-author of the "Enterprise Java Development on a Budget: Leveraging Java Open Source Technologies" and a contributor to O'reilly's "97 Things Every Project Manager Should Know".
Clojure/core
Stuart Sierra is an actor/writer/coder who lives in New York City. He is a member of the Clojure/core team at Relevance, Inc. Stuart is the co-author of Practical Clojure (Apress, 2010). He received an M.S. in Computer Science from Columbia University and a B.F.A. in Theatre from New York University.
Forward Leaning Software Engineer
Brian Sletten is a liberal arts-educated software engineer with a focus on forward-leaning technologies. His experience has spanned many industries including retail, banking, online games, defense, finance, hospitality and health care. He has a B.S. in Computer Science from the College of William and Mary and lives in Auburn, CA. He focuses on web architecture, resource-oriented computing, social networking, the Semantic Web, data science, 3D graphics, visualization, scalable systems, security consulting and other technologies of the late 20th and early 21st Centuries. He is also a rabid reader, devoted foodie and has excellent taste in music. If pressed, he might tell you about his International Pop Recording career.
Author of Java Power Tools
John is an experienced consultant and trainer specialising in Enterprise Java, Web Development, and Open Source technologies, currently based in Wellington, New Zealand. Well known in the Java community for his many published articles, and as author of Java Power Tools, John helps organisations around the world to optimize their Java development processes and infrastructures and provides training and mentoring in open source technologies, SDLC tools, and agile development processes.
Co-Author of ActiveMQ In Action
Bruce Snyder is a veteran of enterprise software development and a recognized leader in open source software. With over a decade of experience, Bruce has worked with a wide range of technologies including Java EE, Enterprise Messaging and Service Oriented Integration. In addition to his role as a senior software engineer at SpringSource, Bruce is also an Apache Member, a co-founder of Apache Geronimo and a developer for Apache ActiveMQ, Apache Camel and Apache ServiceMix. He is the co-author of Professional Apache Geronimo, Beginning Spring Framework 2 both from Wrox Press and is currently co-authoring ActiveMQ In Action for Manning Publications. Bruce also serves as a member of various JCP expert groups and is a recognized international speaker at industry conferences. Bruce lives in beautiful Boulder, Colorado with his family.
Community Engineer @CloudFoundry
Matt Stine is a Community Engineer with Cloud Foundry (http://cloudfoundry.com) by Pivotal (http://goPivotal.com). He is a twelve year veteran of the enterprise software and web development industries, with experience spanning the healthcare, biomedical research, e-commerce, retail store and insurance domains.
Matt is obsessed with the idea that enterprise IT “doesn’t have to suck,” and spends much of his time thinking about lean/agile software development methodologies, DevOps, architectural principles/patterns/practices, and programming paradigms in an attempt to find the perfect storm of techniques that will allow corporate IT departments to not only function like startup companies, but also create software that delights users while maintaining a high degree of conceptual integrity.
Matt has spoken at conferences ranging from JavaOne to CodeMash and serves as Technical Editor of NFJS the Magazine (https://www.nofluffjuststuff.com/home/magazine_subscribe). Matt is also the founder of the Memphis/Mid-South Java User Group.
Founder of Agile Developer, Inc.
Dr. Venkat Subramaniam, founder of Agile Developer, Inc., has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia. Venkat helps his clients effectively apply and succeed with agile practices on their software projects, and speaks frequently at international conferences and user groups. Venkat is also an adjunct faculty and teaches CS courses remotely at the University of Houston. He is author of ".NET Gotchas," coauthor of 2007 Jolt Productivity Award winning "Practices of an Agile Developer," author of "Programming Groovy: Dynamic Productivity for the Java Developer" and "Programming Scala: Tackle Multi-Core Complexity on the Java Virtual Machine" (Pragmatic Bookshelf).
Author of Spring in Action
Craig Walls is a senior engineer with SpringSource as the Spring Social project lead and is the author of Spring in Action and XDoclet in Action (both published by Manning) and Modular Java (published by Pragmatic Bookshelf). He's a zealous promoter of the Spring Framework, speaking frequently at local user groups and conferences and writing about Spring and OSGi on his blog. When he's not slinging code, Craig spends as much time as he can with his wife, two daughters, 2 birds and 3 dogs.
Co-author of "REST in Practice"
Dr. Jim Webber is Chief Scientist with Neo Technology the company behind the popular open source graph database Neo4j, where he works on graph database server technology and writes open source software. Jim is interested in using big graphs like the Web for building distributed systems, which led him to being a co-author on the book REST in Practice, having previously written Developing Enterprise Web Services - An Architect's Guide. Jim is an active speaker, presenting regularly around the world. His blog is located at http://jimwebber.org and he tweets often @jimwebber.
Author of Cascading Data Processing Open Source Project
Chris Wensel is the founder of Concurrent, Inc., and the author of the Cascading data processing open-source project, an alternative API to MapReduce for Apache Hadoop.
He also co-founded Scale Unlimited, the first Hadoop and "Big Data" related professional services and training company, where he mentored and trained companies like Sun Microsystems, Apple, and numerous startups in the Bay Area.
Chris bootstrapped his first Internet startup in the early 90's, creating an early Web server-side scripting language used in the real estate and insurance verticals. During the late 90's, Chris focused on distributed-agent based systems where he received several patents on
distributed computing. From there he became Chief Architect for the fastest growing business unit at Thomson Reuters. Just prior to Concurrent, Chris was a Consulting Architect to TeleAtlas geo-content management group in Belgium.
Chris also advises several startups in the "Big Data" and "Big Audience" technology space.
Grassroots Movement Director - Nuru International
As passionate about ending extreme poverty (the greatest crisis of our generation) as he is about his home state of West Virginia, Billy has spearheaded Nuru International’s Grassroots Movement since the organization’s inception. As Nuru’s lead advocate and storyteller, Billy has been invited to share Nuru’s story at many conferences and events around the country. He is a consummate networker and has been instrumental in building relationships with organizations and movements like the ONE Campaign, One Days Wages, Catalyst Conference and !dea Camp. In spring 2010 he organized a nationwide tour to raise awareness of Nuru’s fight to end extreme poverty that inspired young activists to participate in a national mobilization event called “Be Hope To Her” that has since taken a life of its own. Aside from these roles, Billy has led the charge in Nuru’s social media efforts on Facebook and Twitter and is an avid blogger.
Under Billy’s leadership, Nuru’s Grassroots Movement has grown from a handful of volunteers to literally thousands of fans and supporters who are passionate about seeing the end of extreme poverty, and if you are seated next to him on a plane, at an adjacent table at Starbucks, or trapped with him in an elevator, he’ll be sure to invite you to join the fight against extreme poverty too.












































