code4thought

SOFTWARE QUALITY

Unwrapping JCrete 2023
Unconference

03/08/2023
10 MIN READ  /
Author
Stella Varvarigou
Software Consultant
JCrete Unconference is a world-class event and takes place every year around July in Kolymvari (Chania, Crete) since 2010. It is an invitation-only Unconference, where all the cool smart people that have shaped the computing industry gather together to discuss topics around Java and more. Every participant has the chance to learn from the source and grow, by joining small discussion groups where experiences are shared and everyone learns from one another in an informal format.

What is an Unconference?

JCrete uses the format of open spaces unconference:
  • An unconference is a participant-driven meeting. In other words: you decide what topics you want to talk about, and work on, with whom – instead of hoping a “speaker” will address that topic at least briefly.
  • Open Space (“Open Space Technology”, OST) is a specific form of an unconference that starts with an empty schedule. No topics are mandated, no separations are made between “speakers” and “audience”. All participants work out a schedule by suggesting, planning, holding and evaluating sessions, collaboratively.
Since everything is created collaboratively by the participants, obviously it matters which people feel invited, and how to “call” them together. This is one of the reasons that JCrete® is an invitation-only event.
The rules are simple:
  1. Whoever shows up are the right people.
  2. Whenever it starts is the right time.
  3. Whatever happens is the only thing that could have.
  4. Wherever it happens is the right place.
  5. When it’s over, it’s over.
image1
So I was excited when Heinz Kabutz (@heinzkabutz) invited me to join this great event.

The topics

Every day before the Unconference starts, anyone can propose a topic to discuss as everyone is a speaker to the event! So, sessions are chosen and you can decide where to go.
Topics of discussion from all JCrete week
The topics of this year came from several areas of interest, as you can see in the picture and give a sense of what is current: code quality, build tools, open source projects, JVM issues, Functional programming, Best practices, Cloud, Chat GPT & AI and Performance issues. As expected, AI and ChatGPT were the hot topics of interest, but the all time classics were not left behind, covering:
  • Java related topics & Java features
  • Java in Education
  • Cloud
  • Tools & Developer productivity
  • Open source projects
  • Clean code
  • JVM issues
  • Architecture
  • Emerging behaviors of systems
  • Git
  • Functional programming
  • Testing
  • Logging
  • Cobol (!!!)
However, out of the blue for me and not at all expected were topics related to work life balance and how to build a career and a life with purpose, again by experts of the field, implying the need of mental health and life balance, the stereotype of ill- productivity or
  • Are you burned out? What to do
  • Self awareness for introverts
  • Financial independence; building a life of freedom & purpose
Among others, talks were given by:
  • Heinz Kabutz (@heinzkabutz), a well-known figure in the Java programming community. He is a software developer, trainer, and consultant with extensive expertise in Java and related technologies. He is particularly recognized for his work in the area of Java concurrency, multithreading, and the Java Memory Model.
  • Kirk Pepperdine (@javaperftuning), a well-known figure in the Java and performance tuning communities. He is a software performance consultant and trainer with extensive expertise in Java performance optimization and tuning and he is recognized for his work in helping developers and organizations improve the performance of their Java applications. He is particularly known for his in-depth understanding of Java Virtual Machine (JVM) internals, garbage collection algorithms, and multithreading.
  • Cliff Click (@cliff_click), also known as Cliff Click III, who is a prominent computer scientist and software engineer. He is well-known for his contributions to the field of computer programming, particularly in the area of Java Virtual Machines (JVMs) and just-in-time (JIT) compilation and a co-founder of Azul Systems.
  • Marc R. Hoffman (@marcandsweep) who initiated the project of JaCoCo (Java Code Coverage) which later became an official part of the Eclipse Foundation.
  • Martin Thompson (@mjpt777) who is widely recognized for his expertise in optimizing software performance and designing high-throughput, low-latency systems. He has extensive experience in the financial industry, where performance is critical for handling large volumes of transactions in real-time.
  • Simon Bordet (@simonebordet) who is a prominent software developer and a key contributor to the Jetty project. Jetty is an open-source web server and servlet container written in Java. It is widely used in the Java ecosystem and serves as a foundation for many web application servers and frameworks.
  • Sebastian Daschner (@DaschnerS) is a well-known software engineer, Java Champion, and developer advocate. He is recognized for his expertise in Java and Java Enterprise Edition (Java EE), now known as Jakarta EE, as well as his contributions to the broader Java community. He is an active speaker and educator, delivering talks and workshops at various conferences and events.
So let’s have a closer look at some of the topics.

IntelliJ productivity

image2
Dr. Heinz Kabutz (@heinzkabutz), the creator and one of the disorganizers of JCrete, gave a talk on very useful IntelliJ shortcuts and plugins. The most interesting part was when a participant asked for a way to turn off the spelling linter of variables. After realizing that no plugin would have the expected behavior, Heinz sent a direct message to one of the members that developed IntelliJ! Stay tuned!

Build tools

image5
In a talk by Ix-chel Ruiz (@ixchelruiz) the conversation was about build tools and how much they accelerate build time if you know how to use them. What was surprising was the common experience that developers are not so much aware of the build tools capabilities and that they use them by blindly following instructions. Fun fact: no one (almost!) asks developers if they know how to use build tools when being interviewed for a job! What is more, team leaders and managers are not so willing to give to teams the time required to get trained on such tools.

Java on ARM

image4
For cloud installations, Amazon uses ARM processors (Graviton). The talk was coordinated by Marc R. Hoffmann (@marcandsweep), and, among others, what was discussed is the very interesting fact that in versions v8.1 and v.8.2 of those processors, a weird behavior has been noticed with several Java versions. Specifically, since Marc is the creator and Project Lead of the JaCoCo project, he noticed that the stack traces reported by the compiler had different line numbers than the expected ones. Also when using unsafe memory access the application has different behavior than Intel processors. The solution for a seamless transition is to have high test coverage in order to be able to more easily identify the root cause. So, this is a very good example of the value of high testing coverage and the benefits it brings to the table. Since building directly on an ARM processor can be a challenge for the CI/CD pipeline, docker/podman can be used provided that the resources are enough to cover the overhead.

CRaC

image7
Ivar Grimstad (@ivar_grimstad), the Jakarta EE Developer Advocate at Eclipse Foundation, talked about the CRaC (Coordinated Restore at Checkpoint) Project of OpenJDK. CRaC is a research project that focuses on how Java programs can work together with special mechanisms to create “snapshots” of themselves while running. More specifically, a Java program could freeze its execution, take a snapshot of its current state and then resume from that exact point later on. This process is like freezing time for the program. By doing so, CRaC helps you save valuable resources and lower costs, especially in cloud environments and lamda functions, where starting-up and warming-up can be time consuming and expensive. With CRaC, programs can be more efficient and friendlier to your budget! OpenLiberty and Azul have already integrated CRaC in their JDK builds and can be used out of the box.
image6

JReleaser

Andres Almiray (@aalmiray) presented JReleaser. If you want to make your releases faster and more automated, JReleaser is an open source project that may suit your needs. It helps you with packaging, publishing packages, build with the tools of your choice, release to git and make it “official” by announcing the release on Twitter and other services! Releases are automatically tagged. A changelog is generated with all commits since the last tag. All artifacts are uploaded.

JCrete4Kids

image9
After the last day of the main event, a day for kids is organized and sessions are run voluntarily by some of the participants of the main event. Kids of a remote area of Greece have the chance to get familiar with technology next to experienced professionals and this is an important contribution of JCrete to the society of Chania giving something back.
On this day, I had the opportunity to contribute (@svarvarigou) by running one of the two sessions of JCrete4Kids on robotics. The kids would create a Lego construction and then use the LegoBoost application in order to program it. The idea was based on renewable resources of energy. The kids would create a windmill, measure the power of the wind and make it move automatically while using different colors of a flashing light on the construction in order to indicate its strength.
image8
The other session was about creating a video game in tic-80 by Uberto Barbini (@ramtop). Uberto, also, ran some sessions on functional programming in the main event.
It is important to mention that many participants of the event, some of which I have earlier mentioned, have contributed as volunteers to support these sessions for kids. And this is the magic of JCrete!

Wrap up

Last but not least, JCrete was a great experience! The most amazing part is that you can get so familiar with gurus of the community and have a really educational talk, for example, while eating breakfast in a beautiful location! What is more, do not forget the rules. ‘Whoever comes is the right people’ and this means that from a developer to a guru each and every one is an equal member and can contribute in a unique and invaluable way to the event. I would definitely want to be part of it again!
Till next time!
image11
image10