Oracle Blog

Random NetBeans Stuff

JCrete 2014

When you go to any kind of conference, specifically a software programming conference, even more specifically a Java conference, you hold certain truths to be self-evident. For example, there'll be a program, there'll be organizers, there'll be rooms, there'll be chairs. There'll be a ceiling.

Well, no such thing, necessarily, at JCrete, an invitation-only annual conference, held for the 4th time, during this week, that strives to invite around 70 people in total. (Nice and small and intimate, and if it were any larger, the process described in the next paragraphs wouldn't work.) It's the best conference I have attended in, like, well, ever. On the day the conference starts, everyone gets a stack of empty yellow post-its and a pen. Then everyone thinks about two or three topics they'd like to hear or talk about and they all write those topics on their post-its, e.g., "Talking about lambdas: patterns and anti-patterns" or "Docker, Vagrant, Packer" or "What's your documentation process like?" or "Which tools do you use?" or "Programming is hard". And then everyone gets up one by one and introduces their topics to the group, enabling everyone to quickly jot down the name of topics that sound interesting, and then sticks the post-its on the "launch pad", i.e., a big piece of paper on the wall.

After everyone has introduced their topics, the process of moving the post-its into a schedule starts. First, some clusters are created, e.g., some topics are similar to other topics. The organizers, i.e., the 'disorganizers', lead this process of clustering and arranging topics in a schedule, though everyone is in full control over where in the schedule their topics will be convened.

The schedule consists of three sessions per day, in the morning, in four different tracks. (Each track is more like a slot, since sessions within a track don't necessarily have anything to do with each other, i.e., there's no Java EE track, instead, there's simply track 1, 2, 3, and 4.) That way, everyone can spend the afternoon at the beach, which is a big plus of Crete. Each session is convened by whoever submitted the post-it bearing the topic. But the convener sits in the session just like any other attendee. For example, just because you submitted "Docker, Vagrant, Packer" doesn't mean that you know anything about those technologies. It just means you might have some half-formed ideas about what they are and how they relate. The main thing is that you're interested in finding out about them and would like others to share their bits of knowledge with you and the rest. The blind leading the blind? Maybe. But remember that JCrete is invitation-only, meaning that many of the attendees have been invited precisely because they're experts in areas that are likely to be interesting, plus that in any of the sessions you'll find that when you combine everyone's half-sightedness you end up with more insight than you would have gained by sitting in a traditional session, no matter how good that traditional session is. Of all the sessions, even the most awesome ones, I've ever attended at other conferences, there's nothing (as in Really, Not One Thing) I remember at this stage, though I'm sure I'll remember the key points attained as a group within the JCrete sessions because I didn't sit passively in any of them. I was engaged and involved and any knowledge acquired wasn't handed to me but was built up throughout the session from the collective knowledge of whoever the people were that were in the session with me. The best sessions turn out to be those where the group is small (while in traditional sessions low attendance means you or your topic must suck somehow, OK sure it's a niche topic and you're really special and it's for smart people and everyone is at the Scala session and so on, and from the very beginning of your talk a grim sense of gloom and dejection hangs over you and everyone else who made the mistake to attend, scattered in odd clumps of one here, another there, and someone else way off in the back edging his way out, and it is more or less impossible to leave because then the speaker, with frail timid voice echoing in large sparsely populated room, might well start crying, hey I'm not mocking anyone, I've been that guy), so everyone gets to talk and the most knowledgeable attendees don't dominate things.

You know how the best part of any conference is the time you spend in the conference corridors, bumping into new and old friends? And how the worst part is when you're sitting in a session, realizing that for any number of different reasons you'd rather be in the corridor? Well, imagine you're in the corridor from start to end and you'll understand how cool JCrete is. Forget about being disappointed about the speaker's (lack of) knowledge or (in)ability to express their thoughts, and then being stuck with them for an excruciating hour, since in JCrete sessions everyone is the speaker, everyone participates, everyone simply chats and no one feels intimidated or stupid. Any question can be stated in as half-baked a form as you like, and is taken seriously by everyone and then mulled over, since questions arise naturally throughout the session no one needs to ask at the end whether there are any questions, nor look awkward when clearly no one cares enough to engage, while every moment is as valuable as you the attendee/speaker enables it to be.

All separation and division falls away, including the day/night separation, as you find yourself hacking with random people late at night, while others discuss stuff in spontaneous groups, everyone with drinks and very informal.

But the best sessions of all are the ones in the car on the way to the beach (some beaches are an hour away, so you're in a car with 4 others, and so you're chatting for an hour, i.e., hey that's another session), the ones spent in the sea, and the ones that take place at the dinner table over wine and raki. (For regular traditional conference attendees, consider the thought that every dinner is 'speakers dinner', i.e., no exclusion and no separation between speakers/attendees because everyone is there to speak and everyone is there to attend.) And that is exactly why there are only three sessions (in 4 tracks, i.e., each session you make a choice out of 4 different topics) per day, mostly before lunch, except when an excursion is so interesting it trumps the sessions. The rest of the day springs forth from car-based, sea-based, and dinner-based sessions. These sessions arise spontaneously, such as about the qualities and purpose of olive oil, the main export product of Crete, which, though such topics might have nothing to do with programming, initially, always somehow end up being about programming by the end of it, yes, certainly aided by wine and raki.

And you know the feeling you have at the end of traditional sessions, when you walk out of a room full of people who must have the same interest as you, otherwise why would they be at the same session as you, but none of whom you had the opportunity to actually talk with? That empty feeling of "wow, a room full of people who are also interested in Java performance, some of them must be experts, all of them must have experiences to share, yet I've spent the past hour listening to one selfinflated illinformed slidebased dude drone on and on about very basic stuff that surely most attendees must have known already when they walked into the room an hour ago"? Or how about that feeling of "wow, within 5 minutes the dude went from uselessly simplistic 'hello world' to massively complex rocket science and I have no idea whatsoever how he did that and I've lost the plot completely within 10 minutes, I must really be a complete idiot because everyone else around me appears to be following along fine with their eyes wide open but that could be because they're proactive and surreptitiously taped up their eyelids which I'd do too if I'd brought tape, which makes me even more of an idiot for not thinking to bring tape". No chance of that when you're at JCrete!

One of the dozens of takeaways I am left with at the end of JCrete is that next year's NetBeans Day should definitely be an unconference too. (And maybe JUGs could experiment with this format too? And maybe large conferences could attempt this format per topic, e.g., an unconference on IoT within a larger conference that deals with other things too?) Now need to figure out how to relocate NetBeans Day and JavaOne as a whole to Crete for the weather, great food, warm sea, friendly people, and everything else that defines Crete. Yes, the olive oil, for example.

Note: All images shown above were grabbed from Twitter, after doing a search on #jcrete. If you want a long list of enthusiasm about programming in general, that's the hash tag to keep track of.

I can add that we've been having technical discussions not only at day time and dinners, but very early in the morning. I was giving a ride to Geertjan to the airport, and he was talking about NetBeans IDE at 5AM. I bet this was the earliest NetBeans session ever!

In particular, I've learned that Oracle continues working on this platform, which has 1.5 million active users (this IDE collects stats from people who actually use it).

This was my second JCrete and I hope to be able to make it next year too. It's a great event!

You can't see it from the picture but our outdoor session was a few meters from the sea and under a big shady tree. I would equate Geertjan to the modern version of Socrates as the session was on technical writing and of course he is the master though not the dominate figure in the session.

About

Geertjan Wielenga (@geertjanw) is a Principal Product Manager in the Oracle Developer Tools group living & working in Amsterdam. He is a Java technology enthusiast, evangelist, trainer, speaker, and writer. He blogs here daily.

The focus of this blog is mostly on NetBeans (a development tool primarily for Java programmers), with an occasional reference to NetBeans, and sometimes diverging to topics relating to NetBeans. And then there are days when NetBeans is mentioned, just for a change.