This last weekend I had the opportunity to attend Greach 2016. Greach is an international conference about the Groovy language and ecosystem, it's hosted here in Madrid but the conference is 100% in English to successfully attract top speakers and attendees. This was the 5th edition of the conference, consolidated as one of the biggest events worldwide about Groovy.
TLDR; You shouldn't miss this gathering if you have a minimum interest in this technology. Top speakers and high quality content are guaranteed in a confortable and thought provoking environment. Totally worth it.
Everything was (as expected) brilliantly organized thanks to Iván López (@ilopar), Alberto Vilches (@albertovilches) and a lot of Sponsors. The venue changed from previous years, and Teatros Luchana was also a success. Both auditoriums and networking space had the proper dimensions, very good location, a very handy cafeteria, free wardrobe, more than decent food,... Maybe the sponsors area could have been larger, but everything else was more than correct.
Let me summarize:
- A Groovy journey in Open Source, by Guillaume Laforge (@glaforge, Apache Groovy Project VP). Guillaume made an interesting overview of Groovy's history, from its birth in 2003 to its current status as a top Open Source programming language inside the Apache Software Foundation, remarking some of the main milestones. The audience particularly appreciated when he explained extensively about the current situation, when no one has the maintenance and evoultion of Groovy as its full-time paid job.
- The advantages of Grails, by Søren Berg Glasius (@sbglasius, Grails team member and @GR8Conf organizer). Søren made a nice introduction to Grails, explaining what comes out-of-the-box: GORM, a rich controller layer, GSPs technology, an embedded Tomcat, on-the-fly reloading, Spring DI, i18n, transactional services control, easy taglib generation, Gradle and a useful command line tool.
- Geb for Browser Automation, by Jacob Aae Mikkelsen (@jacobaae, Software Engineer at Lego and the hands behind the weekly Grails Diary). I received more than I expected, it was a great talk about advanced tips and tricks using Geb for testing automation. Pro tip: extending GebReportingSpec to make captures before and after each test.
- Groovy Powered Clean Code, by Noam Tenne (@NoamTenne, Backend Engineer at Codefresh). Noam emphasized (as expected) the importance of clean code, focusing on how Groovy itself can improve our codebase: JSON native support, checked exceptions, default imports, AST transformations, extension modules, scripts,...
- Dynamic GORM, by Burt Beckwith (@BurtBeckwith, Grails core committer and plugin developer). Burt showed a lot of internal features of GORM, and how he is arranging some useful improvements in a promising open source library (which will be published shortly).
- Creating and testing REST contracts with Accurest Gradle Plugin, by Olga Maciaszek-Sharma (@olga_maciaszek, Java and Groovy Developer at Codearte). Olga started with an interesting reflection about the absence of contract compliance in REST, and its importance in microservice-based systems. Do we need to test all after the release of any microservice? Do we test them independently mocking everything else? How will we notice if a contract changes? The last part of her talk was an introduction to Accurest, a Gradle plugin to create REST contracts and to verify its compliance with automatically generated Spock tests. Very promising.
- Continuous Delivery as Code with Jenkins and Gradle, by Alex Soto (@alexsotob, Software Engineer at CloudBees). Alex started with the principles behind CD: deliver faster, sooner and better. Then he remarked the main idea of agile: Deliver business value more frequently. After that, he metioned some interesting tools like Serenity to make BDD or Gatling for stress testing, and several tips to improve your CD using Gradle and Jenkins.
- Down the RabbitMQ hole, by Alonso Torres (@alotor, Software engineer at Kaleidos). Alonso amazed the audience with a curious proof of concept making a working WebSocket infrastructure using RabbitMQ (thanks to the STOMP protocol), Spring Integration and Groovy. Awesome.
- Operating Microservices with Groovy, by Andrés Viedma (@andres_viedma, Software Engineer at Tuenti). Andrés uses Groovy mainly for testing and scripting, and explained some examples of how Groovy makes his day thanks to its dynamic nature. As an example he showed, demo included, how he makes dynamic curl petitions using Groovy's JsonRpcClient.
- Grails Keynote, by Graeme Rocher (@GraemeRocher, Grails Project Lead). In this interesting keynote Graeme talked about the upcoming Grails 3 and its importance in the future. How Grails has adapted to the current and future needs through diverse and powerful profiles (rest-api, angular, plugin, web-plugin,...). He made an overview of the REST API profile and it looked awesome: No GSP, specific plugins, specific ui plugins, extensible and customizable Json/Markup views,... Brilliant and very useful.
- Mastering Grails 3 plugins, by Álvaro Sánchez-Mariscal (@alvaro_sanchez, Grails committer at ObjectComputing). Álvaro explained in detail how Grails 3 plugins work, focusing on best practises. He also gave some tips to improve your plugins, with bug emphasis on modularization and tidiness.
- Gradle Glam: Plugins Galore, by Andrés Almiray (@aalmiray, Griffon project lead, Basilisk project lead, Java Champion). Andrés gave a complete review, live demo included, of several plugins for Gradle. I will highlight some of them: versions (to manage dependencies), license (to update license headers and even download the license docs), versioning (to add the git hash to the project manifest), coveralls (produces an awesome report on coverage) and another to publish generated docs (with ascii doctor, for example) automatically to gh-pages in Github.
- Creating ASTT’s the painful truth?, by Mario García (@marioggar, Software Engineer at Kaleidos). Mario dared to talk about AST Transformations, giving an extraordinary explanation of the theory behind them, showing a lot of code and sharing several good & bad experiences with them. He explained when and why its a good idea to apply ASTTs, some improvement tips and even tricks to reduce your AST code using ASTTs or combining them. Impressive as usual.
- Make your Asciidoctor Groovy, by Stephan Classen (Software Engineer at Canoo). Stephan explained Asciidoctor's screenshot extension, and how easy it may be used with Geb to improve your documentation updating automatically every capture in your manuals after each build. Stephan also explained how the conversion process of AsciiDoctor works, in order to hack any step to adapt the resulting document. Very useful info :-)
- Groovy Puzzlers S03 – The Unstoppable Puzzlers Hit Again!, by Noam Tenne (@NoamTenne) and
Andrés AlmirayEl Groovyssimo (@el_groovyssimo). I loved this contest, entertainment at its finest and very very educational. It's based on the mythic Java Puzzlers tradition created by Joshua Bloch and Neal Gafter, but migrated to Groovy mainly by JBaruch. Some intriguing blocks of Groovy code are shown and the audience needs to choose between 4 possible outputs. Obviously it's easy to miss, but hard not to laugh and learn afterwards. Hilarious.
See you in Greach 2017!!