You are viewing details from a past event. Please check our upcoming event schedule if you are looking for current content.

Kenneth Kousen

President, Kousen IT, Inc.

Ken Kousen is a Java Champion, several time JavaOne Rock Star, and a Grails Rock Star. He is the author of the Pragmatic Library books “Mockito Made Clear” and “Help Your Boss Help You,” the O'Reilly books “Kotlin Cookbook”, “Modern Java Recipes”, and “Gradle Recipes for Android”, and the Manning book “Making Java Groovy”. He also has recorded over a dozen video courses for the O'Reilly Learning Platform, covering topics related to Android, Spring, Java, Groovy, Grails, and Gradle.

His academic background include BS degrees in Mechanical Engineering and Mathematics from M.I.T., an MA and Ph.D. in Aerospace Engineering from Princeton, and an MS in Computer Science from R.P.I. He is currently President of Kousen IT, Inc., based in Connecticut.

Presentations

Gradle Workshop

9:00 AM MDT

The Gradle build tool has been adopted by the vast majority of open source projects and is growing rapidly in industry as well. Gradle provides a powerful DSL for customizing and managing your build, with flexible configuration features and sophisticated dependency management. Gradle is also actively supported by a commercial entity, and in partnership with companies like Netflix and LinkedIn is currently being optimized for performance.

This workshop is designed to get you started on Gradle, from its basic capabilities up through advanced techniques like build scans, the build cache, and resolutions strategies.

Topics will include:

  • Projects and tasks
  • Initialization, configuration, and execution times
  • File system capabilities
  • Incremental builds
  • Script and binary plugins
  • Dependency management
  • Multi-project builds
  • Build scans
  • The build cache
  • Creating your own plugin

Functional Java, Part 1

8:30 AM MDT

Understand Java from a functional programming point of view. This part covers the basics of lambdas and streams, emphasizing functional programming by transforming collections using the stream approach.

Also includes method references and static and default methods in interfaces.

Functional Java, Part 2

10:30 AM MDT

Functional features in Java, including parallel streams, the java.util.function package, the Optional data type, and reduction operations.

The talk also covers the new date and time package based on Joda time, as well as collectors and implementing the Collector interface.

Refactoring to Java 8

1:00 PM MDT

Java SE 8 introduces many new features that can simplify your code. Using streams, lambdas, and the new Optional type all change the way we write Java. In this presentation, we'll work through a series of examples that show how to rewrite existing code from Java 7 or earlier using the new Java 8 approach.

Examples will include replacing anonymous inner classes with lambdas, switching from iterating over collections into transforming streams, using immutables wherever possible, lazy evaluation, and more.

Special Topics In Java

2:45 PM MDT

This talk will focus on interesting features of Java 8 that go beyond the basics. Topics will include:

  • the map, filter, and flatMap methods
  • simple reductions
  • extracting and combining streams
  • using Optional as intended
  • grouping and partitioning
  • downstream collectors
  • the java.time package
  • generics in detail

Sample code will be provided to illustrate all the techniques, along with tests and a build file.

Beyond Managing Your Manager

8:30 PM MDT

This is a revised and updated version of the previous talk, with current thinking from practice and the literature. The talk presents why conflicts with your manager are inevitable based on differences in priorities and perspectives, and how to plan for them. The goal is to show you how to build the loyalty relationship that allows you to get what you need when you need it.

Topics covered will include diagnosing communication styles, lessons from game theory, working within the organizational hierarchy, and lessons on how to build a relationship with your manager that still allows you the freedom to express yourself and what you really want.

Groovy and Java 8

9:00 AM MDT

Groovy works cleanly with Java 8, but goes beyond it. In additional to basic functional programming, Groovy also provides techniques to use memoization, trampolining, tail recursion, and closure currying. Groovy also makes it easy to use closures to process relational data, both with simple queries and when calling stored procedures.

Groovy also includes closure composition to assemble functions, as well as traits, which go beyond the new interface capabilities in Java 8. All of these features will be demonstrated, along with tests.

Gradle In Depth

11:00 AM MDT

Gradle is the build tool of choice in the open source world, and rapidly becoming the standard in industry as well. Anyone who works with Gradle on a Java project knows the basics of the Java plugin and how to write simple tasks in Groovy. Gradle can do much more, however. This talk will demonstrate how to write your own custom task classes and how to create Gradle plugins from them. Other Gradle features will be demonstrated as well, including file manipulation, incremental builds, generating the Grade wrapper, and resolving conflicts in dependencies.

Gradle Inc also provides a free build scan capability to analyze build files. This too will be demonstrated, as well as profiling your build, determining dependencies, and more.

Gradle Recipes for Android

1:30 PM MDT

Android applications no longer use Ant or IDE builds. The new build mechanism is based on Gradle, the popular build tool from the Groovy ecosystem. This talk will introduce Gradle to Android developers and show how easy it is to integrate into Android projects.

The latest version of the Android Studio IDE will be used to develop applications. Topics will include using the Android plugin for Gradle, adding dependencies and alternate repositories, creating custom tasks, implementing both unit and integration tests, using alternative build types, product flavors and variants, and more.

Books

Modern Java Recipes: Simple Solutions to Difficult Problems in Java 8 and 9

by Ken Kousen

The introduction of functional programming concepts in Java SE 8 was a drastic change for this venerable object-oriented language. Lambda expressions, method references, and streams fundamentally changed the idioms of the language, and many developers have been trying to catch up ever since. This cookbook will help. With more than 70 detailed recipes, author Ken Kousen shows you how to use the newest features of Java to solve a wide range of problems.

For developers comfortable with previous Java versions, this guide covers nearly all of Java SE 8, and includes a chapter focused on changes coming in Java 9. Need to understand how functional idioms will change the way you write code? This cookbook—chock full of use cases—is for you.

Recipes cover:

  • The basics of lambda expressions and method references
  • Interfaces in the java.util.function package
  • Stream operations for transforming and filtering data
  • Comparators and Collectors for sorting and converting streaming data
  • Combining lambdas, method references, and streams
  • Creating instances and extract values from Java’s Optional type
  • New I/O capabilities that support functional streams
  • The Date-Time API that replaces the legacy Date and Calendar classes
  • Mechanisms for experimenting with concurrency and parallelism

Gradle Recipes for Android

by Ken Kousen

Using the Android Studio IDE and the Gradle build tool will make Android app development much simpler—as long as you know your way around Gradle. This practical guide shows you how Gradle works with Android so that you can use it effectively on your projects. You’ll learn ways to customize project layouts, add dependencies, and even generate multiple different versions of your application.

  • Use Gradle independently and from with the new preferred IDE, Android Studio
  • Integrate tests into standard Android project builds
  • Easily customize builds to add popular third-party libraries as dependencies
  • Generate artifacts with various properties, like debug or release, and different flavors, like paid or free

Making Java Groovy

by Ken Kousen

Summary

Making Java Groovy is a practical handbook for developers who want to blend Groovy into their day-to-day work with Java. It starts by introducing the key differences between Java and Groovy—and how you can use them to your advantage. Then, it guides you step-by-step through realistic development challenges, from web applications to web services to desktop applications, and shows how Groovy makes them easier to put into production.

About this Book

You don't need the full force of Java when you're writing a build script, a simple system utility, or a lightweight web app—but that's where Groovy shines brightest. This elegant JVM-based dynamic language extends and simplifies Java so you can concentrate on the task at hand instead of managing minute details and unnecessary complexity.

Making Java Groov is a practical guide for developers who want to benefit from Groovy in their work with Java. It starts by introducing the key differences between Java and Groovy and how to use them to your advantage. Then, you'll focus on the situations you face every day, like consuming and creating RESTful web services, working with databases, and using the Spring framework. You'll also explore the great Groovy tools for build processes, testing, and deployment and learn how to write Groovy-based domain-specific languages that simplify Java development.

Written for developers familiar with Java. No Groovy experience required.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

What's Inside

  • Easier Java
  • Closures, builders, and metaprogramming
  • Gradle for builds, Spock for testing
  • Groovy frameworks like Grails and Griffon

About the Author

Ken Kousen is an independent consultant and trainer specializing in Spring, Hibernate, Groovy, and Grails.

Table of Contents

    PART 1: UP TO SPEED WITH GROOVY
  1. Why add Groovy to Java?
  2. Groovy by example
  3. Code-level integration
  4. Using Groovy features in Java
  5. PART 2: GROOVY TOOLS
  6. Build processes
  7. Testing Groovy and Java projects
  8. PART 3: GROOVY IN THE REAL WORLD
  9. The Spring framework
  10. Database access
  11. RESTful web services
  12. Building and testing web applications

Groovy Fundamentals [Online Code]

by

Number of Videos: 4 hours - 23 lessons
Author: Ken Kousen
User Level: Beginner
Learn the advantages of using Groovy by itself and with existing Java projects. This video workshop takes you into the heart of this JVM language and shows you how Groovy can help increase your productivity through dynamic language features similar to those of Python, Ruby, and Smalltalk. Presenter and Java consultant Ken Kousen demonstrates how writing anything from a simple build script to a full scale application is much easier with Groovy than with Java. You’ll quickly learn how to add Groovy to your projects, and then explore the language through a host of examples and demonstrations. Once you complete this course, check out Ken’s other videos on the subject: Practical Groovy and Mastering Groovy. - Walk through Groovy’s basic data types. Use the “slashy” string syntax to define regular expressions. - Learn how operator overloading in the libraries simplifies your code - Control and customize all the natural defaults and autogenerated code in POGOs - Get demonstrations on using closures, and mixing Java and Groovy classes together - Know when and how to use Abstract Syntax Tree (AST) transformations - Parse and generate both XML and JSON - Access RESTful web services with ease Ken Kousen, President of Kousen IT, Inc., is a technical trainer, mentor, and consultant in all areas related to Java, specializing in Android, Spring, Hibernate/JPA, Groovy, and Grails. He is the author of Making Java Groovy (Manning) and the upcoming O’Reilly book, Gradle for Android.

System Requirements:
  • Supported OS:   [Mac Mountain Lion 10.8, Mac Lion 10.7, Mac Snow Leopard 10.6, Mac Leopard 10.5, Mac OS X, Macintosh]
  • Processor:   Any
  • RAM:   Any
  • Hard Disk:   3GB
  • Video Card:   Any