“Simple” Network Connections with Java – a problem

I've been playing with NIO for network stuff to see if/how I want to update the code for Head First Java 3rd Edition. The original code used Sockets and Readers/Writers, and I thought there must be a more "modern" way to do this so I've tried updating it a few different ways. I got it working using SocketChannel and ByteBuffer (eventually!), but the ByteBuffer stuff is just too fiddly to use to teach people basic network IO in Java. After turning to Twitter for the answers (Twitter Driven Development) I had what looked like a promising hybrid approach.

However, I've run into a problem with using the Channels factory methods to provide this nice bridge between NIO (SocketChannels) and classic streaming IO.

I'm posting the code here because you can't post source code this long on Twitter! Maybe someone can help me.

Continue reading "“Simple” Network Connections with Java – a problem"

Upgrading a Maven, Spring Boot and JavaFX application

I've been migrating all my JavaFX applications to Java 15 / JavaFX 15.0.1 to see if there are any pain points or gotchas to be aware of. I particularly wanted to understand how Maven and Gradle handle JavaFX, and how to successfully build and run the applications in IntelliJ IDEA.

In this blog post I explore the steps taking to upgrade a Spring Boot/Maven/JavaFX application.

Continue reading "Upgrading a Maven, Spring Boot and JavaFX application"

Upgrading a Modular Gradle JavaFX Application

You might think, particularly given the order in which I have posted these blog posts, that I tackled the easiest application first when I decided to upgrade my JavaFX applications. But no. Because I like to live life on Hard Mode.

I spent two full days last week once again tackling the on-going tech debt I had with a Modular JavaFX application. And I won! Yay! So here's my experience report.

Continue reading "Upgrading a Modular Gradle JavaFX Application"

Upgrading a Gradle JavaFX Application

I'm helping out a bit with an IntelliJ IDEA Live Stream on JavaFX, and I used that as an excuse to refresh my JavaFX knowledge. One of the things I did was make sure I upgraded all my existing applications to the latest versions of everything and make sure they work as expected.

I have what is now quite an old demo application, originally designed to showcase Java 8 features (watch the live demo and find out more). Since JavaFX was moved into the JDK in Java 8, I decided to use JavaFX as the UI. In fact, it's this demo that was the basis for all my later JavaFX applications, including the Spring Boot one.

I haven't done much with this for a loooong time, but it turns out I have been periodically updating dependencies and trying to make sure it all compiles. I highly recommend taking the time to do this at least once a year! It turns out that because I've been updating dependencies for the last 3-4 years that it wasn't that painful to bring it right up to date. In fact, I did it in less than 30 minutes!

Continue reading "Upgrading a Gradle JavaFX Application"

Creating JavaFX Applications

Hand drawing of a JavaFX Dashboard

This week we're doing a Live Stream on JavaFX, and I wanted to use that opportunity to refresh my JavaFX knowledge.

I wanted to investigate two areas in particular:

  • How do the changes in Java 11 (when JavaFX was moved out of the JDK) impact JavaFX applications?
  • How do I get a modern (Java 15) JavaFX application working as expected in IntelliJ IDEA (using either Maven or Gradle as the build tool)?

I now have six different applications that showcase JavaFX! And... they all have slightly different issues... sorry, I mean "subtleties around the best way to run them". Yes.

Continue reading "Creating JavaFX Applications"

Speaker Tips – Bootstrapping Conference Speaking

Photo of Trisha and Daniel presenting at Devoxx

I have loads of advice for aspiring speakers, which is lucky because I get asked about how to get started (or how I got started) all the time. I found an email I sent to someone absolutely years ago (2014) and thought it useful enough to dust off and post. It's interesting to see my mindset back then because now I've largely forgotten what it was like in the early days.

The timing is not great, since in these Coronavirus times no-one's going to or presenting at conferences, but I firmly believe that with all these virtual events and conferences there's a much lower barrier to entry to speaking, and that now is exactly the right time to start presenting if it's something you've ever had on your wish list.

"I was hoping I could get some advice off you as I'm starting to look at ways to get out and speak a little bit more at events. Would you have some insights from how you started?"

Continue reading "Speaker Tips – Bootstrapping Conference Speaking"