Why would someone organize a conference?

Every morning I wake up to this: Screen Shot 2015-05-20 at 23.09.29and this: Screen Shot 2015-05-20 at 22.21.30. Every day I wage a fruitless war to go down to zero on both fronts and I fail miserably. But I'm getting better.

Recently we managed to "inject" a company as a gold sponsor after all the deadlines have passed. We did it in 20 minutes after 6 phone calls.

The server firewall failed. Someone fixed it on a Saturday morning.

Our invoicing architecture after so many patches fails to follow all the complex branches of the process of issuing an invoice. We somehow manage to still use it fruitfully. And I have big plans for rewriting most of it.

ePay integration was a pain it the ass. Very bad documentation, different undocumented services, support could be better. But it was fun encrypting and decrypting a ton of messages until we stabilized it. We even "support" credit cards (in a way).

Our Turkish speaker delayed his visa application. I called the Bulgarian embassy in Ankara. They were nice, didn't forget to call me back. Actually they kept me updated the whole time. And they issued the visa in less than a day. So kudos to them.

We fight less, work more, plan better, became team players and learned a lot. Organizing a conference is fun.

Go buy a ticket at jprime.io.

Read More

Interview with Gerrit Grunwald



Gerrit Grunwald a JavaOne rockstar and Java Champion will be a speaker on this years JPrime Conference in Sofia, Bulgaria. We have the pleasure to make a short interview with him.

Hello Gerrit! It is very nice that you are back to our conference! How did you like the very first edition of it?

It was a blast, I remember that I was stoked that the conference made a very professional impression for a first edition. The venue and the organization have been outstanding for a new conference.

You are great enthusiast of desktop Java apps. From your experience, is there a big demand for this nowadays?

Well no, there is not and there has never been a big demand for Java desktop but there is a market which is big enough so that companies as Karakun can live from it.

Does Java FX currently fulfill the requirements for this demand?

Yes, JavaFX absolutely fulfills the demand for todays Java desktop applications. It had a bit of a rough start but over time it got all features it needs to be a great toolkit for desktop apps.

You are also big fan on IoT. How do you combine these two worlds? Is modern Java small enough to run on those tiny devices?

Yep, IoT is great and there is again a market that is not huge but is big enough to be mentioned. In my opinion Java is not really made to run on so called EdgeNodes but it is great to be used on IoT Gateways. The EdgeNodes are usually small devices that are capable of measuring some data and send it to the IoT Gateway which connects to the Internet/Cloud and forwards the measured data to the backend. In addition JavaFX can be used on SingleBoard computers like the Raspberry Pi to visualize data that comes from the EdgeNodes.

Thank you very much!
See you in Sofia after few weeks!
Read More

Interview with Dr. Heinz Kabutz



Dr. Heinz Kabutz Is one on the greatest JVM performance gurus, author of the famous Java Specialists news letter and our great friend! We are happy to make this interview with him just before the conference #jPrime2019!

Hello Heinz!
You are our always awaited guest! What do you like about BGJUG and jPrime?

Technical brilliance and Balkan hospitality for a very good price. jPrime is establishing itself as the top independent Java conference in our region. I believe I gave the first talk at the first edition of jPrime. Last year was very frustrating, as I was thwarted by the air traffic controller strike in Athens. The only flight that was cancelled was Athens->Sofia. Let's hope that this year is better.

Parallel programming is always hard. Although all of the hardware is parallel, seems like a lot of developers still just don’t utilize it. Is there a way to change this?

Well the good news is that our hardware is already running in parallel without us having to do anything. Pipelining and predictive execution FTW. But we can and should take advantage of the many cores that we have available nowadays. Two great tools are CompletableFuture and Fork/Join. And a new one is Project Loom with Fibers.

Kotlin is seriously pushing on the coroutines. Other languages and platforms have them too. Java is experimenting with them too in project Loom. What is your opinion on this approach?

I'm very hopeful about Project Loom. A couple of years ago at jPrime, I showed how the ManagedBlocker can be used to improve CPU utilization when combined with the Fork/Join pool. Currently there are only a few classes in the JDK that support ManagedBlocker. The two most famous are Phaser and CompletableFuture. This means that when we block with either of these constructs, the ForkJoinPool can create additional threads to pick up the slack. There was talk about including this functionality at the highest level of concurrency, being the AbstractQueuedSynchronizer. However, we are instead moving to Project Loom with Fibers. These support continuations, basically saving the stack of a method call half-way and then allowing it to be restored later. We can create millions of fibers to be run "concurrently" by our system. In reality these would still be executed by default in the common ForkJoinPool. However when a thread is forced to wait, for example when blocking on IO or waiting on an AbstractQueuedSynchronizer, then the fiber gets swapped out and another fiber swapped in. It isn't magic, and please don't believe the smoke and mirror demos that show millions of "sleeps" happening at the same time. We all know that sleeping does not use CPU. One thing I am concerned about is that Fibers do not give us a good set of idioms that we need to follow. With CompletableFuture, we have an established path to follow if we want to use it for writing concurrent or parallel code. But with fibers we can code as if we were using Threads, but then instead spin the code off to be executed as fibers. This can cause some very funky issues with memory staying reachable for much longer than we intended. Buyer's beware.

Can you tell us a bit more about your recent 15000 pushups initiative? Do you plan to do something similar in future?.

In our programming world, we sit far too much. Very few of us have a good excuse. We are, for the most, just plain lazy. I'm the king of laziness. In high school, I used to weasel my way out of any physical activity by claiming to have to do urgent "computer work" for the school. Back in the 80s, no one know what that meant and so you could bamboozle the headmaster. I started running five years ago. I now run every day. I am writing this whilst walking at a treadmill desk. As a young man, I did thousands of pushups in preparation for the South African army. By the time I finished university, Nelson Mandela was in charge and there was no more army conscription. So all those pushups were in vain. However, it did give me good upper body strength. After a long break, I decided to get back into it. But what's the fun of doing this alone? I opened up the challenge to the world. Do 1000 push-ups in October, 2000 in November, all the way until 5000 in February. Every month was hard, and I'm not sure which the worst was. My February started badly as I had a bad cold and had to rest a few days. To catch up, I did 1000 in a single day. By the end of the challenge I looked like Bluto, Popeye's enemy.
All those who completed 15000 push-ups got a big prize to celebrate their achievement, over $15k of prized. I did not tell them up-front that this would happen, as it is just too easy to cheat with over reporting push-ups.
I had another challenge last year where we had to run one mile outside for 40 days in a row, GPS tracked. That was fun too.
My next challenge will probably be a diet experiment. I tried it on myself a few months ago with great success. I will tell you in person when I see you in May at jPrime.

Thank you very much!
See you in Sofia very soon (if there are no strikes:) )!
Read More

jPrime 2018 videos

The videos as always are in the Bulgarian Java User Group's youtube channel.
Read More

Interview with Mark Heckler



Brother Mark Heckler is one of the world's most passionate Spring enthusiasts. We are really happy to have him here in Sofia for the first time! But before that please enjoy a small interview with him:

Hello Mark! It is so great that you will come to Sofia very soon! Please, tell us about yourself.

I'm just this guy, you know? :)
My bio basically says this: Mark is a Professional Problem Solver and Spring Developer & Advocate, conference speaker, published author, & Java Champion focusing upon developing innovative production-ready software at velocity.
Which means that I love to solve problems, write code, deliver working software, and talk about it. That summarizes it pretty well, I guess. :)

Spring platform is often a pioneer in many Java/JVM technologies, which become de-facto standards with time. How do you achieve this?

Spring is both very innovative and very pragmatic, and that's because everyone working with Spring is both inquisitive and immensely practical. We also, as a general rule, are very open to collaboration and community. That results in a lot of great ideas and code being mulled, written, refined, and put to work in a pretty tight loop. And as you know, if good options exist to solve pressing problems, those options are widely adopted and eventually standardized upon, officially and/or unofficially. So I think it's just cause & effect. :)

Spring is putting huge effort in Kotlin language adoption. Why was that decision made? What makes Kotlin a good alternative to Java?

It wasn't a decision made lightly. Kotlin is a great language with much to recommend it: conciseness, null safety, elegance and expressiveness...and perhaps the aspect that makes it easiest to adopt, frictionless interoperability with Java. It's not an either/or choice! You can easily integrate Kotlin code with Java within a single application, making it easy to try out and easy to migrate existing Java applications, if you choose to do so...or of course, to write new ones.
Kotlin also provides new capabilities sooner than Java. Combine this with the capability to extend existing classes and to create DSLs and you have a very dynamic, modern, and powerful language.
Kotlin won't replace Java in many circumstances, but it's an excellent companion language that is a joy to use. It's great to have (great) choices!

You are an unstoppable traveller. How many days are you away from home? How do you spend your free time?

If you ask my wife, I'm never home! Seriously though, some times during the year are more hectic than others. It's safe to say I'm away more than I'm home, and some months the "home" days can be counted on one hand. Balance is...elusive. :D
For better or worse, many of my hobbies center around tech as well. I enjoy programming small devices for IoT applications, including robotics and drones. I'm also an occasional videogamer and musician, having played classical trumpet and guitar/bass in a past life. And of course, I'm always on the hunt for a good cup of coffee.

Thank you very much!

Thanks for inviting me, very glad I can finally be a part of the legendary jPrime!!!

Read More

Sponsors/Tickets/Questions

conference@jprime.io

Contact us

+359 887 749 325