These are the two biggest Java conferences in the world, both within just 3 calendar weeks of each other. Many of us at ZeroTurnaround attended one or both conferences.
Rather than talk about each conference individually, let’s have some fun and compare the two events, looking at what makes each of them stand out as a top tier conference. After all, it’s not often possible for developers to get to even one of these conferences, let alone both of them! So if you had to pick, which would you go for? We’ll look at cost, sessions, speakers, networking, expo, food, location and more!
You’re probably thinking: hang on, what do you mean learn Java? We’re all successful Java developers, creating marvellous programs from sketchy specifications while drinking unreasonable amounts of coffee? Oh and being paid relatively well to do so! The truth is, you can never have too much knowledge or experience. We can always learn something new and acquire the next necessary skill that will transform our view of the world (or not, but will still be helpful at work).
In this post I’ll try to outline a self-development path that can lead you from being confident with the Java syntax to being better in any software corporation. No doubt most of you already have much more experience than this novice I’m painting a picture of. You should think of this post as an exercise in organising your mental model of what you do and the skills you possess. After all such a reflection might help you realise what you want to do next in life. You might want to think about creating a fantastic startup and become a gazillionaire overnight.
This time the Virtual JUG treated us to an impeccable live coding performance with the amazing and unflappable (even during demos) Trisha Gee.
Generics in Java can often make you ponder the reason of life, why you even program and why you use Java as the platform of choice. In the recent Virtual JUG session Richard and Raoul explain why the signatures of Java generics often look like a crazy regex. They also discuss what developers actually want from generics.
Get ready for another RebelLabs report — coming at you like a shot of caffeine, straight into the brain! More entertaining than Jar Jar Binks’ scriptwriter (OK, a lot more entertaining than that!), yet still as informative as an informant with extremely informative information.
This time around, we focus on Android, a market which many people have identified as the reason for Java’s ongoing popularity.
The report covers the following topics:
- Android Devices and platform considerations for your application
- Performance – how not to make your application crawl
- Clean code patterns – dependency injection, clean architecture, parallelization models, and a reactive approach to creating applications
- Good ways to approach and improve QA in your project
- Tools and technologies that help developers the most: emulators, libraries, and much more
I hope you’re excited about reading it, now!
Developers often complain about the subpar performance of JPA. However if you take a closer look at the performance issues, quite often you will find similar root causes. These can include:
- using too many SQL queries to fetch the required entities from the database, aka the so called n+1 query problem
- updating entities one by one instead of doing it in using a single statement
- doing data heavy processing on the Java side, rather than the database side
In this blogpost I’m going to explain how to use JPA 2.1 features to avoid the problems listed above.
Some say that time flies like a banana. While I don’t have any soft yellow fruit near me to test that theory, it sure does feel like time passes by at an alarming rate. We are already in October and I’m happy to say that we are almost ready to publish the next RebelLabs report — look out for it hitting the streets next week!
This time the topic of the report is the Android platform and everything you ever wanted to know about it. Both the Android platform and its ecosystem are too big to cover in one report, so naturally we had to be selective with the topics. Having looked on the interwebs and talked to Android developers, we concluded that everyone is interested in following best practices. The only problem is, there aren’t any guides out there that explains them in an informative, yet beautiful manner!
Well, until now.
We continue our series of Virtual JUG session recaps with “Java Profiling from the Ground Up” by Nitsan Wakart. Nitsan is the lead performance engineer at Azul Systems, working on the Zing Java VIrtual Machine. So if you have any questions about C4 pauseless garbage collection or any JVM internals, Nitsan is a great person to chat to. Additionally, he’s an avid open source fan, being the main contributor to the JCTools project, the implementations of concurrent and lockless collections, queues and so on.
Without further ado, let’s dig into what we gleaned from this session about Java profiling…
Last week on the vJUG, our very own Oleg Shelajev, head of RebelLabs gave a session called Flavors of Concurrency. It’s an extremely good session which Oleg has given at various conferences and it was time to make it virtual! In this session, Oleg looked at what it means to run in a concurrent fashion, looking at depth into the different models of achieving concurrent code in Java. The session actually came from a blog post which Oleg wrote for RebelLabs back in December 2014 called Flavors of Concurrency in Java: Threads, Executors, ForkJoin and Actors, which is still very relevant today, so make sure you check it out.
Last week the Virtual JUG viewers were lucky enough to be treated to a session about software resilience by one of the most accomplished speakers on the topic. Jonas Boner, the founder and CTO of Typesafe, the original author of the Akka framework, and Java Champion has presented his first vJUG session, titled “Resilience is by Design”. The main focus of the session was the inevitability of failures in large and complex software systems. The natural conclusion is that we, as software developers, have to embrace failure and understand how to design systems that bounce back from failure so not to suffer from them.