This year’s Gr8Conf US just finished, running from July 29 to July 31 here in Minneapolis, MN. This is the fifth time I’ve attended Gr8Conf and I’ve enjoyed each one.
This year the conference started on Wednesday with a day of workshops. There were two workshop sessions, one in the morning and one in the afternoon.
In the morning I went to the “Hands on Ratpack” workshop by Ratpack core team member Russell Hart. I’ve seen some talks on Ratpack before but haven’t worked with it yet, so I enjoyed digging into it and building an app with the framework. The handler mechanism that Ratpack uses for delegating requests and creating responses is an interesting paradigm that made it quick and easy to create a basic REST API.
In the afternoon I attended Rob Fletcher’s “Spock Katas” workshop. Rob put together several coding puzzles that we solved test-first using Spock, puzzles like FizzBuzz and generating diamond-shaped lists of strings. Solving the puzzles proved to be an interesting challenge. And along the way we used several of Spock’s handy features, including data-driven testing and mocking collaborators.
Some other highlights for me on Thursday were Burt Beckwith’s talk on customizing the Grails Spring Security plugin and Luke Daley’s talk on Gradle. Both Burt and Luke are experts in their field as well as great speakers. Burt discussed several of the things he had to do to make Spring Security easy for Grails users to configure and use. And as a long-time user of his plugins I definitely appreciate how simple it is to use Spring Security with Grails.
Luke covered a history of Gradle both as a build tool and as a company, then delved into some of the new and upcoming features in Gradle. In 2014 Gradle became the official build tool for Android, which has helped convince folks that may have been skeptical of adopting Gradle that it is here to stay. And recent releases of Gradle have added handy feature such as continuous builds with the ‘-t’ option that came with Gradle 2.5. When using that option Gradle will watch for changes to the file system and rerun the appropriate parts of the build, allowing the developer to keep working without needing to manually rerun the build. That’ll be a big time saver and I look forward to using it.
On Friday, the last day of the conference, I started off with Rob Spieldenner’s talk on Netflix’s Gradle plugins. It was very interesting to learn how Netflix uses Gradle plugins to help reduce the amount of build scripting needed to build software across Netflix’s vast engineering teams. He also covered several of the plugins Netflix has open sourced to help the Gradle community at large.
Next was my talk on functional testing with Geb (link to slides). I started with a quick introduction into the Geb selector syntax then delved into a variety of Geb-related topics that have helped me write Geb tests over the past 3 years. Things like page objects, waiting support, driving the mouse and keyboard, and several others. I also demoed running Geb tests in parallel using Gradle (my Github repos with the code samples are linked at the end of the slides). I enjoyed giving the talk and appreciated the great questions from the audience.
In the afternoon I really enjoyed Mr. Haki’s talk on Groovy goodness. He covered many lesser-known collection methods in Groovy and I look forward to incorporating some of those in my day job. He also live-coded his whole presentation which is a bold move, but he did it very well, much better than I would have done.
Overall Gr8Conf US 2015 was a fantastic conference, and I’m already looking forward to attending Gr8Conf 2016!