Well, I'm at JavaOne again, and after only one day I've already learnt stuff. And, of course, had a great time catching up with interesting people. Here's a summary of the first day.
Superpowered CI with Git - Sarah Goff-Dupont
The Continuous Integration we did at LMAX is quite different to what we do at MongoDB, and I was hoping to get some tips on better CI with Git, especially given feature branches. There was a good overview of development process using branch-per-feature, and a comment that it's nearly impossible to do "pure" CI in this sort of environment. But there was pragmatic advice on how to manage the process and run automated builds in this environment.
The take-home point for me is that I'm going to investigate git hooks to try and streamline our process and run some fast checks more frequently.
Also, Sarah showed using Hipchat in anger - I've now heard this mentioned enough that I'm going to look into it more.
Advanced Unit Testing with Spock
I've spoken before about Spock, and how much I love it. The first section of this talk was a recap of some of the basics, but the second part went on to some features I either previously ignored or wasn't aware of. For example, in the MongoDB Java Driver, we do use annotations to denote slower-running tests so we can select which environments to run in, but we're not using Spock annotations for this. I think there's a lot more we could do with both custom annotations like our @Slow annotation, Spock's built in annotations like @Issue
, and some others which may not yet be in maven central like @Requires
for running language-version tests (e.g. Java 8 tests) and @IgnoreRest
.
I also liked the example of checking the new value against an old value, I can totally see this being useful.
There were other bits and pieces in this talk I'd like to dig into in more detail that I think will be very useful for the Java Driver. But even more importantly, I learnt how to zoom into my screen so I can use that in my own presentation. Pro presentation top tips.
Honestly, if you have even minor testing pains, it's worth finding Ken's talks on Spock, they're great! And a source of inspiration for better testing, as well as a sneaky way to understand why Groovy is awesome.
JCP Awards and Party
But it's not all work at these events. For me, the highlight was the music at at the JCP Awards party. Firstly, we had an award-winning beat-box guy from the UK (sadly I don't remember his name so I can't link to his stuff). An unusual choice for an event like this, but it was a lot of fun. Then there was the live super-band, The Null Pointers, made up of JUG leaders from around the world (including @matkar, @frankgreco, @fguime. I'll admit, I was a little concerned about this idea, but the guys were fantastic, and it was a lot of fun singing along to Free's Alright Now and Radiohead's Creep. Aerosmith is going to have to work hard to compete with that.
...and a quick plug
My main presentation is on Thursday, it's a keyword-tastic live demo of AngularJS, Java & MongoDB. Something always goes wrong in this presentation, so I'm taking bets right now on what that will be.