What I Learned at JCrete 2017

Uberto Barbini
Topic of all the talks

I don’t know if JCrete is the best conference in the world, as they say, but for sure is the best conference I ever attended.

This is year it was my third time and I really enjoyed. Friends, Programming and Food!

Thanks to Heinz and the whole team who made this possible: Dimitri, Rabea, Ixchel, Andres and all the others!

My only regret is that I wasn’t familiar with many interesting topics and I need time to digest all these new things. I also mostly chose talks about technologies that I’m not familiar with, so I stayed quiet and I tried to listen rather than speak, which is unusual for me.

Now back at home I’ve started to experiment with all cool stuff I didn’t know and some new crazy ideas.

So here are some notes from my scrapbook:

  • @SanneGrinovero taught me a lot about JBoss modules. They are quite simple to use and they gives you real modules with independent ClassLoaders, so they don’t share the dependencies. It’s a kind of static Osgi which to be honest it’s enough in 90% of the cases. It’s completely open source, very small and it doesn’t require WildFly or any other container.
    Stay tuned for more blogs and a real example about this.
  • Lots of tricks from @aalmiray about using DSL in Groovy.
    Intellij GDSL to use your DSL in the IDE with auto-completion and everything.
    Type-extensions to add new methods to Java classes and primitives like Integer or String. For example 2.Seconds or “www.google.com”.get()
    Fabric8 is something I have definitely to look into. It also has a nice groovy DSL to define Jenkins pipelines.
    Sshoogr is also an interesting Groovy DSL to interact with remote ssh servers and to mock them to test your dev-ops code.
  • Speaking of Docker and CI, I’ve heard many good things about ConcourseCI, I find Jenkins a bit heavy to install, so I have to try this.
  • Lot of discussion with @rickardoberg about CQRS, EventStore and DDD architectures for REST servers. There will be a longer blog dedicated to this. GetEventStore is working quite good in production.
  • Usual mind-blowing session from @mjpt777 about distributed state machines and problems with common distributed protocols. If you need a really fast, I mean few microseconds for connection fast, messaging system look at his project Aeron.
  • Serverless in Java with OpenWhisk, I’d like to try a distributed serverless application with Kotlin functional…
  • Which bring me to Vavr. Really interesting stuff, thanks to @pivovarit to show me how we can have streams made right and pattern matching in Java or Kotlin.
  • @JaroslavTulach showed us amazing stuff with GraalVM and Truffle. Discussing with him made me dreaming of taking a sabbatical and create my own language! I willBut there is so much more. I will definitely blog more about it.
  • Discussions and examples about Java metaprogramming with Annotation Processing, Project Lombok, JavaPoet, ASM, Project Jackpot. Interesting stuff but still quite limited. Apart some specific use case I would rather using Groovy for DSL and fully type my Java code rather than messing up with Java code generation.
  • JShell is a nice addition to Java9. The only problem is Java language itself is not very REPL friendly. Praxislive is an impressive framework for visual animations that allows for coding in real time. I need to experiment how it feels to run your application from JShell and REPL it in Java.
  • Deep discussion with @mariofusco and @simonebordet about Jigsaw. The main disappoint is how incomplete it still is and how many problems it creates. Definitely disappointing.
  • Apart the the “damp squib” Jigsaw, there are many nice new things in Java9, even if nothing radical. JShell, Money and Stacktrace api are my favourite but DTLS and Segmented Code Cache are also very important.
  • @kcpeppe @simonebordet showed how to tune G1 the new garbage collector and some issues with its algorithm. This was a quite hard to follow but really interesting session and probably the one with the most immediate use for me. I’ve already started using his nice tool to visualise GC logs and I will blog about soon.
  • Discussing again about this with @simonebordet he showed me a nice trick to detect memory leaks in Java using PhantomReference. Yet another blog entry for me.
  • @DaschnerS told me about the JOnsen unconference in Japan. Discussing about Java in a Japanese Spa seems super cool! I’ll try to attend in 2018.
  • Using FlameGraph for java profiling seems like a really intelligent idea, I’ll definitely use it next time I’ll profile something, and maybe I will blog about it as well, maybe.
  • A book I have to read: Testing Java Microservices. Testability is a really important aspect of every architecture, but usually is neglected until too late.
  • Finally lots of interesting ideas discussing with Alex Casimir.
    He wants to write a book about replacing MongoDB with Postgres. I would buy one for sure. There are so many hidden gems in Postgres, including json query capability.
  • Graphviz is a easy peasy way to produce graph and diagram for documentation in no time at all. I’ve already started using it and also my colleagues fell in love.
  • An finally, for who loves to take notes on paper, there is a better alternative to Moleskin notebook: Leuchtturm1917

For sure I forgot a lot of stuff! Thanks to everybody and see you next year!

taking the final picture

Uberto Barbini

Written by

JVM and Kotlin independent consultant. Passionate about Code Quality and Functional Programming. Author, public speaker and OpenSource contributor.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade