After almost a decade and several significant releases, Spring has gone a long way from challenging the then-current Java standards to becoming the de facto enterprise standard itself. Although the Spring programming model continues to evolve, it still maintains backward compatibility with many of its earlier features and paradigms. Consequently, there's often more than one way to do anything in Spring. How do you know which way is the right way?
In this session, we'll explore several ways that Spring has changed over the years and look at the best approaches when working with the latest versions of Spring.
Craig Walls has been professionally developing software for almost 18 years (and longer than that for the pure geekiness of it). He 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, 4 birds and 3 dogs.
Agile techniques are often pigeon-holed as just applying to software projects and IT organizations. Agile techniques are a mindset more than a list of rules to follow and can bring efficiency and improvements to all areas of an organization.
This presentation will cover a case study of ThoughtWorks experience with a major bank and credit card company in the US and their application of Agile techniques. We will cover the process, outcomes and challenges of the Agile implementation.
Tiffany Lentz, a Principal Consultant and Program Manager, is proudly employed at ThoughtWorks, a global IT services firm focused on end-to-end software delivery. She has worked extensively for large clients in the US, Canada, and China, delivering solutions for both disparate system delivery projects and agile enablement and organizational transformation efforts to incorporate and enhance efficiency and delivery processes. She is an author, mentor, coach and trainer of agile methodologies, processes, and practices. Tiffany is the author of Iteration Management Chapter in the ThoughtWorks anthology book and believes that the Iteration Manager's job is to build a well-oil delivery machine.
Developing a rich user interface for web applications is both exciting and challenging. HTML 5 has closed the gaps and once again brought new vibe into programming the web tier. Come to this session to learn how you can make use of HTML 5 to create stellar applications.
.
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).
Advanced Message Queuing Protocol (AMQP) is a new way of looking at messaging that is quickly gaining in popularity and use, particularly in the financial services industry. Unlike JMS, which defines a standard API across platforms, AMQP defines a standard wire-level protocol across languages and platforms, finally making true cross-platform messaging a reality. In this session I will start by describing exactly what AMQP is and what problems it specifically solves (that JMS can't!). I will then describe the basic architecture and how AMQP routes messages, and then, through live interactive coding, demonstrate how to build a simple producer and consumer using RabbitMQ to send and receive AMQP messages. We will also take a brief look at other aspects of AMQP such as performance and how to guarantee that the message reaches a consumer.
Agenda: - What is AMQP and what problems does it solve? - How AMQP works: exchanges, bindings, queues, and routing - AMQP exchange types - AMQP message structure - AMQP Performance characteristics - Sending and receiving messages using RabbitMQ - How to guarantee message delivery in AMQP
Mark Richards is an Independent Consultant working in the field as an Enterprise, Integration, and Application Architect, where he is involved in the architecture, design, and implementation of SOA, EDA, messaging, and other architectures, primarily in the Java platform. Previously, Mark was an Executive IT Architect with IBM, where he worked as an SOA and enterprise architect in the financial services area. He has been involved in the software industry since 1984 and has many battle scars to show for it. Mark served as the President of the Boston Java User Group in 1997 and 1998, and the President of the New England Java Users Group from 1999 thru 2003. Mark is the author of the book Java Message Service (2nd edition) from O'Reilly. He is also the author of Java Transaction Design Strategies, contributing author of the book 97 Things Every Software Architect Should Know from O'Reilly, contributing author of NFJS Anthology Volume 1, and contributing author of NFJS Anthology Volume 2. Mark has many architect and developer certifications, including those from IBM, Sun, The Open Group, and Oracle. He is a regular conference speaker at the No Fluff Just Stuff Symposium Series and speaks at other conferences and user groups around the world. When he is not working Mark can usually be found hiking with his wife and two daughters in the White Mountains or along the Appalachian Trail.
You've heard a bit about Git, Gradle, Jenkins, and Sonar, but are you putting them to use? Are you maximizing what they can offer in terms of standardized project models, faster incremental compiles, automated commit-triggered builds, and rapid source code analysis? In this intense presentation, live demonstrations will be given for all of the latest versions of the aforementioned tools and what they have to offer a highly proficient Java developer.
Don't struggle to get the build out, functioning, and analyzed. Develop, build, analyze and deploy smartly and efficiently with a Build Lifecycle Craftsmanship approach and tooling.
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.
Alternative databases continue to establish their role in the technology stack of the future?and for many, the technology stack of the present. Making mature engineering decisions about when to adopt new products is not easy, and requires that we learn about them both from an abstract perspective and from a very concrete one as well. If you are going to recommend a NoSQL database for a new project, you're going to have to look at code.
In this talk, we'll examine three important contenders in the NoSQL space: Cassandra, MongoDB, and Neo4J. We'll review their data models, scaling paradigms, and query idioms. Most importantly, we'll work through the exercise of modeling a real-world problem with each database, and look at the code and queries we'd use to implement real product features. Come to this session for a thorough and thoroughly practical smackdown between three important NoSQL products.
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.
This presentation consists of a series of animations that visualize the functionality of the components in the java.util.concurrent library.??Each animation features buttons that correspond to the method calls in that component. Each click of a button creates a thread to call methods on the component, showing how the threads interact in real time. The animations are controlled by the actual Java concurrent component it is illustrating, so the animation is not only a visual demonstration, it's also a code sample.??
Key points covered will be?- An explanation of the use case for each of 14 concurrent components.?- Description of the design pattern handled by the component?- How the concurrent component handles the use case?- Visualization through animation of the use case.??Components covered include,?- Executors (non-fair & fair)?- Runnable/Callable?- Semaphore?- Future?- Reentrant Lock?- ReadWriteLock?- Condition?- BlockingQueue?- CyclicBarrier?- Phaser ? TransferQueue - CountDownLatch?- CompletionService?- ConcurrentHashMap?- Fork & join?- Compare & Swap??If you?re still using constructs like Thread.start or wait/notify, you'll want to attend this meeting.??The presentation is packaged as a self-executable Java Archive (JAR) file and is available for download. It'll serve as a valuable reference for any Java practitioner.
Victor Grazi is Vice President of Java Consultancy at Credit Suisse Architecture.
He is a Java evangelist and has been building real time financial systems in Java since JDK version 1.02
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.
This workshop will get you up and running with Sonar on your laptop and analyzing the source code of a project in under 90 minutes.
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.
Neo4j is an open-source, enterprise-class database with a conventional feature set and a very unconventional data model. Like the databases we're already used to, it offers support for Java, ACID transactions, and a feature-rich query language. But before you get too comfortable, you have to wrap your mind around its most important feature: Neo4j is a graph database, built precisely to store graphs efficiently and traverse them more performantly than relational, document, or key/value databases ever could.
Neo4j is an obvious fit to anyone who thinks they have a graph problem to solve, but this is not many people. It turns out that the most interesting property of Neo4j is its architectural agenda. It wants you to think of the entire world as a graph?as a set of connected information resources. Steeped in the thinking of resource oriented architecture, this NoSQL database wants to change the way you look at your world, and unlock new value in your data as a result.
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.
For a long while, we've built applications pretty much the same way. Regardless of the frameworks (or even languages and platforms) employed, we've packaged up our web application, deployed it to a server somewhere, and asked our users to point their web browser at it.
But now we're seeing a shift in not only how applications are deployed, but also in how they're consumed. The cost and hassle of setting up dedicated servers is driving more applications into the cloud. Meanwhile, our users are on-the-go more than ever, consuming applications from their mobile devices more often than a traditional desktop browser. And even the desktop user is expecting a more interactive experience than is offered by simple page-based HTML sites.
With this shift comes new programming models and frameworks. It also involves a shift in how we think about our application design. Standing up a simple HTML-based application is no longer good enough.
In this session, we'll discuss what the next generation of applications looks like, exploring such things as the mobile web and cloud computing. We'll also dig into some of the technologies and practices such as REST, OAuth, and JavaScript microframeworks that enable us to move forward.
Craig Walls has been professionally developing software for almost 18 years (and longer than that for the pure geekiness of it). He 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, 4 birds and 3 dogs.
Enterprise Architecture (EA) is one of the most misunderstood terms in our industry. Ask 10 people what EA is and you will get 10 different answers. To better understand what EA is and how it impacts your company (and you!) we will go back in time to maritime Britain in the late 1700's. Through exercises in designing a fleet of war ships and making decisions about what to do with the fleet you will understand the various approaches, directions, and implications of EA and how necessary EA is to achieve any company goal. So put your admirals hat on and climb aboard for a maritime adventure you won't forget!
Agenda:
Mark Richards is an Independent Consultant working in the field as an Enterprise, Integration, and Application Architect, where he is involved in the architecture, design, and implementation of SOA, EDA, messaging, and other architectures, primarily in the Java platform. Previously, Mark was an Executive IT Architect with IBM, where he worked as an SOA and enterprise architect in the financial services area. He has been involved in the software industry since 1984 and has many battle scars to show for it. Mark served as the President of the Boston Java User Group in 1997 and 1998, and the President of the New England Java Users Group from 1999 thru 2003. Mark is the author of the book Java Message Service (2nd edition) from O'Reilly. He is also the author of Java Transaction Design Strategies, contributing author of the book 97 Things Every Software Architect Should Know from O'Reilly, contributing author of NFJS Anthology Volume 1, and contributing author of NFJS Anthology Volume 2. Mark has many architect and developer certifications, including those from IBM, Sun, The Open Group, and Oracle. He is a regular conference speaker at the No Fluff Just Stuff Symposium Series and speaks at other conferences and user groups around the world. When he is not working Mark can usually be found hiking with his wife and two daughters in the White Mountains or along the Appalachian Trail.
Is your Agile team running smoothly? How do you know? This answer is found in your iteration and your toolkit for constant team improvement! Comparing Iteration Management skills and tools to those of the Agile Project Manager, Scrum Master and Technical Leader roles, you will see that Iteration Management encompasses end to end activities of the iteration, which are crucial to unblocking your software production line and making your team a success.
This session will enable participants to employ critical and industry proven techniques that will improve a team???s processes immediately upon application. An Iteration Manager encompasses not just project management activities, but ALL activities of iterations, including: story writing, development, testing, facilitation, visibility, communication and metrics. The session will provide hands on, proven and critical techniques to successfully managing the inner workings of iterations.
Tiffany Lentz, a Principal Consultant and Program Manager, is proudly employed at ThoughtWorks, a global IT services firm focused on end-to-end software delivery. She has worked extensively for large clients in the US, Canada, and China, delivering solutions for both disparate system delivery projects and agile enablement and organizational transformation efforts to incorporate and enhance efficiency and delivery processes. She is an author, mentor, coach and trainer of agile methodologies, processes, and practices. Tiffany is the author of Iteration Management Chapter in the ThoughtWorks anthology book and believes that the Iteration Manager's job is to build a well-oil delivery machine.
Change is upon us! We change to stay relevant. Many organizations are faced with the options of change or die. Change is admittedly painful, so how do you balance all the moving parts of finding a starting point, prioritizing which processes to change, implementing change, and dealing with the aftermath? This session covers ideas for managing the delicacy and complexity of change and looks at the successes and failures of 4 organizations who embarked on programs of change.
Change programs are complicated by people, their comfort levels, personal agendas and motivating factors. This session covers the psychology of change, how to deal with personal agendas and motivating factors and 4 real world examples of organizational change. We will look at approaches for changing People, Processes and Tools. We will also discuss models for implementing Agile as a change program in your organization.
Tiffany Lentz, a Principal Consultant and Program Manager, is proudly employed at ThoughtWorks, a global IT services firm focused on end-to-end software delivery. She has worked extensively for large clients in the US, Canada, and China, delivering solutions for both disparate system delivery projects and agile enablement and organizational transformation efforts to incorporate and enhance efficiency and delivery processes. She is an author, mentor, coach and trainer of agile methodologies, processes, and practices. Tiffany is the author of Iteration Management Chapter in the ThoughtWorks anthology book and believes that the Iteration Manager's job is to build a well-oil delivery machine.
In this session, we'll look at OAuth, focusing on OAuth 2, from the perspective of an application that consumes an OAuth-secured API as well as see how to use OAuth to secure your own APIs.
Web security is nothing new. As users of the web, we're all accustomed to entering our usernames and fumbling to recall our passwords when trying to access private data on one of the many online services we use. But while traditionally web security could be described as a two-party process between a web application and a user, the modern web involves applications that seek to access other applications on behalf of their users. This presents some new challenges in keeping a user's sensitive data secure while still allowing a the third party application to access it.
OAuth is an open standard for authorization, supported by many online services, that allows one application to access a user's data in another application, all while giving the user control of what information is shared.
Craig Walls has been professionally developing software for almost 18 years (and longer than that for the pure geekiness of it). He 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, 4 birds and 3 dogs.
I commonly think of those of us in the IT industry as problem solvers. Whether developer, designer, or architect, we are all presented with problems and work to find a way to solve them, usually through technology. In my opinion this is what makes this industry so much fun. Let's face it - we all love challenges. Sometimes, however, the problems we have to solve are hard - really hard. So how do you go about solving really hard problems? That's what this session is about - Heuristics, the art of problem solving. In this session you will learn how to approach problems and also learn some the common techniques for solving them effectively. So put on your thinking cap and get ready to solve some easy, fun, and hard problems.
Agenda:
Mark Richards is an Independent Consultant working in the field as an Enterprise, Integration, and Application Architect, where he is involved in the architecture, design, and implementation of SOA, EDA, messaging, and other architectures, primarily in the Java platform. Previously, Mark was an Executive IT Architect with IBM, where he worked as an SOA and enterprise architect in the financial services area. He has been involved in the software industry since 1984 and has many battle scars to show for it. Mark served as the President of the Boston Java User Group in 1997 and 1998, and the President of the New England Java Users Group from 1999 thru 2003. Mark is the author of the book Java Message Service (2nd edition) from O'Reilly. He is also the author of Java Transaction Design Strategies, contributing author of the book 97 Things Every Software Architect Should Know from O'Reilly, contributing author of NFJS Anthology Volume 1, and contributing author of NFJS Anthology Volume 2. Mark has many architect and developer certifications, including those from IBM, Sun, The Open Group, and Oracle. He is a regular conference speaker at the No Fluff Just Stuff Symposium Series and speaks at other conferences and user groups around the world. When he is not working Mark can usually be found hiking with his wife and two daughters in the White Mountains or along the Appalachian Trail.
With NoSQL data stores you need to completely rethink how to model your data.
In this session we'll look at the very different approaches to data modeling required for MongoDB and Neo4j.
Peter is Senior VP Engineering and Senior Fellow at General Assembly, a campus for technology, design, and entrepreneurship. He is responsible for hiring and managing an engineering team and is involved in the development and teaching of the technology curriculum.
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.
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.
The workshop style of this class will allow you to observe and discover the value of this new version control tool first hand. You'll be cloning, creating, commiting, and pushing repositories by the conclusion of this session.
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.
JavaScript is one of those very powerful languages that is often misunderstood and underutilized. It's quite popular, yet there's so much more we can do with it.
In this presentation we'll deep dive into the capabilities and strengths of this prominent language of the web.
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).
Gradle. Another build tool? Come on! But before you say that, take a look at the one you are already using.
Whether your current tool is Make, Rake, Ant, or Maven, Gradle has a lot to offer. It leverages a strong object model like Maven, but a mutable, not predetermined one. Gradle relies on a directed acyclic graph (DAG) lifecycle like Maven, but one that can be customized. Gradle offers imperative build scripting when you need it (like Ant), but declarative build approaches by default (like Maven). In short, Gradle believes that conventions are great -- as long as they are headed in the same direction you need to go. When you need to customize something in your build, your build tool should facilitate that with a smile, not a slap in the face. And customizations should be in a low-ceremony language like Groovy. Is all this too much to ask?
Gradle has received the attention of major open source efforts and has chalked up significant conversions by the Spring Integration, Hibernate, and Grails projects. What do these technology leaders see in this bold new build tool? They see not only a better way to build Java applications, but an extensive ecosystem of connecting to existing Ant and Maven build files while expanding the horizon of test, CI, and deployment automation in an easy manner. Join us for 90 minutes and let us take you on this same walk of discovery of the most innovative build tool you've ever seen.
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.
Intuit and even the US government want to be "lean startups".
Learn how businesses of any size can improve the effectiveness and efficiency of their software development processes using lean startup principles like Minimum Viable Product, Validated Learning and Metrics Driven Development.
Peter is Senior VP Engineering and Senior Fellow at General Assembly, a campus for technology, design, and entrepreneurship. He is responsible for hiring and managing an engineering team and is involved in the development and teaching of the technology curriculum.
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.
This session starts with a high-level look at all that the Spring Data project has to offer. Then we'll dive deeper into a few select Spring Data modules, including Spring Data Neo4j, Spring Data MongoDB, Spring Data Redis, Spring Data JPA, and Spring Data JDBC Extensions
In recent years, there has been a renewed interest in how data is stored. Although RDBMS has long been treated as a one-size-fits-all solution for data storage, a new breed of datastores has arrived to offer a best-fit solution. Key-value stores, column stores, document stores, graph databases, as well as the traditional relational database are options to consider.
With these new data storage options come new and different ways of interacting with data. Even though all of these data storage options offer Java APIs, they are widely different from each other and the learning curve can be quite steep. Even if you understand the concepts and benefits of each database type, there's still the huge barrier of understanding how to work with each database's individual API.
Spring Data is a project that makes it easier to build Spring-powered applications that use new data, offering a reasonably consistent programming model regardless of which type of database you choose. In addition to supporting the new "NoSQL" databases such as document and graph databases, Spring Data also greatly simplifies working with RDBMS-oriented datastores using JPA.
Craig Walls has been professionally developing software for almost 18 years (and longer than that for the pure geekiness of it). He 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, 4 birds and 3 dogs.
The ancient Chinese warrior Sun Tzu taught his men to "know your enemy" before going into battle. For us, the same thing is knowing and understanding anti-patterns - things that we repeatably do that produce negative results. Anti-patterns are used by developers, architects, and managers every day, and are one of the main factors that prevent progress and success. In this session we will look at some of the more common and significant software development anti-patterns. Through coding and design examples, you will see how these anti-patterns emerge, how to recognize when the antipattern is being used, and most importantly, how to avoid them. Although most of the coding examples will be in Java, this is a technology-agnostic session. Remember, like motorcycles, anti-patterns are everywhere - so be careful out there!
Agenda
For each anti-pattern covered in this session we will look at the symptoms of the anti-pattern, what the effects are, and some techniques on how to avoid the anti-pattern.
Mark Richards is an Independent Consultant working in the field as an Enterprise, Integration, and Application Architect, where he is involved in the architecture, design, and implementation of SOA, EDA, messaging, and other architectures, primarily in the Java platform. Previously, Mark was an Executive IT Architect with IBM, where he worked as an SOA and enterprise architect in the financial services area. He has been involved in the software industry since 1984 and has many battle scars to show for it. Mark served as the President of the Boston Java User Group in 1997 and 1998, and the President of the New England Java Users Group from 1999 thru 2003. Mark is the author of the book Java Message Service (2nd edition) from O'Reilly. He is also the author of Java Transaction Design Strategies, contributing author of the book 97 Things Every Software Architect Should Know from O'Reilly, contributing author of NFJS Anthology Volume 1, and contributing author of NFJS Anthology Volume 2. Mark has many architect and developer certifications, including those from IBM, Sun, The Open Group, and Oracle. He is a regular conference speaker at the No Fluff Just Stuff Symposium Series and speaks at other conferences and user groups around the world. When he is not working Mark can usually be found hiking with his wife and two daughters in the White Mountains or along the Appalachian Trail.
Programmers often complain that it is hard to automate unit and acceptance tests for JavaScript. Testability is a design issue and with some discipline and careful design we can realize good automated tests.
In this presentation we'll learn how to automate the testing of JavaScript using both TDD and BDD tools.
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).
Ratpack is a hyper-lightweight, Groovy-based web framework for developing and deploying simple apps in a hurry. Like its high-achieving cousin Gaelyk, it provides Groovy developers with a way to create web apps without days of iteration zero setup time.
In this talk, we'll look over Ratpack's very simple structure and live-code a small, practical example application. We'll look at how to evolve simple controller logic, how to manage templates, how to persist data, and how to deploy Ratpack applications to the web. The Java world needs ways to build small applications in a hurry, and Ratpack is the latest way to do it!
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.
The word just came down from the VP - you need a mobile app and you need it yesterday. Wait, you've never built a mobile app...it's pretty much the same thing as you've built before just smaller right? Wrong. The mobile experience is different and far less forgiving. How do you design an application for touch? How does that differ from a mouse? Should you build a mobile app or a mobile web site? This talk will get you started on designing for a new, and exciting, platform. Whether that means iPhone, Android, Windows Phone or something else, you need a plan, this talk will help.
The word just came down from the VP - you need a mobile app and you need it yesterday. Wait, you've never built a mobile app...it's pretty much the same thing as you've built before just smaller right? Wrong. The mobile experience is different and far less forgiving. How do you design an application for touch? How does that differ from a mouse? Should you build a mobile app or a mobile web site? This talk will get you started on designing for a new, and exciting, platform. Whether that means iPhone, Android, Windows Phone or something else, you need a plan, this talk will help.
Nathaniel T. Schutta is a senior software engineer focussed on making usable applications. A proponent of polyglot programming, Nate has written two books on Ajax and speaks regularly at various worldwide conferences, No Fluff Just Stuff symposia, universities, and Java user groups. In addition to his day job, Nate is an adjunct professor at the University of Minnesota where he teaches students to embrace dynamic languages.
Very few applications stand alone anymore. Rather, they are combined together to form holistic systems that perform complex business functions. One of the big challenges when integrating applications is choosing the right integration styles and usage patterns. In this session we will explore various techniques and patterns for application integration, and look at what purpose and role open source integration hubs such as Camel and Mule play in the overall integration architecture space (and how to properly use them!). Through actual integration scenarios and live coding examples using Apache Camel you will learn which integration styles and patterns to use for your system and how open source integration hubs play an part in your overall integration strategy
Agenda:
Mark Richards is an Independent Consultant working in the field as an Enterprise, Integration, and Application Architect, where he is involved in the architecture, design, and implementation of SOA, EDA, messaging, and other architectures, primarily in the Java platform. Previously, Mark was an Executive IT Architect with IBM, where he worked as an SOA and enterprise architect in the financial services area. He has been involved in the software industry since 1984 and has many battle scars to show for it. Mark served as the President of the Boston Java User Group in 1997 and 1998, and the President of the New England Java Users Group from 1999 thru 2003. Mark is the author of the book Java Message Service (2nd edition) from O'Reilly. He is also the author of Java Transaction Design Strategies, contributing author of the book 97 Things Every Software Architect Should Know from O'Reilly, contributing author of NFJS Anthology Volume 1, and contributing author of NFJS Anthology Volume 2. Mark has many architect and developer certifications, including those from IBM, Sun, The Open Group, and Oracle. He is a regular conference speaker at the No Fluff Just Stuff Symposium Series and speaks at other conferences and user groups around the world. When he is not working Mark can usually be found hiking with his wife and two daughters in the White Mountains or along the Appalachian Trail.
Groovy has been around for some time and is generally recognized as a highly productive object-oriented language with a tight association with Java. Groovy seems to be going through a second wave of popularity with a more diverse repertoire of benefits, including building, deploying and testing, in addition to rapid web development. The fastest growth of productivity tools are all powered by Groovy. Discover the Groovy Truth!
This session will start with a short introduction to Groovy and will walk through a number of groovy tools that can increase the speed of delivery of any Java software development shop. We will review the following Groovy Power Tools: - Spock - the best unit testing and mocking tool available to a Java developer leveraging the value of a testing DSL - Gradle - the fasting growing build tool for compiling and building Java-eco system projects. - Geb - A groovy DSL on top of Selenium for driving web testing - Glu - The groovy way to deploy and manage Java deployments in production - Grails - The groovy way to develop a web application against a relational database
Ken has been a practitioner and instructor of RUP since the late 1990s, and an extreme programmer and coach since the middle 2000s. Ken has worked with Fortune 500 companies to small startups in the roles of developer, designer, application architect and enterprise architect. Ken's current focus is on enterprise system automation and continuous delivery systems.
Ken is an international speaker on the subject of software engineering speaking at conferences such as JavaOne, JavaZone, Jax-India, and The Strange Loop. He is a regular speaker with NFJS where he is best known for his architecture and security hacking talks. In 2009, Ken was honored by being awarded the JavaOne Rockstar Award at JavaOne in SF, California and the JavaZone Rockstar Award at JavaZone in Oslo, Norway as the top ranked speaker.
The first in a series of talks that are part of an arc covering next-generation information-oriented, flexible, scalable architectures. The ideas presented apply to both external and internal-facing systems.
The REpresentational State Transfer (REST) architectural style has emerged as a winning strategy for building scalable, flexible, resilient systems that lead with an information focus. Far from being the simple "Web Services through URLs" idea many people have about them, REST-based systems require a new perspective, a fair amount of consideration and the discipline to look beyond simple point-to-point interactions.
The benefits are exciting and provide a gateway to a whole new world of information technology. This first talk will be an introductory session covering the basics of the REST architectural style.
Brian Sletten is a liberal arts-educated software engineer with a focus on using and evangelizing forward-leaning technologies. He has a background as a system architect, a developer, a security consultant, a mentor, a team lead, an author and a trainer and operates in all of those roles as needed. His experience has spanned the online game, defense, finance, academic, hospitality, retail and commercial domains. He has worked with a wide variety of technologies such as network matrix switch controls, 3D simulation/visualization, Grid Computing, P2P and Semantic Web-based systems. He has a B.S. in Computer Science from the College of William and Mary. He is President of Bosatsu Consulting, Inc. and lives in Los Angeles, CA.
He focuses on web architecture, resource-oriented computing, social networking, the Semantic Web, scalable systems, security consulting and other technologies of the late 20th and early 21st Centuries.
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.
In this session, we'll talk about Cassandra's data model, look at its query idioms, talk about how to deploy it, and look at use cases in which it is an appropriate data storage solution. We'll study its origins in the Amazon Dynamo project and Google's BigTable, and learn how its architecture helps us achieve the gold standard of scalability: horizontal scalability on commodity hardware. You'll leave prepared to begin experimenting with Cassandra immediately and planning its adoption in your next project.
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.
Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. This workshop focuses on the Deployment Pipeline concept from Continuous Delivery.
In this workshop I move from release back through testing to development practices, analyzing at each stage how to improve collaboration and increase feedback so as to make the delivery process as fast and efficient as possible. At the heart of the workshop is a pattern called the deployment pipeline, which involves the creation of a living system that models your organization's value stream for delivering software. I spend the first half of the workshop introducing this pattern, and discussing how to incrementally automate the build, test and deployment process, culminating in continuous deployment.
Neal is 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.
Mobile is the next big thing and your company needs to there. But what does there actually entail? Should you build a native app? On which platforms? Do you have the skills for that? What about the web? Can you deliver an awesome experience using nothing but a mobile web browser? This talk will help you navigate these treacherous waters. We'll discuss the pros and cons of the various approaches and give you a framework for choosing.
Mobile is the next big thing and your company needs to there. But what does there actually entail? Should you build a native app? On which platforms? Do you have the skills for that? What about the web? Can you deliver an awesome experience using nothing but a mobile web browser? This talk will help you navigate these treacherous waters. We'll discuss the pros and cons of the various approaches and give you a framework for choosing.
Nathaniel T. Schutta is a senior software engineer focussed on making usable applications. A proponent of polyglot programming, Nate has written two books on Ajax and speaks regularly at various worldwide conferences, No Fluff Just Stuff symposia, universities, and Java user groups. In addition to his day job, Nate is an adjunct professor at the University of Minnesota where he teaches students to embrace dynamic languages.
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.
Ken has been a practitioner and instructor of RUP since the late 1990s, and an extreme programmer and coach since the middle 2000s. Ken has worked with Fortune 500 companies to small startups in the roles of developer, designer, application architect and enterprise architect. Ken's current focus is on enterprise system automation and continuous delivery systems.
Ken is an international speaker on the subject of software engineering speaking at conferences such as JavaOne, JavaZone, Jax-India, and The Strange Loop. He is a regular speaker with NFJS where he is best known for his architecture and security hacking talks. In 2009, Ken was honored by being awarded the JavaOne Rockstar Award at JavaOne in SF, California and the JavaZone Rockstar Award at JavaZone in Oslo, Norway as the top ranked speaker.
Scala is a statically typed, fully OO, hybrid functional language that provides highly expressive syntax on the JVM. It is great for pattern matching, concurrency, and simply writing concise code for everyday tasks. If you're a Java programmer intrigued by this language and are interested in exploring further, this section is for you.
We will go through a rapid overview of the language, look at its key strengths and capabilities, and see how you can use this language for your day-to-day programming. This session will be coding intensive, so be ready for some serious Scala syntax and idioms.
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).
The second in a series of talks that are part of an arc covering next-generation information-oriented, flexible, scalable architectures. The ideas presented apply to both external and internal-facing systems.
People already familiar with REST (or who have attended the first session) will be walked through the deeper topics of building Level 3 Hypermedia-based RESTful systems, security, content negotiation, etc.
Brian Sletten is a liberal arts-educated software engineer with a focus on using and evangelizing forward-leaning technologies. He has a background as a system architect, a developer, a security consultant, a mentor, a team lead, an author and a trainer and operates in all of those roles as needed. His experience has spanned the online game, defense, finance, academic, hospitality, retail and commercial domains. He has worked with a wide variety of technologies such as network matrix switch controls, 3D simulation/visualization, Grid Computing, P2P and Semantic Web-based systems. He has a B.S. in Computer Science from the College of William and Mary. He is President of Bosatsu Consulting, Inc. and lives in Los Angeles, CA.
He focuses on web architecture, resource-oriented computing, social networking, the Semantic Web, scalable systems, security consulting and other technologies of the late 20th and early 21st Centuries.
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."
In this session we will learn how to systematically explore a codebase. We'll look at what tools are available to help us out, slinging some wicked shell-fu along the way. We'll look at "code islands" and "code bridges," and how to construct a "map of the code." We'll also examine the wisdom that thought leaders like Michael Feathers and Dave Thomas have leant to this subject.
Once we've gained a thorough understanding of what we have in front of us, we'll learn approaches for getting the system under test and refactoring so that we can start to pick up the pace and respond to user requirements without making a bigger mess. You'll leave this session well prepared to tackle the next "big ball of mud" that gets dumped on your desk.
Matt Stine is an Enterprise Java/Cloud consultant based in Memphis, TN. He is a twelve year veteran of the enterprise software and web development industries, with experience spanning the healthcare, biomedical research, e-commerce, and retail store domains.
Matt has spoken at conferences ranging from JavaOne to CodeMash and has published several articles for Agile Zone, GroovyMag and NFJS the Magazine, as well as the Selenium 2.0 DZone Refcard. Matt is also the founder of the Memphis/Mid-South Java User Group.
His current areas of interest include lean/agile software development, software architecture, mobile application development and functional languages.
Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. This workshop focuses on the agile infrastructure required to implement a deployment pipeline and continuous delivery.
In this workshop, I introduce agile infrastructure, including the use of Puppet to automate the management of testing and production environments. We discuss automating data management, including migrations. Development practices that enable incremental development and delivery will be covered at length, including a discussion of why branching is inimical to continuous delivery, and how practices such as branch by abstraction and componentization provide superior alternatives that enable large and distributed teams to deliver incrementally.
Neal is 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.
Technology changes, it's a fact of life. And while many developers are attracted to the challenge of change, many organizations do a particularly poor job of adapting. We've all worked on projects with, ahem, less than new technologies even though newer approaches would better serve the business. But how do we convince those holding the purse strings to pony up the cash when things are "working" today? At a personal, how do we keep up with the change in our industry?
This talk will explore ways to stay sharp as a software professional. We'll talk about how a technology radar can help you stay marketable (and enjoying your career) and how we can use the same technique to help our companies keep abreast of important changes in the technology landscape. Of course it isn't enough to just be aware, we have to drive change - but how? This talk will consider ways we can influence others and lead change in our organizations.
Nathaniel T. Schutta is a senior software engineer focussed on making usable applications. A proponent of polyglot programming, Nate has written two books on Ajax and speaks regularly at various worldwide conferences, No Fluff Just Stuff symposia, universities, and Java user groups. In addition to his day job, Nate is an adjunct professor at the University of Minnesota where he teaches students to embrace dynamic languages.
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.
In his foreward to the first edition, Guy Steele writes about the importance of learning three aspects of any language: grammar, vocabulary, and idioms. Unfortunately many programmers stop learning after mastering the first two. Effective Java is your guide to understanding idiomatic Java programming.
Effective Java is organized into 78 standalone "items," all of which will be impossible to cover in one session. Instead I've chosen a subset of the most important techniques and practices that are commonly missed by today's Java programmers. You'll pick from a menu and decide where we'll head. Regardless of the path we take, you'll leave this session thoroughly equipped to write better Java code tomorrow!
Matt Stine is an Enterprise Java/Cloud consultant based in Memphis, TN. He is a twelve year veteran of the enterprise software and web development industries, with experience spanning the healthcare, biomedical research, e-commerce, and retail store domains.
Matt has spoken at conferences ranging from JavaOne to CodeMash and has published several articles for Agile Zone, GroovyMag and NFJS the Magazine, as well as the Selenium 2.0 DZone Refcard. Matt is also the founder of the Memphis/Mid-South Java User Group.
His current areas of interest include lean/agile software development, software architecture, mobile application development and functional languages.
As a web application developer, most of the focus is on the user stories and producing business value for your company or clients. Increasingly however the world wide web is more like the wild wild web which is an increasingly hostile environment for web applications. It is absolutely necessary for web application teams to have security knowledge, a security model and to leverage proper security tools.
This training workshop on security will provide an overview of the security landscape starting with the OWASP top ten security concerns with current real world examples of each of these attack vectors. The first session will consist of a demonstration and labs using hacker tools to get an understanding of how a hacker thinks. It will include a walk through of the ESAPI toolkit as an example of how to solve a number of these security concerns including hands-on labs using the OWASP example swingset.
The workshop will include several hands on labs from the webgoat project in order to better understand the threats that are ever so common today.
Attendees will come away with the following skills / capabilities: - threat modeling - security audit plan - introduction to Pen testing - key / certificate management - fixing web application security issues
Don't be the weakest link on the web!
Ken has been a practitioner and instructor of RUP since the late 1990s, and an extreme programmer and coach since the middle 2000s. Ken has worked with Fortune 500 companies to small startups in the roles of developer, designer, application architect and enterprise architect. Ken's current focus is on enterprise system automation and continuous delivery systems.
Ken is an international speaker on the subject of software engineering speaking at conferences such as JavaOne, JavaZone, Jax-India, and The Strange Loop. He is a regular speaker with NFJS where he is best known for his architecture and security hacking talks. In 2009, Ken was honored by being awarded the JavaOne Rockstar Award at JavaOne in SF, California and the JavaZone Rockstar Award at JavaZone in Oslo, Norway as the top ranked speaker.
I call the JDK concurrency API as the synchronize and suffer model. Fortunately, you don't have to endure that today. You have some nice options, brought to prominence on the JVM by Scala and Clojure.
In this workshop, learn how to program with Actors and STM using Akka, a powerful and popular library created using Scala but usable from any language on the JVM. You have a choice to pick the language you like in this workshop, and learn how to use these powerful concurrency models.
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).
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.
This session describes the current thinking about emergent design, discovering design in code. The hazard of Big Design Up Front in software is that you don't yet know what you don't know, and design decisions made too early are just speculations without facts. Emergent design techniques allow you to wait until the last responsible moment to make design decisions. This talk covers four areas: emergent design enablers, battling things that make emergent design hard, finding idiomatic patterns, and how to leverage the patterns you find. It includes both proactive (test-driven development) and reactive (refactoring, metrics, visualizations, tests) approaches to discovering design, and discusses the use of custom attributes, DSLs, and other techniques for utilizing them. The goal of this talk is to provide nomenclature, strategies, and techniques for allowing design to emerge from projects as they proceed, keeping you code in sync with the problem domain. This talk shows lots of examples of how to make this concept work in your environment.
Neal is 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.
The Web is changing faster than you can imagine and it is going to continue to do so. Webs of Documents are giving way to machine-processable Webs of Information. We no longer care about data containers, we only care about data and how it connects to what we already know.
Perhaps the concepts of the Semantic Web initiative are new to you. Or perhaps you have been hearing for years how great technologies like RDF, SPARQL, SKOS and OWL are and have yet to see anything real come out of it.
Whether you are jazzed or jaded, this workshop will provide you with the understanding of a technological tidal wave that is heading in your direction.
In this workshop, we will:
Explain the Web and Web architecture at a deeper level Apply Web and Semantic Web technologies in the Enterprise and make them work together Integrate structured and unstructured information Create good, long-lived logical names (URIs) for information and services Use the Resource Description Framework (RDF) to integrate documents, services and databases Use popular RDF vocabularies such as Dublin Core, FOAF, DOAP Query RDF and non-RDF datastores with the SPARQL query language Model and Do Inference with the Web Ontology Language (OWL)
Bring your laptops. This is a hands-on workshop.
Brian Sletten is a liberal arts-educated software engineer with a focus on using and evangelizing forward-leaning technologies. He has a background as a system architect, a developer, a security consultant, a mentor, a team lead, an author and a trainer and operates in all of those roles as needed. His experience has spanned the online game, defense, finance, academic, hospitality, retail and commercial domains. He has worked with a wide variety of technologies such as network matrix switch controls, 3D simulation/visualization, Grid Computing, P2P and Semantic Web-based systems. He has a B.S. in Computer Science from the College of William and Mary. He is President of Bosatsu Consulting, Inc. and lives in Los Angeles, CA.
He focuses on web architecture, resource-oriented computing, social networking, the Semantic Web, scalable systems, security consulting and other technologies of the late 20th and early 21st Centuries.
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.
Effective Java is organized into 78 standalone "items," all of which will be impossible to cover in one session. Instead I've chosen a subset of the most important techniques and practices that are commonly missed by today's Java programmers.
*In Part II of this session, we'll cover those items we were unable to reach during Part I. We'll follow that up with a dive into the new features available in Java 7, describing new idioms for effective Java programming in the following areas:
Matt Stine is an Enterprise Java/Cloud consultant based in Memphis, TN. He is a twelve year veteran of the enterprise software and web development industries, with experience spanning the healthcare, biomedical research, e-commerce, and retail store domains.
Matt has spoken at conferences ranging from JavaOne to CodeMash and has published several articles for Agile Zone, GroovyMag and NFJS the Magazine, as well as the Selenium 2.0 DZone Refcard. Matt is also the founder of the Memphis/Mid-South Java User Group.
His current areas of interest include lean/agile software development, software architecture, mobile application development and functional languages.
The Web is changing faster than you can imagine and it is going to continue to do so. Webs of Documents are giving way to machine-processable Webs of Information. We no longer care about data containers, we only care about data and how it connects to what we already know.
Perhaps the concepts of the Semantic Web initiative are new to you. Or perhaps you have been hearing for years how great technologies like RDF, SPARQL, SKOS and OWL are and have yet to see anything real come out of it.
Whether you are jazzed or jaded, this workshop will provide you with the understanding of a technological tidal wave that is heading in your direction.
In this workshop, we will:
Explain the Web and Web architecture at a deeper level Apply Web and Semantic Web technologies in the Enterprise and make them work together Integrate structured and unstructured information Create good, long-lived logical names (URIs) for information and services Use the Resource Description Framework (RDF) to integrate documents, services and databases Use popular RDF vocabularies such as Dublin Core, FOAF, DOAP Query RDF and non-RDF datastores with the SPARQL query language Model and Do Inference with the Web Ontology Language (OWL)
Bring your laptops. This is a hands-on workshop.
Brian Sletten is a liberal arts-educated software engineer with a focus on using and evangelizing forward-leaning technologies. He has a background as a system architect, a developer, a security consultant, a mentor, a team lead, an author and a trainer and operates in all of those roles as needed. His experience has spanned the online game, defense, finance, academic, hospitality, retail and commercial domains. He has worked with a wide variety of technologies such as network matrix switch controls, 3D simulation/visualization, Grid Computing, P2P and Semantic Web-based systems. He has a B.S. in Computer Science from the College of William and Mary. He is President of Bosatsu Consulting, Inc. and lives in Los Angeles, CA.
He focuses on web architecture, resource-oriented computing, social networking, the Semantic Web, scalable systems, security consulting and other technologies of the late 20th and early 21st Centuries.
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.
ThoughtWorks' Technical Advisory Board creates a "technolgy radar" 3 or 4 times a year. It is a working document that helps the company as a whole make decisions about what technologies are interesting and where we should be spending our time. This is a useful exercise both for you and your company. This session describes the process we use and how to adapt it to both your company and, more importantly, yourself. For career risk mitigation, you must know what the next big thing is, or at least be able to narrow it to a reasonable list. 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.
Neal is 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.
Mutability is something we're quite used to in Java. Sharing is a good thing. However, shared mutability is pure devil's work. If we remove shared mutability, all the problems of concurrent go away. In practice, however, it's hard to completely get rid of shared mutability. This is where STM comes in with managed shared mutable variables. In this presentation we will take an example driven approach to dive deep into STM, look at what it has to offer, explore different implementations, and how we can design concurrent applications without any explicit locks.
.
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).
As a web application developer, most of the focus is on the user stories and producing business value for your company or clients. Increasingly however the world wide web is more like the wild wild web which is an increasingly hostile environment for web applications. It is absolutely necessary for web application teams to have security knowledge, a security model and to leverage proper security tools.
This training workshop on security will provide an overview of the security landscape starting with the OWASP top ten security concerns with current real world examples of each of these attack vectors. The first session will consist of a demonstration and labs using hacker tools to get an understanding of how a hacker thinks. It will include a walk through of the ESAPI toolkit as an example of how to solve a number of these security concerns including hands-on labs using the OWASP example swingset.
The workshop will include several hands on labs from the webgoat project in order to better understand the threats that are ever so common today.
Attendees will come away with the following skills / capabilities: - threat modeling - security audit plan - introduction to Pen testing - key / certificate management - fixing web application security issues
Don't be the weakest link on the web!
Ken has been a practitioner and instructor of RUP since the late 1990s, and an extreme programmer and coach since the middle 2000s. Ken has worked with Fortune 500 companies to small startups in the roles of developer, designer, application architect and enterprise architect. Ken's current focus is on enterprise system automation and continuous delivery systems.
Ken is an international speaker on the subject of software engineering speaking at conferences such as JavaOne, JavaZone, Jax-India, and The Strange Loop. He is a regular speaker with NFJS where he is best known for his architecture and security hacking talks. In 2009, Ken was honored by being awarded the JavaOne Rockstar Award at JavaOne in SF, California and the JavaZone Rockstar Award at JavaZone in Oslo, Norway as the top ranked speaker.
The single most important tool in any developers toolbox isn't a fancy IDE or some spiffy new language - it's our brain. Despite ever faster processors with multiple cores and expanding amounts of RAM, we haven't yet created a computer to rival the ultra lightweight one we carry around in our skulls - in this session we'll learn how to make the most of it. We'll talk about why multitasking is a myth, the difference between the left and the right side of your brain, the importance of flow and why exercise is good for more than just your waist line.
The single most important tool in any developers toolbox isn't a fancy IDE or some spiffy new language - it's our brain. Despite ever faster processors with multiple cores and expanding amounts of RAM, we haven't yet created a computer to rival the ultra lightweight one we carry around in our skulls - in this session we'll learn how to make the most of it. We'll talk about why multitasking is a myth, the difference between the left and the right side of your brain, the importance of flow and why exercise is good for more than just your waist line.
Nathaniel T. Schutta is a senior software engineer focussed on making usable applications. A proponent of polyglot programming, Nate has written two books on Ajax and speaks regularly at various worldwide conferences, No Fluff Just Stuff symposia, universities, and Java user groups. In addition to his day job, Nate is an adjunct professor at the University of Minnesota where he teaches students to embrace dynamic languages.
Peter is Senior VP Engineering and Senior Fellow at General Assembly, a campus for technology, design, and entrepreneurship. He is responsible for hiring and managing an engineering team and is involved in the development and teaching of the technology curriculum.
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.
Neal is 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.
Victor Grazi is Vice President of Java Consultancy at Credit Suisse Architecture.
He is a Java evangelist and has been building real time financial systems in Java since JDK version 1.02
Tiffany Lentz, a Principal Consultant and Program Manager, is proudly employed at ThoughtWorks, a global IT services firm focused on end-to-end software delivery. She has worked extensively for large clients in the US, Canada, and China, delivering solutions for both disparate system delivery projects and agile enablement and organizational transformation efforts to incorporate and enhance efficiency and delivery processes. She is an author, mentor, coach and trainer of agile methodologies, processes, and practices. Tiffany is the author of Iteration Management Chapter in the ThoughtWorks anthology book and believes that the Iteration Manager's job is to build a well-oil delivery machine.
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.
Mark Richards is an Independent Consultant working in the field as an Enterprise, Integration, and Application Architect, where he is involved in the architecture, design, and implementation of SOA, EDA, messaging, and other architectures, primarily in the Java platform. Previously, Mark was an Executive IT Architect with IBM, where he worked as an SOA and enterprise architect in the financial services area. He has been involved in the software industry since 1984 and has many battle scars to show for it. Mark served as the President of the Boston Java User Group in 1997 and 1998, and the President of the New England Java Users Group from 1999 thru 2003. Mark is the author of the book Java Message Service (2nd edition) from O'Reilly. He is also the author of Java Transaction Design Strategies, contributing author of the book 97 Things Every Software Architect Should Know from O'Reilly, contributing author of NFJS Anthology Volume 1, and contributing author of NFJS Anthology Volume 2. Mark has many architect and developer certifications, including those from IBM, Sun, The Open Group, and Oracle. He is a regular conference speaker at the No Fluff Just Stuff Symposium Series and speaks at other conferences and user groups around the world. When he is not working Mark can usually be found hiking with his wife and two daughters in the White Mountains or along the Appalachian Trail.
Nathaniel T. Schutta is a senior software engineer focussed on making usable applications. A proponent of polyglot programming, Nate has written two books on Ajax and speaks regularly at various worldwide conferences, No Fluff Just Stuff symposia, universities, and Java user groups. In addition to his day job, Nate is an adjunct professor at the University of Minnesota where he teaches students to embrace dynamic languages.
Ken has been a practitioner and instructor of RUP since the late 1990s, and an extreme programmer and coach since the middle 2000s. Ken has worked with Fortune 500 companies to small startups in the roles of developer, designer, application architect and enterprise architect. Ken's current focus is on enterprise system automation and continuous delivery systems.
Ken is an international speaker on the subject of software engineering speaking at conferences such as JavaOne, JavaZone, Jax-India, and The Strange Loop. He is a regular speaker with NFJS where he is best known for his architecture and security hacking talks. In 2009, Ken was honored by being awarded the JavaOne Rockstar Award at JavaOne in SF, California and the JavaZone Rockstar Award at JavaZone in Oslo, Norway as the top ranked speaker.
Brian Sletten is a liberal arts-educated software engineer with a focus on using and evangelizing forward-leaning technologies. He has a background as a system architect, a developer, a security consultant, a mentor, a team lead, an author and a trainer and operates in all of those roles as needed. His experience has spanned the online game, defense, finance, academic, hospitality, retail and commercial domains. He has worked with a wide variety of technologies such as network matrix switch controls, 3D simulation/visualization, Grid Computing, P2P and Semantic Web-based systems. He has a B.S. in Computer Science from the College of William and Mary. He is President of Bosatsu Consulting, Inc. and lives in Los Angeles, CA.
He focuses on web architecture, resource-oriented computing, social networking, the Semantic Web, scalable systems, security consulting and other technologies of the late 20th and early 21st Centuries.
Matt Stine is an Enterprise Java/Cloud consultant based in Memphis, TN. He is a twelve year veteran of the enterprise software and web development industries, with experience spanning the healthcare, biomedical research, e-commerce, and retail store domains.
Matt has spoken at conferences ranging from JavaOne to CodeMash and has published several articles for Agile Zone, GroovyMag and NFJS the Magazine, as well as the Selenium 2.0 DZone Refcard. Matt is also the founder of the Memphis/Mid-South Java User Group.
His current areas of interest include lean/agile software development, software architecture, mobile application development and functional languages.
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).
Craig Walls has been professionally developing software for almost 18 years (and longer than that for the pure geekiness of it). He 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, 4 birds and 3 dogs.